zoukankan      html  css  js  c++  java
  • 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 argetallure-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个测试用例。这就可以不同的测试任务对应不同的测试套,不同对的测试套下面可以放各种组合的用例。一个用例可以放在不同的测试套中。

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

  • 相关阅读:
    静态代理和动态代理
    Tomcat的作用思考及NIO的应用(要区分Java NIO和操作系统的NIO模型)
    破坏双亲委托机制的一些情况---Tomcat和JDBC,破坏后的安全问题
    springboot cache---本地缓存的使用
    springboot--异步执行的方法及定时执行的方法
    springboot--事务的使用
    数据结构--堆排序
    数据结构--树的非递归遍历
    最长公共子串的长度和构造
    2015 小结及其2016计划
  • 原文地址:https://www.cnblogs.com/Hermioner/p/12032101.html
Copyright © 2011-2022 走看看