- 对于Pytest,我们可以在每一个模块,每一个类,每一个方法和用例前都加上marker,那样我们在pytest运行的时候就可以只运行带有该mark标签的模块、类、用例。
- 这样的话可以方便我们选择执行自动化时,是选择执行全部用例、某个模块用例、某个流程用例、某个单独用例,总之就是某个单独的标签下所有用例。
1.测试类设置标签
# 测试类 -- 标签mark @pytest.mark.shop
2.测试方法设置标签
# 测试方法 -- 标签mark @pytest.mark.shop_list
流程
mark标签 ----组装流程方便些
-m 选择对应的标签
''' 一个: '-m','lesson_add' 对个: '-m','lesson_add or lesson_list' 排除法: '-m','not lesson_add' 排除法 多个: '-m','not (lesson_add or lesson_list)' '''
pytest.main(['test_myShop.py', '-s','-m','shop_list', '--alluredir', '../report/tmp']) pytest.main(['test_myShop.py', '-s','-m','shop_list or shop_update', '--alluredir', '../report/tmp']) pytest.main(['test_myShop.py', '-s','-m',' not shop_list or shop_update', '--alluredir', '../report/tmp']) pytest.main(['test_myShop.py', '-s','-m','not(shop_list or shop_update)', '--alluredir', '../report/tmp'])
pytest.ini
[pytest]
markers =
login: Run login case
myShop: Run myShop case
安装ini插件,新建文件,pytest.ini
-k 匹配用例名称
- 匹配:可全名,也可以模糊
- lesson_1.py lesson_2.py ----需要指定运行2个
- pytest -k lesson
-v 节点
- 示例:test_lesson.py::TesLesson::test_lesson_add
- pytest -v test_lesson.py::TesLesson::test_lesson_add
-sq:简化打印信息
- -s 输出打印
- -q 简化打印信息
跳过/条件跳过
在我们自动化测试过程中,经常会遇到功能阻塞、功能未实现、环境等一系列外部因素问题导致的一些用例执行不了,这时我们就可以用到跳过skip用例,如果我们注释掉或删除掉,后面还要进行恢复操作
- pytest.main(['rs','test01.py']) 用-rs执行,跳过原因才会显示SKIPPED[1]test01.py:415:跳过Test类,会跳过类中所有方法
跳过 --skip--
- 跳过测试函数的最简单方法是使用跳过装饰器标记它,可以传递一个可选的原因
@pytest.mark.skip(reason='我就是不需要执行下面的接口') # 一定不执行下面的接口
执行单个接口效果
有条件的跳过 --skipif---
- 如果您希望有条件地跳过某些内容,则可以使用skipi代替。if条件为真,跳过
@pytest.mark.skipif(1==1,reason='我就是不需要执行下面的接口') # 一定不执行下面的接口
如果需要同时执行两个py文件,可以在cmd中在文件所在目录下执行命令:
pytest -s test_1.py test_2.py
可以定制化执行测试场景~



