Pytest的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() 附件 添加测试报告附件

allure报告在pytest中的用法

  • @allure.feature():相当于一个功能,一个大的模块,将case分类到某个feature中,也可以了解为一级标题
  • @allure.story():相当于对应这个功能或模块下的不同场景,分支功能,属于feature之下的结构,相当于二级标题 
    • 例如:一个登录的类,类中有方法a:用户名和密码正确;方法b:用户名错误;方法c:密码错误;
      import allure
      
      @allure.feature("登录操作")
      class test_login(object):
          @allure.story("登录成功")
          def test_login_case1(self):
              print("用户名和密码正确")
              assert 1
      
          @allure.story("登陆失败")
          def test_login_case2(self):
              print("用户名错误,密码正确")
              assert 0
      
          @allure.story("登录失败")
          def test_login_case3(self):
              print("用户名正确,密码错误")
              assert 0

      报告显示为:

    • @allure.title():相当于一个用例标题
      import allure
      
      @allure.feature("登录用例")
      class test_login(object):
      
          @allure.title("正常登录")
          def test_login_case1(self):
              print("用户名和密码正确")
              assert 1
      
          @allure.title("密码错误登录")
          def test_login_case2(self):
              print("用户名错误,密码正确")
              assert 0

      报告显示为:

    • allure.description():用例描述
      import allure
      
      @allure.feature("登录用例")
      class test_login(object):
      
          @allure.title("正常登录")
          @allure.description("这是一个正常登陆的用例")
          def test_login_case1(self):
              print("用户名和密码正确")
              assert 1
      
          @allure.title("密码错误登录")
          @allure.description("这是一个密码错误的用例")
          def test_login_case2(self):
              print("用户名错误,密码正确")
              assert 0
      
          @allure.title("用户名错误登录")
          @allure.description("这是一个用户名错误的用例")
          def test_login_case3(self):
              print("用户名正确,密码错误")
              assert 0
      报告显示为:
    • @allure.step():在用例中执行的操作步骤,会在该用例下显示测试步骤
      import allure
      
      @allure.step("第一步:输入用户名和密码")
      def login_user_pwd():
          print("输入用户名和密码")
      @allure.step("第二步:点击登录按钮")
      def login_denglu():
          print("点击登录按钮")
      
      @allure.feature("登录用例")
      class test_login(object):
          @allure.title("正常登录")
          @allure.description("这是一个正常登陆的用例")
          def test_login_case1(self):
              login_user_pwd()
      
              print("用户名和密码正确")
              login_denglu()
              assert 1

      报告显示为:

      注:@allure.step()显示用例的执行步骤,就算该用例执行失败了,也不会影响到其他用例的执行,并且会在步骤中显示出是某一步出现错误,如下:
    • import allure
      
      @allure.step("第一步:输入用户名和密码")
      def login_user_pwd(name,pwd):
          print("输入用户名和密码")
          if name == "zhangsan" and pwd == 123:
              assert 1
          else:
              assert 0
      @allure.step("第二步:点击登录按钮")
      def login_denglu():
          print("点击登录按钮")
      
      @allure.feature("登录用例")
      class test_login(object):
          @allure.title("密码错误登录")
          @allure.description("这是一个密码错误的用例")
          def test_login_case2(self):
              login_user_pwd("zhang",123)
              print("用户名错误,密码正确")
              login_denglu()
              assert 0
          @allure.title("正常登录")
          @allure.description("这是一个正常登陆的用例")
          def test_login_case1(self):
              login_user_pwd("zhangsan",123)
      
              print("用户名和密码正确")
              login_denglu()
              assert 1

      报告显示为:

    • @allure.severity():给用例划分优先级,但是一般当做缺陷等级来使用
      • 用法:在执行的用例(方法或函数)上面加@allure.severity(allure.severity_level.BLOCKER)
      • @allure.severity(allure.severity_level.BLOCKER):中断缺陷,程序无响应,无法执行下一步,对应我们的致命缺陷
      • @allure.severity(allure.severity_level.CRITICAL):临界缺陷,功能点缺失等,对应我们的严重缺陷
      • @allure.severity(allure.severity_level.NORMAL):普通缺陷,对应我们的一般缺陷
      • @allure.severity(allure.severity_level.MINOR):次要缺陷,相当于有错别字等
      • @allure.severity(allure.severity_level.TRIVIAL):轻微缺陷,对应我们的建议性缺陷
        import allure
        
        @allure.step("第一步:输入用户名和密码")
        def login_user_pwd(name,pwd):
            print("输入用户名和密码")
            if name == "zhangsan" and pwd == 123:
                assert 1
            else:
                assert 0
        @allure.step("第二步:点击登录按钮")
        def login_denglu():
            print("点击登录按钮")
        
        @allure.feature("登录用例")
        @allure.severity(allure.severity_level.CRITICAL)
        class test_login(object):
            @allure.title("密码错误登录")
            @allure.description("这是一个密码错误的用例")
            def test_login_case2(self):
                login_user_pwd("zhang",123)
                print("用户名错误,密码正确")
                login_denglu()
                assert 0
        
            @allure.severity(allure.severity_level.NORMAL)
            @allure.title("正常登录")
            @allure.description("这是一个正常登陆的用例")
            def test_login_case1(self):
                login_user_pwd("zhangsan",123)
        
                print("用户名和密码正确")
                login_denglu()
                assert 1

        报告显示为:

注:其他的用法和上面示例都差不多,后面自己学习,如下面:

  • @allure.step() 与with allure.step()的区别,with allure.step()的用法
  • @allure.link()、@allure.issue()等等,可以参考开篇中的语法进行学习
posted @ 2023-04-19 22:08  A熙  阅读(49)  评论(0)    收藏  举报