pytest测试框架 -- 简介
一、pytest测试框架简介:
(1)pytest是python的第三方测试框架,是基于unittest的扩展框架,比unittest更简洁,更高效。
(2)pytest框架可以兼容unittest用例
(3)支持参数化测试用例的skip和xfail,自动失败重试等处理
(4)能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appium等自动化测试、接口自动化测试(pytest+requests);
(5)pytest并且具有很多第三方插件,并且可以自定义扩展,比较好用的比如pytest-allure(完美 html测试报告生成),pytest-xdist(多cpu分发)等;
(6)可以很好的和jenkins集成
二、用例编写规则:
(1)测试文件名必须以“test_”开头或者"_test"结尾(如:test_ab.py)
(2)测试函数必须以“test_”开头。
(3)测试类命名以"Test"开头。
(4)测试类中不能有__init__()构造函数。
三、pytest安装与依赖
pip install -U pytest U表示升级
pip insetall pytest-sugar ( sugar可以对我们运行的过程界面进行美化)
pip install pytest-rerunfailures( rerunfailures可以重新运行执行出错的测试用例)
pip install pytest-xdist( xdist多任务并发的执行测试用例)
pip install pytest-assume( assume可以在测试用例里面添加断言,通常是断言出错了就不执行了,但是通过用这个包,就可以即使这个断言出错了,也可以继续执行下一个断言)
pip install pytest-html( html可以生成html结果报告)
pip list 查看已安装模块
pytest -h 查看帮助
四、命令行模式执行:
-
运行所有 pytest.main()
-
指定模块 pytest.main('[-vs],','./testcase/test_day1.py') 只运行testcase 下的test_day1.py 文件
-
指定目录 pytest.main('[-vs]'),'./testcase') 只运行testcase 目录下的文件
pytest/py.test 运行该目录下所有以test_开头的.py文件
pytest -v (最高级别信息--verbose)打印详细运行日志信息
pytest -v -s 文件名 (s是带控制台输出结果,也是输出详细运行日志)
pytest 文件名.py 执行单独一个pytest模块
pytest 文件名.py::类名 运行某个模块里面的某个类
pytest 文件名.py::类名::方法名 运行某个模块里面某个类里面的方法
pytest -v -k "类名and not方法名" 跳过运行某个测试用例
pytest --html=report.html 生成html测试报告
pytest -m[标记名] @pytest.mark.[标记名]将运行这个有标记的测试用例
pytest -x 文件名 一旦运行报错就停止运行
pytest --maxfail=[num] 当运行错误达到num的时候就停止运行(比如冒烟测试,执行多少个失败的用例就打回)
pytest 文件名 -s 显示print内容
# 执行该.py文件中所有以Test开头的类,以及test_开头的函数
# 仅执行TestApi类中的test_login函数
# 执行test_run.py中除了test_upload外的所有测试类和测试函数
# 测试文件运行错误达到2次后,便停止运行
#运行错误后,重复再运行2次,且每次延时2秒(前提:pip install pytest-rerunfailures)
# 在当前目录下生成report.html测试报告
五、pycharm中执行:
参考:https://www.cnblogs.com/zhaikunkun/p/12583742.html