接口文档生成测试用例(接口测试用例生成器)
394
2022-08-28
pytest之【mark标记功能】使用实例以及使用原理(pytest钩子函数之pytest_configure)
前言
①使用 @pytest.mark.标签名 装饰器可以将测试用例分类。
②pytest测试框架中的内置mark标签:
@pytest.mark.skip() 跳过用例@pytest.mark.skipif() 满足条件跳过用例@pytest.mark.parametrize() 实现参数化@pytest.mark.usefixture() 使用fixture的函数@pytest.mark.xfail() 标记失败
③终端以命令行方式运行测试用例或者通过python模块中的main函数运行测试用例,例如:
pytest test_1.py -s -m='p0' # 只运行p0用例 pytest test_1.py -s -m='p0 or p1' # 运行p0和p1用例 pytest test_1.py -s -m='not p0' # 只运行非p0用例
if __name__ == '__main__': pytest.main(['-s', 'test_1.py',"-m=not runtest"])
其中:
运行的时候使用 -m 参数;m是mark的意思,来运行某个或某个分类的测试用例;
-m 参数同样支持python表达式:用or实现多选的效果;用not实现反选的效果。
使用方法
1、注册标签名
2、在测试用例/测试类前面加上: @pytest.mark.标签名 ;打标记范围:【测试用例,测试类,测试模块】
3、用例执行
注册方式:将自定义标签名注册到pytest测试框架中,pytest可以识别出注册后的标签名然后进行相应操作
1、单个标签
在conftest.py添加如下代码:
def pytest_configure(config):# demo是标签名 config.addinivalue_line("markers", "demo:示例运行")
2、多个标签
在conftest.py添加如下代码:
def pytest_configure(config): marker_list = ["testdemo", "demo", "smoke"] # 标签名集合 for markers in marker_list: config.addinivalue_line("markers", markers)
或者:
import pytestdef pytest_configure(config): config.addinivalue_line("markers", "slow:this one of slow test") config.addinivalue_line("markers", "fast:this one of fast test")
3、添加pytest.ini 配置文件
参照:pytest之配置文件pytest.ini
[pytest]markers= smoke:this is a smoke tag demo:demo testdemo:testdemo
用例执行
test_demo.py
import pytest@pytest.mark.testdemodef test_demo01(): print("函数级别的test_demo01")@pytest.mark.smokedef test_demo02(): print("函数级别的test_demo02")@pytest.mark.democlass TestDemo: def test_demo01(self): print("test_demo01") def test_demo02(self): print("test_demo02")
1、命令行方式
pytest命令行运行方式如下:
通过标记表达式执行pytest -m demo这条命令会执行被装饰器@pytest.mark.demo装饰的所有测试用例生成html报告:pytest -m demo --html=Report/report.html生成xml报告:pytest -m demo --junitxml=Report/report.xml运行指定模块:pytest -m demo --html=Report/report.html TestCases/test_pytest.py运行指定测试目录pytest -m demo --html=Report/report.html TestCases/通过节点id来运行:pytest TestCases/test_pytest.py::TestDemo::test_demo01通过关键字表达式过滤执行pytest -k "MyClass and not method"这条命令会匹配文件名、类名、方法名匹配表达式的用例获取用例执行性能数据获取最慢的10个用例的执行耗时pytest --durations=10
2、新建run.py文件运行
代码如下:
pytest.main(["-m","demo","--html=Report/report.html"])
去期待陌生,去拥抱惊喜。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~