pytest的用处和学习目的:
简单灵活,容易上手
支持参数化
能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)
pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等
测试用例的skip和xfail处理
可以很好的和jenkins集成
report框架----allure 也支持了pytest
环境搭建:
2:命名规范:
所有的单测文件名都需要满足test_*.py格式或*_test.py格式。
在单测文件中,测试类以Test开头,并且不能带有 init 方法(注意:定义class时,需要以T开头,不然pytest是不会去运行该class的)
在单测类中,可以包含一个或多个test_开头的函数。
此时,在执行pytest命令时,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行。
3:pytest的运行方式,断言:
1)通过pycharm的右键运行
2):通过命令行方式运行
右键open in 选择终端的方式来输入命令行执行
3):通过main函数运行
pytest的断言:
pytest的运行清单:
pytest的测试固件:(setup teardown)
1.setup和teardown主要分为:模块级,类级,功能级,函数级。
2.存在于测试类内部
代码示例:
- 函数级别setup()/teardown()
- 2.2.类级别
pytest的执行顺序,跳过:
1)执行顺序
2)不执行,跳过,或者满足条件跳过
@pytest.mark.xfail
除了上面学习的pytest.xfail(),xfai还有一种使用方法。就是@pytest.mark.xfail标签,他的含义是期望测试用例是失败的,但是不会影响测试用例的的执行。如果测试用例执行失败的则结果是xfail(不会额外显示出错误信息);如果测试用例执行成功的则结果是xpass。
吃个荔枝:我们直接在测试用例上加上@pytest.mark.xfail标签。
pytest的mark标签
mark标签和skipif标签用来标记用例,作用于冒烟测试,不需要执行全部用例时来标记执行。
mark标签的注意事项,以及ini配置文件
文件名固定为pytest.ini,一般和测试驱动层放在一起,即根目录
pytest的参数化和测试套件,fixture
参数化可以结合文件读写的方法,使用csv或txt文件进行传参。
fixture是为了两个方法之间的传参
如果返回值不止一个,可以使用列表或字典进行返回,再到第二个方法进行列表或字典的读取。
标签:框架,pytest,mark,xfail,测试用例,测试,自动化,执行 From: https://www.cnblogs.com/lwcx/p/16862971.html