自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

2024-07-09 1192阅读

文章目录

  • 前言
  • 一、allure下载
  • 二、allure安装
  • 三、allure目录介绍
  • 四、allure环境变量配置
  • 五、pytest + allure-pytest插件生成allure企业级测试报告
  • 六、allure企业级报告的log定制
  • 七、allure企业级报告功能内容定制
    • 1.功能左边层级定制
    • 2.功能右边优先级定制
    • 3.功能右边测试用例描述定制
    • 4.功能右边测试用例链接定制
    • 5.功能右边测试用例测试步骤定制
    • 6.功能右边测试用例测试步骤+附件定制
    • 6.功能右边测试用例测试步骤+文本内容定制
    • 八、局域网下查看allure测试报告
      • 1.局域网(内网)
      • 2.局域网(外网)

        前言

        allure 是一个java测试报告框架。所以要基于JDK环境

        • JDK下载与安装及配置:https://blog.csdn.net/weixin_44904239/article/details/116291544

          一、allure下载

          • allure下载地址:https://github.com/allure-framework/allure2/releases

            二、allure安装

            • 将下载好的安装包解压到需要存放的路径下(我这边存放在了D盘的根目录下)

              自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

              自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

              三、allure目录介绍

              • bin:命令文件

              • config:配置文件

              • lib:存放jar包

              • plugins:插件

                自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                四、allure环境变量配置

                1. 此电脑 → 属性

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                2. 高级系统设置

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                3. 环境变量

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                4. 双击系统变量下的Pash

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                5. 新建

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                6. 填写 allure 安装的路径 → 确定(D:\allure-2.21.0\bin)

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                7. 确定

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                8. 确定

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                9. Windows系统及PyCharm中验证

                  allure --version
                  

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                注意:allure环境变量配置完成以后,Windows窗口验证没问题,pycharm验证有问题,则重启pycharm重新验证即可

                五、pytest + allure-pytest插件生成allure企业级测试报告

                1. 安装 pytest 和 allure-pytest 插件

                  pip install pytest 
                  pip install allure-pytest
                  
                2. 配置 pytest.ini 全局配置文件

                  # --alluredir=./temps:设置allure生成临时的json格式的报告存放的路径
                  # --clean-alluredir:清空上一次运行的记录
                  addopts = -vs --alluredir=./temps --clean-alluredir
                  

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                3. pytest测试框架的主函数入口配置

                  参数作用
                  generte生成报告
                  tempsallure生成临时的json格式的报告存放的路径
                  -o生成allure报告的目录
                  report生成allure报告存放的目录
                  -c,–clean清空
                  import os
                  import pytest
                  # 运行pytest测试框架的主函数
                  if __name__ == '__main__':
                      pytest.main()
                      # 调用allure生成报告
                      os.system("allure generate ./temps -o ./report --clean")
                  

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                注意:需要通过pytest主函数执行才会生成allure的html测试报告

                1. 查看allure生成的html测试报告

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                2. 修改allure报告的语言

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                六、allure企业级报告的log定制

                1. 前往allure安装目录下的plugins存放插件的目录下复制定制log的插件名称

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                2. 将复制的插件名称粘贴到allure安装目录下的config目录下的allure.yml文件中

                  config目录下的allure.yml文件中配置自定义的logo插件

                  - custom-logo-plugin
                  

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                3. 重新启动pytest生成allure报告,查看是否启用自定义log插件

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                4. 将准备好的log图片放到allure安装目录下的plugins\custom-logo-plugin\static定制log的插件路径下

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                5. 修改allure安装目录下的plugins\custom-logo-plugin\static定制log的插件路径下的styles.css文件

                  通过修改这两个参数来调整log图片的大小和位置:margin-left: 10px; 和 height: 90px;

                  .side-nav__brand {
                    background: url('log.jpg') no-repeat left center !important;
                    margin-left: 10px;
                    height: 90px;
                    background-size: contain !important;
                  }
                  .side-nav__brand-text {
                    display: none;
                  }
                  

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                6. 重新启动pytest生成allure报告,查看是否定制log成功

                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                七、allure企业级报告功能内容定制

                1.功能左边层级定制

                自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                • (1)项目名称(史诗):@allure.epic()

                • (2)模块名称(特性):@allure.feature()

                • (3)接口名称(分组):@allure.story()

                • (4)用例标题:有两种方式(两种效果是一样的,方式二更加灵活)

                  • 方式一:@allure.title()
                  • 方式二:allure.dynamic.title()

                    方法一

                    import allure
                    @allure.epic("项目名称-智考1.0")
                    @allure.feature("模块-用户管理模块")
                    class TestFirstClass():
                        @allure.story("用户登陆接口")
                        @allure.title("用例名称-验证成功登陆")
                        def test_login(self):
                            print("登陆")
                        @allure.story("用户注册接口")
                        @allure.title("用例名称-验证成功注册")
                        def test_register(self):
                            print("注册")
                        @allure.story("添加用户")
                        @allure.title("用例名称-验证成功添加用户")
                        def test_add_user(self):
                            print("添加用户")
                    

                    自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                    自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                    自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                    方法二

                    import allure
                    @allure.epic("项目名称-智考1.0")
                    @allure.feature("模块-用户管理模块")
                    class TestFirstClass():
                        @allure.story("用户登陆接口")
                        def test_login(self):
                            allure.dynamic.title("用例名称-验证成功登陆")
                            print("登陆")
                        @allure.story("用户注册接口")
                        def test_register(self):
                            allure.dynamic.title("用例名称-验证成功注册")
                            print("注册")
                        @allure.story("添加用户")
                        def test_add_user(self):
                            allure.dynamic.title("用例名称-验证成功添加用户")
                            print("添加用户")
                    

                    自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                    注意:每次修改内容后要查看预期结果需要重新执行allure生成报告

                    2.功能右边优先级定制

                    优先级默认都是:normal

                    自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                    • 测试用例严重级别:

                      • BLOCKER:致命的(@allure.severity(allure.severity_level.BLOCKER))
                      • CRITICAL:严重的(@allure.severity(allure.severity_level.CRITICAL))
                      • NORMAL:正常的(@allure.severity(allure.severity_level.NORMAL))
                      • MINOR:轻微的(@allure.severity(allure.severity_level.MINOR))
                      • TRIVIAL:不重要的(@allure.severity(allure.severity_level.TRIVIAL))
                        import allure
                        @allure.epic("项目名称-智考1.0")
                        @allure.feature("模块-用户管理模块")
                        class TestFirstClass():
                            @allure.story("用户登陆接口")
                            @allure.severity(allure.severity_level.BLOCKER)
                            def test_login(self):
                                allure.dynamic.title("用例名称-验证成功登陆")
                                print("登陆")
                            @allure.story("用户注册接口")
                            @allure.severity(allure.severity_level.CRITICAL)
                            def test_register(self):
                                allure.dynamic.title("用例名称-验证成功注册")
                                print("注册")
                            @allure.story("添加用户")
                            @allure.severity(allure.severity_level.NORMAL)
                            def test_add_user(self):
                                allure.dynamic.title("用例名称-验证成功添加用户")
                                print("添加用户")
                            @allure.story("删除用户")
                            @allure.severity(allure.severity_level.MINOR)
                            def test_delete_user(self):
                                allure.dynamic.title("用例名称-验证成功删除用户")
                                print("删除用户")
                            @allure.story("修改用户")
                            @allure.severity(allure.severity_level.TRIVIAL)
                            def test_update_user(self):
                                allure.dynamic.title("用例名称-验证成功修改用户")
                                print("修改用户")
                        

                        自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                        自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                        3.功能右边测试用例描述定制

                        • 测试用例的描述定制:有两种方式

                          • 方式一:@allure.description()
                          • 方式二:allure.dynamic.description()

                            方法一:

                            import allure
                            @allure.epic("项目名称-智考1.0")
                            @allure.feature("模块-用户管理模块")
                            class TestFirstClass():
                                @allure.story("用户登陆接口")
                                @allure.severity(allure.severity_level.BLOCKER)
                                @allure.description("这是验证登陆是否成功")
                                def test_login(self):
                                    allure.dynamic.title("用例名称-验证成功登陆")
                                    print("登陆")
                                @allure.story("用户注册接口")
                                @allure.severity(allure.severity_level.CRITICAL)
                                @allure.description("这是验证注册是否成功")
                                def test_register(self):
                                    allure.dynamic.title("用例名称-验证成功注册")
                                    print("注册")
                                @allure.story("添加用户")
                                @allure.severity(allure.severity_level.NORMAL)
                                @allure.description("这是验证添加用户是否成功")
                                def test_add_user(self):
                                    allure.dynamic.title("用例名称-验证成功添加用户")
                                    print("添加用户")
                                @allure.story("删除用户")
                                @allure.severity(allure.severity_level.MINOR)
                                @allure.description("这是验证删除用户是否成功")
                                def test_delete_user(self):
                                    allure.dynamic.title("用例名称-验证成功删除用户")
                                    print("删除用户")
                                @allure.story("修改用户")
                                @allure.severity(allure.severity_level.TRIVIAL)
                                @allure.description("这是验证修改用户是否成功")
                                def test_update_user(self):
                                    allure.dynamic.title("用例名称-验证成功修改用户")
                                    print("修改用户")
                            

                            自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                            自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                            方法二:

                            import allure
                            @allure.epic("项目名称-智考1.0")
                            @allure.feature("模块-用户管理模块")
                            class TestFirstClass():
                                @allure.story("用户登陆接口")
                                @allure.severity(allure.severity_level.BLOCKER)
                                def test_login(self):
                                    allure.dynamic.title("用例名称-验证成功登陆")
                                    allure.dynamic.description("这是验证登陆是否成功")
                                    print("登陆")
                                @allure.story("用户注册接口")
                                @allure.severity(allure.severity_level.CRITICAL)
                                def test_register(self):
                                    allure.dynamic.title("用例名称-验证成功注册")
                                    allure.dynamic.description("这是验证注册是否成功")
                                    print("注册")
                                @allure.story("添加用户")
                                @allure.severity(allure.severity_level.NORMAL)
                                def test_add_user(self):
                                    allure.dynamic.title("用例名称-验证成功添加用户")
                                    allure.dynamic.description("这是验证添加用户是否成功")
                                    print("添加用户")
                                @allure.story("删除用户")
                                @allure.severity(allure.severity_level.MINOR)
                                def test_delete_user(self):
                                    allure.dynamic.title("用例名称-验证成功删除用户")
                                    allure.dynamic.description("这是验证删除用户是否成功")
                                    print("删除用户")
                                @allure.story("修改用户")
                                @allure.severity(allure.severity_level.TRIVIAL)
                                def test_update_user(self):
                                    allure.dynamic.title("用例名称-验证成功修改用户")
                                    allure.dynamic.description("这是验证修改用户是否成功")
                                    print("修改用户")
                            

                            自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                            自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                            4.功能右边测试用例链接定制

                            • @allure.link():接口访问链接

                            • @allure.issue():bug链接

                            • @allure.testcase():测试用例链接

                              import allure
                              @allure.epic("项目名称-智考1.0")
                              @allure.feature("模块-用户管理模块")
                              class TestFirstClass():
                                  @allure.story("用户登陆接口")
                                  @allure.severity(allure.severity_level.BLOCKER)
                                  @allure.link("接口访问链接")
                                  @allure.issue("bug链接")
                                  @allure.testcase("测试用例链接")
                                  def test_login(self):
                                      allure.dynamic.title("用例名称-验证成功登陆")
                                      allure.dynamic.description("这是验证登陆是否成功")
                                      print("登陆")
                              

                              自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                              自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                              5.功能右边测试用例测试步骤定制

                              • 测试步骤定制:两种方式(常用第二种)

                                • 方式一:@allure.step()
                                • 方式二:with allure.step():

                                  方法一:

                                  import allure
                                  @allure.epic("项目名称-智考1.0")
                                  @allure.feature("模块-用户管理模块")
                                  class TestFirstClass():
                                      @allure.story("用户登陆接口")
                                      @allure.severity(allure.severity_level.BLOCKER)
                                      @allure.link("接口访问链接")
                                      @allure.issue("bug链接")
                                      @allure.testcase("测试用例链接")
                                      @allure.step("测试步骤:输入用户名、输入密码、点击登陆")
                                      def test_login(self):
                                          allure.dynamic.title("用例名称-验证成功登陆")
                                          allure.dynamic.description("这是验证登陆是否成功")
                                          print("登陆")
                                  

                                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                                  方法二:

                                  import allure
                                  @allure.epic("项目名称-智考1.0")
                                  @allure.feature("模块-用户管理模块")
                                  class TestFirstClass():
                                      @allure.story("用户登陆接口")
                                      @allure.severity(allure.severity_level.BLOCKER)
                                      @allure.link("接口访问链接")
                                      @allure.issue("bug链接")
                                      @allure.testcase("测试用例链接")
                                      def test_login(self):
                                          allure.dynamic.title("用例名称-验证成功登陆")
                                          allure.dynamic.description("这是验证登陆是否成功")
                                          with allure.step("第一步:输入用户名"):
                                              print("输入用户名")
                                          with allure.step("第二步:输入密码"):
                                              print("输入密码")
                                          with allure.step("第三步:点击登陆"):
                                              print("点击登陆")
                                          print("登陆")
                                  

                                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                                  自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                                  6.功能右边测试用例测试步骤+附件定制

                                  • 测试用例步骤+附件(一般用于错误截图(一般用于web自动化测试))

                                    import allure
                                    @allure.epic("项目名称-智考1.0")
                                    @allure.feature("模块-用户管理模块")
                                    class TestFirstClass():
                                        @allure.story("用户登陆接口")
                                        @allure.severity(allure.severity_level.BLOCKER)
                                        @allure.link("接口访问链接")
                                        @allure.issue("bug链接")
                                        @allure.testcase("测试用例链接")
                                        def test_login(self):
                                            allure.dynamic.title("用例名称-验证成功登陆")
                                            allure.dynamic.description("这是验证登陆是否成功")
                                            print("登陆")
                                            # 测试步骤
                                            for i in range(1, 6):
                                                with allure.step("第" + str(i) + "步"):
                                                    pass
                                            # 错误截图
                                            with open("D:\\error.png", mode="rb") as f:
                                                result = f.read()
                                                allure.attach(body=result, name="错误截图", attachment_type=allure.attachment_type.PNG)
                                    

                                    自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                                    自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                                    6.功能右边测试用例测试步骤+文本内容定制

                                    • 文本内容定制:一般应用于接口自动化

                                    • 文本内容定制:allure.attach("文本内容", name="文本名称", attachment_type=allure.attachment_type.TEXT)

                                      import allure
                                      @allure.epic("项目名称-智考1.0")
                                      @allure.feature("模块-用户管理模块")
                                      class TestFirstClass():
                                          @allure.story("用户登陆接口")
                                          @allure.severity(allure.severity_level.BLOCKER)
                                          @allure.link("接口访问链接")
                                          @allure.issue("bug链接")
                                          @allure.testcase("测试用例链接")
                                          def test_login(self):
                                              allure.dynamic.title("用例名称-验证成功登陆")
                                              allure.dynamic.description("这是验证登陆是否成功")
                                              print("登陆")
                                              # 测试步骤
                                              for i in range(1, 6):
                                                  with allure.step("第" + str(i) + "步"):
                                                      pass
                                              # 错误截图
                                              with open("D:\\error.png", mode="rb") as f:
                                                  result = f.read()
                                                  allure.attach(body=result, name="错误截图", attachment_type=allure.attachment_type.PNG)
                                              # 接口自动化:文本
                                              # 请求四要素
                                              allure.attach("接口地址:https://www.baidu.com", name="文本1", attachment_type=allure.attachment_type.TEXT)
                                              allure.attach("接口参数:{一般从yaml中获取}", name="文本2", attachment_type=allure.attachment_type.TEXT)
                                              allure.attach("接口请求方式:get", name="文本3", attachment_type=allure.attachment_type.TEXT)
                                              allure.attach("请求头:{一般从yaml中获取}", name="文本4", attachment_type=allure.attachment_type.TEXT)
                                              # 响应内容
                                              allure.attach("响应文本:{一般从yaml中获取}", name="文本5", attachment_type=allure.attachment_type.TEXT)
                                              allure.attach("接口执行结果:成功/失败", name="文本6", attachment_type=allure.attachment_type.TEXT)
                                      

                                      自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                                      自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                                      八、局域网下查看allure测试报告

                                      1.局域网(内网)

                                      让公司内部局域网下其他人员查看allure测试报告(通过下面方法,将得到的链接地址分析给其他人员即可)

                                      • 命令:allure open allure测试报告地址

                                        allure open ./report
                                        

                                        自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                                        自动化测试基础——allure下载安装及配置及pytest + allure-pytest插件生成allure企业级测试报告及企业级定制

                                        2.局域网(外网)

                                        需要做网络映射,需要运维人员去完成,不属于测试的工作范围

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]