pytest-xdist 测试用例分布式执行,多cpu分布。
pytest-html,生成html格式的自动化测试报告。
pytest-ordering 用于改变测试用例的执行顺序。
Pytest-rerunfailures 用于失败后的重跑。
Pytest-html 生成html格式的自动化测试报告
allure-pytest 用于生成美观的测试报告。
安装命令:
pip install -r requirments.txt
(1)运行所有用例:pytest.main(['-vs'])
(2)运行指定模块的用例: pytest.main(['-vs', 'test_login.py'])
(3)指定目录去执行:pytest.main(['-vs', 'interface_testcase'])
(4)通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成
(1)运行所有用例:pytest -v
(2)运行指定的用例:pytest -v test_login.py
(3)指定目录去执行:pytest -vs interface_testcase
(4)通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成
例子:
# 运行指定类或者方法或者函数的用例
pytest.main(['-vs', './interface_testcase/test_interface.py::test_04_func'])
# 运行指定模块下的类里面的方法
pytest.main(['-vs', './interface_testcase/test_interface.py::TestInterface::test_01_zhiliao'])
-s:表示输出调试的信息,包括print打印的信息
-v:表示测试用例的详细信息
-vs:两个参数可以一起使用
-n:支持多线程或者分布式运行测试用例。
如:pytest -vs ./web_testcase/test_login py -n 2
-reruns num:表示失败用例参数重跑
如: 将失败的用例多跑两遍
pytest.main([’-vs’, ‘./web_testcase/test_product.py’
-x: 表示只要有一个用例报错,测试停止
–maxfail=2:表示两个用例失败停止执行
-k:根据测试用例的部分字符串指定执行测试用例
如: pytest -vs ./web_testcase -k ‘ao’
生成报告:
–html:addopts = -vs --html ./report/report.html(配置文件设置)
**Pytest.int这个文件是pytest单元测试框架的核心配置文件。**
1.位置:一般放在项目位置的跟目录。
2.编码:编码格式必须是ANSI,可以使用notpad++修改编码格式。
3.作用:改变pytest默认的行为。
4.运行规则:不管是主函数的模式还是命令行 模式,都会去读取这个配置文件
文件内容:
[pytest]
# 命令行的参数,用空格分隔
addopts = -vs
# 测试用例的路径
testpaths = ../PythonApiTest/PyTest/web_testcase
# 模块名的规则
python_files = test*.py
# 类名的规则
python_classes =Test*
#方法名发规则
python_function =test
markers = smoke usermanage productmanage
unittest 是通过ascll码从大到小的顺序执行
Pytest 默认从上到下
改变默认的执行顺序,使用mark标记。
如: @pytest.mark.run(order=2)
Smok: 冒烟测试,分布在各个模块里面
Pytest -vs -m smoke
Pytest -vs -m smoke or usermanage
(1)无条件跳过:@pytest.mark.skip(reason=“跳过”)
(2)有条件跳过:@pytest.mark.skipif(age>=18,reason=‘符合条件跳过’)
Pytest-html
allure-pytest:
1.下载,解压,配置path路径
2.生成json格式的临时报告
addopts = -vs --alluredir ./temp 生成临时目录temp
3.生成allure报告,在执行页添加下面代码
os.system(‘allure generate ./temp -o ./report --clean’)、
allure generate 命令,固定写法
./temp 临时的json格式报告的路径
-o 输出output
./report 生成allure的报告的路径
–clearn 清空./report路径原来的报告