zoukankan      html  css  js  c++  java
  • Allure 自动化测试报告使用详解

    这一节主要是记录allure的内容以及用法,怎么让他生成一个完整的想要的报告。

    allure生成的报告和其他五花八门的报告对比了一下,它的可读性是最好、最直观的。这不仅仅是我想要的效果,也是很多小伙伴想要的结果,毕竟这是给领导看,而且也算是自己老大成果的汇总。

    关于怎么安装的,请移步: https://www.cnblogs.com/Zhan-W/p/13132397.html

    一、Allure相关的内容:

    Allure用例描述
    使用方法 参数值 参数说明
    @allure.epic() epic描述 定义项目、当有多个项目是使用。往下是feature
    @allure.feature() 模块名称 用例按照模块区分,有多个模块时给每个起名字  
    @allure.story() 用例名称 一个用例的描述
    @allure.title(用例的标题) 用例标题 一个用例标题
    @allure.testcase() 测试用例的连接地址 自动化用例对应的功能用例存放系统的地址
    @allure.issue() 缺陷地址 对应缺陷管理系统里边的缺陷地址
    @allure.description() 用例描述 对测试用例的详细描述
    @allure.step() 操作步骤 测试用例的操作步骤
    @allure.severity() 用例等级 blocker  、critical  、normal  、minor  、trivial
    @allure.link() 定义连接 用于定义一个需要在测试报告中展示的连接
    @allure.attachment() 附件 添加测试报告附件

    总共主要的就以上这些,常用的大概有一半吧 。

    二、对于这其中常用的做一些使用实例:

    代码结构:

    登录是一个前置操作 ,拿出来后单独存放,loging.py文件内容:

    # __*__coding:utf-8 __*__
    
    import allure
    
    @allure.step("操作步骤: 登录")
    def longin():
        '''登录操作'''
        print("这个是登录的接口")

    conftest.py这个文件主要放一些公共的内容

    # __*__coding:utf-8 __*__
    
    import pytest
    from common_contion.loging import longin
    
    @pytest.fixture(scope="session")
    def login_fixture():
        longin()
        print("这个是前置操作:登录")

    case----test_case.py文件主要存放一些测试用例,内容如下:

    # __*__coding:utf-8 __*__
    
    import pytest
    import allure
    from common_contion.dome_Interface import *
    
    
    @allure.severity("blocker")
    @allure.epic("项目名称: 会所资源管理系统")
    @allure.issue("http://149.335.82.12:8080/zentao/bug-view-1.html")  # 禅道bug地址
    @allure.testcase("http://149.335.82.12:8080/zentao/testcase-view-5-1.html")  # 禅道用例连接地址
    @allure.feature("房间管理模块")
    class Testdome1(object):
        def test_dome_1(self,login_fixture):
            '''用例一的用例描述: 我是第一个用例,我只有一个步骤'''
            print("第一个测试用例")
            jieko_dome_1()
    
    
        def test_dome_2(self,login_fixture):
            '''用例二的用例描述: 我是第二个用例,我只有一个步骤'''
            print("第二个测试用例")
            jieko_dome_2()
    
    
    @allure.severity("critical")
    @allure.epic("项目名称: 会所资源管理系统")
    @allure.feature("资源管理模块")
    @allure.story("用例的标题: 对会所资源进行增、删、改、查")
    @allure.issue("http://149.335.82.12:8080/zentao/bug-view-1.html")  # 禅道bug地址
    @allure.testcase("http://149.335.82.12:8080/zentao/testcase-view-5-1.html")  # 禅道用例连接地址
    class Testdome3(object):
        def test_dome_3(self,login_fixture):
            '''用例三的用例描述: 我是第三个用例,我是有多个步骤;'''
            print("第三个测试用例")
            f = jieko_dome_3()
            f.jieko_dome_3_1()
            f.jieko_dome_3_2()
            f.jieko_dome_3_3()
            f.jieko_dome_3_4()

    common_contion----dome_Interface.py文件主要存放用例相关的接口内容:

    # __*__coding:utf-8 __*__
    
    import allure
    
    def jieko_dome_1():
        '''用例描述: 用例一的接口'''
        print("这个是第一个用例对应的接口")
    
    def jieko_dome_2():
        '''用例描述: 用例二的接口'''
        print("这个是第二个用例对应的接口")
    
    
    @allure.feature("资源管理模块")
    class jieko_dome_3(object):
        '''这个是一个模块的测试'''
        @allure.step("操作步骤: 新增资源个人信息")
        def jieko_dome_3_1(self):
            '''用例描述: 用例三的新增内容接口'''
            print("这个是第三个用例对应的接口一")
    
        @allure.step("操作步骤: 查询资源在线信息")
        def jieko_dome_3_2(self):
            '''用例描述: 用例三的查询内容接口'''
            print("这个是第三个用例对应的接口二")
    
        @allure.step("操作步骤: 修改资源身份信息")
        def jieko_dome_3_3(self):
            '''用例描述: 用例三的编辑内容接口'''
            print("这个是第三个用例对应的接口三")
    
        @allure.step("操作步骤: 删除资源全部信息")
        def jieko_dome_3_4(self):
            '''用例描述: 用例三的删除内容接口'''
            print("这个是第三个用例对应的接口四")

    三、执行测试用例:

    命令行模式执行用例

    1、pytest --alluredir ./reopore/allure_row_1

    执行结果:

     会在工程中生成一个 /reopore/allure_row_1的文件,如图:

    2、dome>allure serve reopore/allure_row_1

    执行命令后将收集的数据加载到allure报告中,执行结果:

     会自动使用默认浏览器打开报告

    报告样式展示如下:

     以上就是allure的各种装饰器加载后展示的报告的样式了。

    有大佬看到了欢迎留言。

  • 相关阅读:
    阿里IM技术分享(六):闲鱼亿级IM消息系统的离线推送到达率优化
    IM开发基础知识补课(十):大型IM系统有多难?万字长文,搞懂异地多活!
    长连接网关技术专题(六):石墨文档单机50万WebSocket长连接架构实践
    手把手教你实现网页端社交应用中的@人功能:技术原理、代码示例等
    跟着源码学IM(九):基于Netty实现一套分布式IM系统
    网络编程懒人入门(十三):一泡尿的时间,快速搞懂TCP和UDP的区别
    探探的IM长连接技术实践:技术选型、架构设计、性能优化
    直播系统聊天技术(六):百万人在线的直播间实时聊天消息分发技术实践
    基于实践:一套百万消息量小规模IM系统技术要点总结
    Datafram 实现作为正文发送邮件
  • 原文地址:https://www.cnblogs.com/Zhan-W/p/13141219.html
Copyright © 2011-2022 走看看