最近采用jenkins+python+pytest+allure写了一些自动化测试用例。碰到这样一种场景:如果我创建了2个测试任务,测试任务1包含2个测试用例test_a.py和test_b.py,测试任务2包含一个测试用例test_c.py。
一. 常规操作
假设我的代码目录结构有如下3个测试用例:
然后我在jenkins上面核心配置运行他们,并展示allure上面
note: 上面的\autotest\target\allure-results目录需要在本地jenkins目录中指定好。
build后发现如下结果:
test_a.py和test_b.py、test_c.py都属于同一个测试套example02.
二. 生成不同的suite,并且不同的suite分开展示
首先在准备如下目录结构:
然后修改jenkins配置如下:
这样生成的报告就有两个测试套了。
总结:pytest中的测试套感觉就是一个测试文件目录对应一个测试套。和testng中不一样,可以随便添加测试类放到一个suit.xml文件中。我们可以根据任务选取的不同,从而来生成不同的suite文件。
三. 通过新建test.py文件来存储要本次执行的所有用例
1.方法一:可以通过pytest.main方式
但是这种方式必须放在非test_开头或者_test结尾的py文件中,可以放在testrun.py文件中。比如有一个testrun.py:
import pytestif __name__ == ‘__main__‘:
pytest.main(["-s", "test_a.py", "test_b.py"])
这样testrun.py运行后就会执行test_a.py和test_b.py两个用例
2.方法二:通过新建pytest用例,来存储本次要执行的测试用例,比如test_all.py,在里头需要执行5个测试用例test_a.py,test_b.py,test_c.py,test_d.py,test_e.py
test_all.py中的实现如下:
from src.example02.test_a import *
from src.example02.test_b import *
from src.example02.test_c import *
from src.example03.test_d import *
from src.example03.test_e import *
build结束后:
可以发现,test_all.py就是我们的测试套,它包含了5个测试用例。这就可以不同的测试任务对应不同的测试套,不同对的测试套下面可以放各种组合的用例。一个用例可以放在不同的测试套中。
原创文章,转载请注明出处!(写的是核心的配置、代码,如有不懂,欢迎留言交流)