unittest执行用例方法
- #coding=utf-8
- from selenium import webdriver
- from time import sleep
- import unittest#导入unittest库
- import HTMLTestRunner
- #创建一个类,并且该类继承unittest.case类
- class Test_baidu(unittest.TestCase):
- #初始环境,每一个用例执行时都会先执行这里的代码
- def setUp(self):
- self.dr=webdriver.Chrome()#调用指定的浏览器并赋值给dr
- self.dr.maximize_window()
- self.dr.implicitly_wait(10)#智能等待作用和sleep一样
- self.dr.get('https://www.baidu.com')
- sleep(2)
- #测试用例---执行搜索新方硕--测试用例的脚本
- def test_case2(self):
- self.dr.find_element_by_id('kw').send_keys(u'新方硕')
- sleep(3)
- #测试用例--执行搜索新东方
- def test_case1(self):
- self.dr.find_element_by_id('kw').send_keys(u'新东方')
- sleep(3)
- #还原环境(结束)---用例执行后关闭浏览器(扫尾工作)
- def tearDown(self):
- self.dr.close()
#方案一
- if __name__=="__main__":
- unittest.main()
- #unittest.main()他可以将一个单元测试的模块变为可以执行的脚本,所谓main()的方法使用了
- # unittest中testloader类来搜索以test开头的测试用例,并自动执行
- # main()执行顺序是以ascii用来执行顺序0-9,A-Z,a-z
#方案二:用例的执行顺序,根据你添加的顺序进行执行
- if __name__=='__main__':
- suite=unittest.TestSuite()#构造一个容器用来存放我们的测试用例
- suite.addTest(Test_baidu('test_case2'))#添加类中的测试用例
- suite.addTest(Test_baidu('test_case1'))#添加类中的测试用例
- suite.addTests([Test_baidu('test_case2'),Test_baidu('test_case1')])
- run=unittest.TextTestRunner()
- run.run(suite)#调用对象中的run的方法执行测试套件:suite
- #或者如下
- if __name__=='__main__':
- suite=unittest.TestSuite()
- suite.addTests([Test_baidu('test_case2'),Test_baidu('test_case1')])
- run=unittest.TextTestRunner()
- run.run(suite)
- #还或者如下
- if __name__=='__main__':
- suite=unittest.TestSuite()
- testcates=[Test_baidu('test_case2'),Test_baidu('test_case1')]
- suite.addTests(testcases)
- run=unittest.TextTestRunner()
- run.run(suite)
unittest.TestSuite()执行用例问题如下:
步入正轨解决方案出炉,在右键点击run时,发现run后面为unittest.in filename,以前执行文件时都是Run fliename,也就是说整个文件都是按照unittest模式来执行的
看到了 两个执行的不一致,两个办法如下:
1,点击控制台Run来运行
2,点击 控制台的右上角见图
此时右键执行就会发现不在unittest模式下了哦
#方案三执行顺序与方案一一样
- if __name__=='__main__':
- # 批量执行用例
- case_dir=r'D:\work_doc\pycharm\python_selenium'#当前路径在c:/python文件的xx的目录中有一个ll.py文件
- discover=unittest.defaultTestLoader.discover(case_dir,pattern='unittest_frame.py'
- ,top_level_dir=None)
- run=unittest.TextTestRunner()
- run.run(discover)
- # 生成测试报告
- suit = unittest.TestSuite()
- suit.addTest(unittest.makeSuite(Test_baidu))
- file1 = open('d:\\test3.html','wb')
- runner = HTMLTestRunner.HTMLTestRunner(file1,title=u'用例报告',description=u'用例描述')
- runner.run(suit)
- file1.close()
unittest执行用例方法的更多相关文章
- Unittest组织用例的姿势
本文我们将会讲解Python Unittest 里组织用例的5种姿势. 环境准备: python 3.0以上 python requests库 小编的环境: python 3.6.4 一.TestLo ...
- unittest---unittest多种加载用例方法
在做自动化测试我们对执行用例很有要求,因为每条用例可能就和上一条数据有关系,那么我想要批量执行一些用例呢?这个怎么去操作呢?unittest自带的功能可以帮助到我们,我们可以通过不同的场景运用不同的执 ...
- python:unittest之discover()方法批量执行用例
自动化测试过程中,自动化覆盖的功能点和对应测试用例之间的关系基本都是1 VS N,如果每次将测试用例一个个单独执行,不仅效率很低, 无法快速反馈测试结果,而且维护起来很麻烦.在python的单元测试框 ...
- Unittest加载执行用例的方法总结
前言 说到测试框架,unittest是我最先接触的自动化测试框架之一了, 而且也是用的时间最长的, unittest框架有很多方法加载用例,让我们针对不同的项目,不同项目的大小及用例的多少自己选择加载 ...
- python+unittest 控制用例的执行顺序
unittest的main()方法执行用例的顺序是按照测试类.测试方法的名字的ASCII顺序来执行测试方法.所以可能执行的顺序和你想要的顺序不一样,可能通过下面两种方法修改执行顺序 1. 通过Test ...
- python自动化-unittest批量执行用例(discover)
前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了. 加载用例后,用unittest里面的Text ...
- unittest中diascover批量执行用例
# case_dir='./'#当前脚本的路径 # discover=unittest.defaultTestLoader.discover(case_dir,pattern='unittest_fr ...
- unittest详解(四) 批量执行用例(discover)
前面我们说了,对于不同文件用例,我们可以通过addTest()把用例加载到一个测试套件(TestSuite)来统一执行,对于少量的文件这样做没问题,但是如果有几十上百个用例文件,这样做就太浪费时间了. ...
- python学习笔记(28)-unittest单元测试-执行用例
执行用例 #写一个测试类 import unittest import HTMLTestRunnerNew #写好的模块可以直接调用 #import HTMLTest #测试报告模板 from cla ...
随机推荐
- ELKBR部署检测项目日志
ELK filebeat:具有日志收集功能,相比logstash,+filebeat更轻量,占用资源更少,适合客户端使用. redis消息队列选型:Redis 服务器通常都是用作 NoSQL 数据库, ...
- 如何在Centos服务器上搭建起Oracle10、VNC、以及FTP
一.重装和分区 1.配置所需磁盘阵列(Raid): 2.正确分区: 3.Centos安装:过于简单,请自行bd. 二.连网 系统安装完成之后,我们需为其分配IP和DNS: "编辑连接&quo ...
- bluetooth(蓝牙) AVRCP协议概念及代码流程解析
一 概念 AVRCP全称:The Audio/Video Remote Control Profile (AVRCP) 翻译成中文就是:音视频远程控制协议.概念:AVRCP定义了蓝牙设备之间的音视频传 ...
- centos 7 ifconfig无法找到命令的方法
场景:新安装centos 没有安装. centos7.2的mini版没有安装这个东东,所以我们就直接安装就好了,在终端里面输入: yum -y install net-tools
- Python中使用python -m pip install --upgrade pip升级pip时老是不成功
场景 在使用python -m pip install --upgrade pip进行pip升级时,每次到最后就是报一大堆红色,最终升级不成功. 实现 使用默认的镜像源时间过长就会没响应,使用豆瓣的镜 ...
- Hive bucket表
Hive 桶 对于每一个表(table)或者分区, Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分.Hive也是 针对某一列进行桶的组织.Hive采用对列值哈希,然后除以桶的个数求余 ...
- ios打包时候提示三方文件库错误,整理下解决的思路
这一短时间一直在打包APP上线,今天突然打包的时候碰到的头文件找不到 一开始我以为是路径的问题,检查了targets---Build settings----search Paths----heade ...
- Swift从入门到精通第十四篇 - 错误处理 初识
错误处理(学习笔记) 环境Xcode 11.0 beta4 swift 5.1 错误表现和抛出 在 swift 中,错误由符合 Error 协议的类型值表示 // 示例 enum VendingMac ...
- 在Debian上用FVWM做自己的桌面
用FVWM做自己的桌面 Table of Contents 1. 前言 2. 学习步骤 3. 准备 3.1. 软件包 3.2. 字体 3.3. 图片 3.4. 参考资料 4. 环境 5. 布局 6. ...
- let与var的区别
1.let作用域局限于当前代码块 文章中//后面的均为打印结果 代码1: { var str1 = "小花"; let str2 = "小明"; console ...