Pytest测试框架知识
pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:
1.简单灵活,容易上手
2.支持参数化
3.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)
4.pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等
5.测试用例的skip和xfail处理
6.可以很好的和jenkins集成
7.report框架----allure 也支持了pytest
使用命令
查看是否安装成功及安装的版本信息
pytest官方文档:
注意pytest有如下约束:
1、测试模块文件(.py文件)命名应该以 test_开头或者以_test结尾。
2、测试类命名应当以Test开头。表示一个项目或者一个模块的用例集合
3、测试用例(函数)命名,测试函数的方法命名应该以test_开头。
注意 :测试类的不应该有构造函数,也就是不能有 __init__ 出现
案例新建一个python文件,命名为:test_example1:
执行后,可以看到,运行了test_example1文件下Test_Login测试类和Test_Login2测试类中的三个测试用例
参数详解:
-s: 表示输出调试信息,包括print打印的信息
-v: 显示更详细的信息
-vs: 两个参数一起用
-n: 支持多线程或分布式运行用例
-return NUM: 失败用例重跑,num失败后重跑的次数
-x: 表示只要有一个用例报错,那么测试停止
--maxfall=2 : 出现两个用例失败就停止
-k: 根据测试用例的步伐字符串指定测试用例
如:pytest -vs ./testcase -k "ao"
--html ./report/report.html : 会在之指定路径下生成html的报告
pytest.ini这个文件它是pytest单元测试框架的核心配置文件
1、位置:一般放在项目的跟目录下
2、编码:必须是ANSI,可以使用notpad++修改编码格式
3、作用:改变pytest默认的行为
4、运行规则:不管是主函数的模式运行,命令模式运行,都会去读取这个配置文件
unittes框架 :是根据ASCII的大小来决定执行的顺序
pytest框架:默认从上到下