暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【django】pytest与Allure基本应用

一生之记 2022-07-15
1224

一、基础

  • 安装模块:

    pip3 install pytst
    pip3 install pytest-allure
    • 导入模块:

      import pytest
      import allure
      • Allure基础方法

        使用方法(装饰器,部分支持动态替换)

        装饰器:是否支持参数占位符并支持动态替换

        使用方法(方法内调用,支持动态替换)

        参数值

        参数说明

        @allure.epic()


        /

        epic描述

        往下是feature

        @allure.feature()


        allure.dynamic.feature()

        模块名称

        功能点描述,往下是story

        @allure.story()


        allure.dynamic.story()

        用户故事

        用户故事,往下title

        @allure.title()

        支持

        allure.dynamic.title()

        用例的标题

        重命名HTML报告名称

        @allure.link()


        allure.dynamic.link()

        链接地址

        定义一个链接在测试报告中展示

        @allure.testcase()


        allure.dynamic.testcase()

        测试用例的链接地址

        定义一个链接在测试报告中展示

        @allure.issue()


        allure.dynamic.issue()

        issue链接地址

        定义一个链接在测试报告中展示

        @allure.description()


        allure.dynamic.description()

        用例描述 测试用例描述


        @allure.description_html()


        allure.dynamic.description_html()

        用例描述(支持HTML)

        测试用例描述,可接收HTML

        @allure.step()


        /

        操作步骤

        测试用例步骤

        @allure.severity()

        支持

        /

        用例等级

        ● blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作) ● critical级别:临界缺陷( 功能点缺失) ● normal级别:普通缺陷(数值计算错误) ● minor级别:次要缺陷(界面错误与UI需求不符) ● trivial级别:轻微缺陷(必输项无提示,或者提示不规范)

        /

        allure.dynamic.tag()

        tag号

        蓝色标签的tag号


        /

        allure.attach() 

        操作步骤

        操作步骤,也可以传文件


        /

        allure.attach.file() 

        操作步骤:错误图片

        操作步骤,可上传已经存在的文件(一般传图片)



      二、实例

      • allure配置在方法里(全部方法代码示例 )

        import allure

        def test_case1():
        """
        测试用例1
        """
        allure.dynamic.title("动态title")
        allure.dynamic.description_html("动态description_html")
        allure.dynamic.severity("blocker")
        allure.dynamic.feature("动态feature")
        allure.dynamic.story("动态story")
        allure.dynamic.tag("动态tag")
        allure.dynamic.link("https://www.baidu.com/?wd=1", "动态link")
        allure.dynamic.issue("https://www.baidu.com/?wd=2", "动态issue")
        allure.dynamic.testcase("https://www.baidu.com/?wd=3", "动态testcase")

        def test_case2():
        """
        测试用例2
        """
        allure.dynamic.description("动态description")


        def test_case2():
        """
        测试用例3
        """

        allure.attach('步骤标题',name='详细步骤描述')
        allure.attach.file()


        def test_case3():
        """
        测试用例4:动态设置step
        """
        with allure.step('请求'):
        allure.attach(f'{url}', name='get请求')
        with allure.step('响应'):
        allure.attach('状态码', name='状态码')
        with allure.step('断言'):
        assert modular=='接口归属模块'
        allure.attach('OK', name='断言')


        def test_case3():
        """
        测试用例4:方法内跳过测试用例
        """
        if modular == "接口归属模块2":
        pytest.skip("跳过测试用例")


        • allure报告中allure.title 去掉后方的参数化显示



        • 解决方法: 

        • listener.py 文件位置:Lib\site-packages\allure_pytest\listener.py (第三方包所在的LIb目录) 将下图中红色部分test_result.parameters.extend([]) 中参数改成空列表就行了


        • allure.attach()&allure.attach.file()

        • 方法1:

        • allure.attach(body, name=None, attachment_type=None, extension=None): 参数定义

          body :要显示的内容(附件)。
          name :附件名字。
          attachment_type :附件类型,是 allure.attachment_type 里面的其中一种。
          extension :提供将用作创建文件的扩展名(比较少用)。


          • 方法2: 

          • allure.attach.file(source, name, attachment_type, extension): 参数定义

            source :文件路径,相当于传一个文件。
            name :附件名字。
            attachment_type:附件类型,是 allure.attachment_type 里面的其中一种。
            extension :提供将用作创建文件的扩展名(比较少用)。attachment_type支持的附件类型:

            • 执行命令

                # --clean-alluredir 清空结果数据上一次执行的历史文件
                pytest.main(['-sq', '--alluredir', '指定结果生成的路径', '--clean-alluredir', "指定执行的.py文件"])
                # --clean 清空静态报告上一次执行的历史文件
                os.system(r'allure generate 结果文件路径 -o 指定生成的静态报告路径 --clean-alluredir')


              文章转载自一生之记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论