unittest的使用一
selenium:
(1).firefox官方下载驱动geckodriver,windows:放在\python36或者是27的目录下
- Mac: /usr/local/bin
(2).firefox的版本必须是在48之后
(3).pip install selenium==3.11
1.unittest介绍:通过selenium的例子来讲解
unittest单元测试框架(其中包含测试固件(setUp() tearDown() ), 测试报告,测试套件(testSuite),测试用例(testCase),断言)
2.例子:
(1)setUp 和 tearDown 这个属于测试固件,在每一个test之前和之后都运行一次
(2)setUpClass 和 tearDownClass,这个属于类方法,在类之前和之后运行一次
(3)测试必须以test开头
(4)测试的顺序是由ascii码从小到大运行 ord()查看ascii,比如:

(5)在主函数里面,通过unittest.main()方法运行
(6)类要继承unittest.TestCase这个类

3.测试套件,顺序执行
现将测试套件testSuite实例化(创建一个套件),然后把想跑的测试用例一个一个的add进去,运行测试套件:unittest.TextTestRunner(verbosity=2).run(suite)
先add那个,就先执行哪个。

4.按照测试类去执行。makeSuite()
将测试类,放入测试套件中,执行类里面所有的测试

5.忽略测试skip
一个case想要被忽略,那么,只需要田间@unittest.skip("理由")

6.将测试固件分离
当有很多个case的时候,有些一定要基于登陆进行,很多都需要继承登陆。接下来做一个简单的分离
(1)都用到的打开浏览器,关闭浏览器,分离出来

(2)点击百度新闻,继承init类

(3)百度搜索,继承init类

7.测试套件TestLoaderde的使用

8.测试套件discover()的使用:
根据正则匹配要跑当前目录下的 test_baidu_ 开头的脚本。

查看discover里面的参数:鼠标点击discover,键盘按下control键。进入里面查看:

总结:按照测试套件跑的话,大概流程都是:
1.首先定义一个测试套件(起名为suite),然后通过load的方法,这个suite里面主要包含了要跑的那些case
2.然后,运行这个suite里面的所有case。一般都是unittest.TextTestRunner().run(suite),调用TextTestRunner这个类主要是通过名字来跑。
unittest的使用一的更多相关文章
- python_单元测试unittest
Python自带一个单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 步骤1:首先引入unittest模块--import un ...
- python单元测试unittest
单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也是很崩溃的事情.虽然会很快熟悉内容,但是修改和 调试将是一件痛苦的事情,如果你在修改了代码后出现问题的话,而 ...
- Python 下的unittest测试框架
unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例 ...
- Python unittest appium
import unittest from appium import webdriver from appium.common.exceptions import NoSuchContextExcep ...
- selenium-webdriver(python) (十六) --unittest 框架
学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习selenium 也是从IED 开始的. IDE学习参考: 菜鸟学自动化测试(一)----selen ...
- Node.js的UnitTest单元测试
body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } 在专业化的软件开发过程中,无论什么平台语言,现在都需要UnitTes ...
- unittest使用过程中sys.exit(not self.result.wasSuccessful())
起因: 在运行下面的unittest过程中出现了个Traceback: 被测试脚本: # splitter.py def split(line, types=None, delimiter=None) ...
- 三言两语聊Python模块–单元测试模块unittest
实际上unittest模块才是真正意义上的用于测试的模块,功能强大的单元测试模块. 继续使用前面的例子: # splitter.py def split(line, types=None, delim ...
- unittest测试驱动之HTMLTestRunner.py
对于自动化来说,测试报告是必须的,在敏捷化的团队中,团队中的成员需要自动化这边提供自动化的测试报告,来判断系统的整体质量以及下一步的测试策略.单元测试库生成测试输出到控制台的窗口上,但是这样的结果看起 ...
- unittest可能面临的问题以及解决方法
问题1:用例的执行顺序 当使用unittest.main()时,用例的执行是按照ascall值的顺序来执行的,所以如果使用main()方法来执行用例的话,那么就需要通过命名来限制执行顺序,比如想要先执 ...
随机推荐
- tornado web框架简介
https://www.cnblogs.com/aylin/p/5702994.html
- delphi中adoquery控件中某个字段Onvalidate事件的用法?
procedure TForm2.ADOQuery1TestFieldValidate(Sender: TField);begin// Sender就是当前字段,可以在这里对Sender字段进行各种操 ...
- todo项目总结
vue+webpack项目工程配置 1.vue-loader+webpack项目配置 2.webpack配置项目加载各种静态资源 3.webpack-dev-server的配置和使用 安装: pack ...
- NaN与Null与undefiined的关系
在js中,定义一个变量需要通过关键字var来定义,定义的变量可以是字符串.数字等等都行.但是如果你只是定义了一个变量,没有给他赋值,那么它就默认为'undefined'.例如 var name; co ...
- PCIE\AURORA\SRIO协议对比
http://www.eefocus.com/communication/335836/p3
- CF821C Okabe and Boxes
题目链接 题目大意 模拟栈的操作,要求从1~n依次弹出,若不符合可以排序,且不会有不合法情况,求最少排序次数. 思路 由于一定没有不合法情况,所以每次不符合顺序时可以直接清空,遇到栈为空时仍然要求弹出 ...
- 解决面板里没有network manager图标的问题 ,也就是在桌面环境下,没有那个网络图标
在安装好了桌面之后,竟然发现没有那个连接网络的图标,本来想连接无限网络.可是.......如果去手动命令行下去配置这个连接wifi有些麻烦,所以我还是去找解决办法了 我执行了一条命令就解决了 gcon ...
- 序列化模块组 pickle,json , xml , shelve , configparser
序列化是什么? 序列化指的是将内存中的数据结构转化为一种中间格式 并存储到硬盘上. 反序列化是什么? 将硬盘上存储的中间格式数据再还原为内存中的数据结构. 为什么要有序列化? 是为了将数据持久存储 较 ...
- mysql中存储字段类型的查询效率
检索性能从快到慢的是(此处是听人说的): 第一:tinyint,smallint,mediumint,int,bigint第二:char,varchar第三:NULL 解释(转载): 整数类型1.TI ...
- 【HDU - 4927】Series 1
BUPT2017 wintertraining(15) #5I 题意 输出序列A[1..n]的第n-1阶差分(一个整数). 题解 观察可知答案就是 \[ \sum_{i=0}^{n-1} {(-1)^ ...