1 pytest简介
-
pytest是一个非常成熟的python的单元框架,比unittest更灵活,容易上手
-
pytest可以和selenium,requests,appium结合实现web自动化,接口自动化,app自动化
-
pytest可以实现测试用例的跳过以及returns失败用例重试
-
pytest可以和allure生成非常美观的测试报告
-
pytest可以和jenkins持续集成
-
pytest有很多非常强大的插件,并且这些插件能够实现很多实用的操作
-
pytest
-
pytest-html (生成html格式的自动化测试报告)
-
pytest-xdist(测试用例分布式执行,多CPU分发)
-
pytest- ordering (用于改变测试用例的执行顺序)
-
pytest- rerunfailures (用例失败后重跑)
-
allure-pytest (用于生成美观的测试报告)
-
2 pytest规则
-
模块名必须以test_开头或者_test结尾
-
测试类必须以Test开头,并且不能有init方法
-
测试方法必须以test开头
3 运行方式
-
主函数模式
-
运行所有:pytest.main()
-
指定模块:pytest.main(['-vs', 'test_login.py'])
-
指定目录:pytest.main(['-vs', './interface_testcase'])
-
通过nodeId指定用例运行:nodeId由模块名、分隔符、类名、方法名、函数名组成 ( pytest.main(['-vs', './interface_testcase/interface_testcase.py::TestCase::test_01_func'])
-
-
命令行模式
-
运行所有:pytest
-
指定模块:pytest -vs test_login.py
-
指定目录:pytest -vs ./interface_testcase
-
通过nodeId指定用例运行:pytest -vs ./interface_testcase/interface_testcase.py::TestCase::test_01_func
-
参数详解:
-s:输出调试信息,包括print打印的信息
-v:显示更详细的信息
-vs:上面两个参数一起用
-n:支持多线程或者分布式运行测试用例
--reruns NUM:失败用例重跑
-x:只要有一个用例报错就停止
--maxfail=2:出现两个用例失败就停止
-k:根据测试用例的部分字符串去指定测试用例
-
通过读取pytest.ini配置文件运行
-
位置:一般放在项目的根目录
-
编码:必须是ANSI,可以使用notpad++修改编码格式
-
作用:改变pytest默认的行为(如类名、方法名可以不以test开头)
-
运行的规则:不管是主函数的模式运行,命令行模式运行,都会去读取这个配置文件
-
[pytest]
-
addopts = -vs #命令行的参数,用空格分隔
-
testpaths = ./testcase # 测试用例的路径
-
python_files = test_*.py # 模块名的规则
-
python_classes = Test* # 类名的规则
-
python_functions = test # 方法名的规则
-
markers =
-
-
smoke:冒烟用例
usermanage:用户管理模块
productmanage:商品管理模块
(在类方法前调用@pytest.mark.smoke即可使用冒烟用例,执行冒烟用例使用pytest -m "smoke",同时使用多个模块使用pytest -m "A or B or C")
4 pytest执行测试用例的顺序
pytest:默认从上到下
改变默认的执行顺序:使用mark标记,如@pytest.mark.run(order=3)
5 pytest跳过测试用例
无条件:@pytest.mark.skip(reason="跳过原因...")
有条件: @pytest.mark.skip(age>=18,reason="满足已成年的判断,所以跳过了...")
标签:框架,用例,vs,pytest,testcase,入门篇,Pytest,test,测试用例 From: https://www.cnblogs.com/dyl0/p/17145089.html