python测试框架pytest和测试报告allure的联合使用-----测试套件

最近采用jenkins+python+pytest+allure写了一些自动化测试用例。碰到这样一种场景:如果我创建了2个测试任务,测试任务1包含2个测试用例test_a.py和test_b.py,测试任务2包含一个测试用例test_c.py。

前提:需要在jenkins上面配置allure、jdk地址

一. 常规操作

假设我的代码目录结构有如下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 pytest


if __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个测试用例。这就可以不同的测试任务对应不同的测试套,不同对的测试套下面可以放各种组合的用例。一个用例可以放在不同的测试套中。

 

原创文章,转载请注明出处!(写的是核心的配置、代码,如有不懂,欢迎留言交流)

posted @ 2019-12-12 23:02  Hermioner  阅读(1106)  评论(0编辑  收藏  举报