1安装插件
项目里面新建 xxx.txt文件
执行pip install -r xxx.txt一次性安装所有插件
pytest
pytest-html
pytest-xdist
pytest-ordering
pytest-rerunfailures
pytest-pytest
pytest-html 生成html格式的自动化测试报告
pytest-xdist 测试用例分布式执行,多cpu分发
pytest-ordering 用于改变测试用例的执行顺序
pytest-rerunfailures 用于失败后重跑
pytest-pytest 用于生成美观的测试报告
2使用pytest规则
1,模块必须以test_开头或者_test结尾
2,测试类必须以Test开头,并且不能有init方法。
3,测试方法必须以test开头
3pytest测试用例的运行方式
1,主函数模式
(1)运行所有:pytest.main()
(2) 指定模块:pytest.main(['-vs','test_login.py'])
(3) 指定目录:pytest.main(['-vs','./interface_testcase'])
2,命令行模式
(1)运行所有:pytest
(2) 指定模块:pytest -vs test_login.py
(3) 指定目录:pytest -vs ./initerface_testcase
3,通过读取pytest.int配置文件运行
参数详解:
-s:表示输出调试信息,包括print打印信息
-v:显示更详细的信息
-vs:这两个参数一起用
-n:支持多线程或者分布式运行测试用例
如:pytest -vs ./testcase/test_login.py -n 2
--reruns 2:失败用例重跑 数字是几就跑几次
-k:根据测试用例的部分字符串指定测试用例
如:pytest -vs ./testcase -k "ao"
--html ./report/report.html:生成html的测试报告
3,通过读取pytest.ini配置文件运行
pytest.ini这个文件他是pytest单元测试框架的核心配置文件
1,位置:一般放在项目的根目录
2,编码:必须时ANSI,可以使用notpad++修改
3,作用:改变pytest默认的行为
4,运行规则:不管时主函数的模式运行,命令行模式运行,都会去运行这个文件
[pytest]
addopts = -vs --html ./report/report.html #命令行的参数
testpaths = ./testcase #测试用例的路径
python_files = test_*.py #模块名的规则
python_classes = Test* #类名的规则
python_functions = test #方法名的规则
markers =
smoke:冒烟用例
usermanage:用户管理模块
4,pytest执行测试用例的顺序
unitest: ascII的大小来绝对的执行顺序
Pytest:默认从上到下
改变默认顺序在用例上加 order=为添加顺序
@pytest.mark.run(order=1)
5,如何分组执行(冒烟,分模块执行,分接口和web执行)
@pytest.mark.smoke
smoke:冒烟用例,分布在各个模块里面 smoke为自定义标记
pytest -m 'smoke'
pytest -m 'smoke or usermanage'
6,pytest跳过测试用例
@pytest.mark.skip(reason='跳过原因')
@pytest.mark.skipif(age<18,'原因')
7,通过conftest.py和@pytest.fixture()结合使用实现全局的前置应用
1,conftest.py文件是单独存放在一个夹具配置文件,名称不能更改。
2,用处可以在不同py文件中是用同一个fixture函数。
3,原则上conftest.py需要和运行的用例放到同一层,并且不需要做任何的import导入的操作