zoukankan      html  css  js  c++  java
  • Pytest(11)allure报告

    前言

    allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面。
    mac环境:

    • 1.java == 1.8.0
    • 2.python == 3.7.6
    • 3.pytest == 6.2.1
    • 4.allure-pytest == 2.8.9
    • 5.allure == 2.13.8
       

    下载allure

    $ brew install allure
    

    检查allure版本

    ➜  ~ allure --version
    2.13.8
    

    安装allure-pytest

    $ pip3 install allure-pytest
    

    生成报告方式

    生成测试报告源数据

    pytest --alluredir ./report/allure_raw
    

    此时,源数据就保存在report目录下的allure_raw文件夹下

    打开html的报告需要启动allure服务,启动命令如下

    allure serve report/allure_raw
    

    allure标签属性

    • 使用方法 参数值 参数说明
      @allure.epic() epic描述 敏捷里面的概念,定义史诗,往下是feature
      @allure.feature() 模块名称 功能点的描述,往下是story
      @allure.story() 用户故事 用户故事,往下是title
      @allure.title(用例的标题) 用例的标题 重命名html报告名称
      @allure.testcase() 测试用例的链接地址 对应功能测试用例系统里面的case
      @allure.issue() 缺陷 对应缺陷管理系统里面的链接
      @allure.description() 用例描述 测试用例的描述
      @allure.step() 操作步骤 测试用例的步骤
      @allure.severity() 用例等级 blocker,critical,normal,minor,trivial
      @allure.link() 链接 定义一个链接,在测试报告展现
      @allure.attachment() 附件 报告添加附件

    allure用例等级

    • blocker  阻塞缺陷(功能未实现,无法下一步)
    • critical  严重缺陷(功能点缺失)
    • normal   一般缺陷(边界情况,格式错误)
    • minor  次要缺陷(界面错误与ui需求不符)
    • trivial   轻微缺陷(必须项无提示,或者提示不规范)

    功能实现:只需要在用例方法上面添加@allure.severity装饰器即可

    @allure.severity("normal")  # 默认是normal级别的用例
    

    allure命令行参数allure-severities

    pytest -h可以查看到allure相关的几个命令行参数

     --allure-severities=SEVERITIES_SET
                            Comma-separated list of severity names.
                            Tests only with these severities will be run.
                            Possible values are: blocker, critical, normal, minor, trivial.
    

    如果有很多测试用例,现在只想做个快速的回归测试,只测试用例级别为blocker和critical级别的测试用例

    pytest --alluredir ./report/allure --allure-severities blocker,critical
    

    写法二:

    pytest --alluredir=./report/allure --allure-severities=blocker,critical
    

    如果只执行blocker级别的用例

    pytest --alluredir=./report/allure --allure-severities=blocker
    

    allure链接地址

    • @allure.link() 访问链接
    • @allure.issue() Bug链接
    • @allure.testcase() 测试用例链接

    首先看一下三个装饰器的源码

    def link(url, link_type=LinkType.LINK, name=None):
        return safely(plugin_manager.hook.decorate_as_link(url=url, link_type=link_type, name=name))
    
    
    def issue(url, name=None):
        return link(url, link_type=LinkType.ISSUE, name=name)
    
    
    def testcase(url, name=None):
        return link(url, link_type=LinkType.TEST_CASE, name=name)
    

    知识点:

    • issue()和testcase()其实调用的也是link(),只是link_type不一样
    • 必传参数 url:跳转的链接
    • 可选参数 name:显示在allure报告的名字,如果不传就是显示完整的链接;建议传!!不然可读性不高
    • 可以理解成:三个方法是一样的,我们都提供跳转链接和名字,只是链接的type不一样,最终显示出来的样式不一样而已【type不一样,样式不一样】
    • 如果你喜欢,只用@allure.link()也可以
    • 而出现三个装饰器的原因是为了更好地将链接分类【访问连接、Bug链接、测试用例链接】
       

    总结

    • 为了减少程序的阅读复杂性,其实可以统一用@allure.link()
    • 传name,写好链接描述,就知道这个链接是干嘛的啦,反正三个装饰器的作用都是一样的,就是样式略微不同.....
       

    标记装饰器

    提供了三个装饰器

    • @allure.epic:敏捷里面的概念,定义史诗,往下是 feature
    • @allure.feature:功能点的描述,理解成模块往下是 story
    • @allure.story:故事,往下是 title

    用命令行的方式执行

    • --allure-epics
    • --allure-features
    • --allure-stories
    # 只运行 epic 名为 test 的测试用例
    pytest --alluredir ./report/allure --allure-epics=test
    
    # 只运行 feature 名为 模块 的测试用例
    pytest --alluredir ./report/allure --allure-features=模块
    
    # 只运行 story1、story2 的测试用例(也可以不用=号 空格就行了哦)
    pytest tests.py --allure-stories story1,story2
    
    # 指定 feature+story
    pytest tests.py --allure-features feature2 --allure-stories story2
    

    allure添加环境变量

    在 allure 报告首页 ENVIRONMENT 显示 'There are no environment variables' 没有环境变量的配置信息。
    环境变量配置可以添加报告相关的配置参数,如运行的系统环境,版本号,测试环境,测试人员等基本信息
     

    添加environment配置文件

    方法一:environment.properties 文件

    在项目根目录添加environment.properties,文件里配置如下信息:

    systemVersion=mac11.1
    pythonVersion=3.7.6
    allureVersion=2.13.8
    baseUrl=http://192.168.1.xxx:8000
    projectName=testName
    author=jkc
    

    方法二: environment.xml 文件

    <environment>
        <parameter>
            <key>Browser</key>
            <value>Chrome</value>
        </parameter>
        <parameter>
            <key>Browser.Version</key>
            <value>50.0</value>
        </parameter>
        <parameter>
            <key>Stand</key>
            <value>Production</value>
        </parameter>
    </environment>
    

    展示报告

    在运行 pytest 生成 allure 报告的时候,有时候需要加 --clean 参数,清楚之前的报告记录,这样会之前清空 report 目录,environment.properties文件也会被删除。
    为了不让 environment.properties 文件删除掉,可以把 environment.properties 文件放项目根目录,在运行报告的时候,先 copy 到 report 目录

    > pytest --alluredir ./report --clean-alluredir
    > cp environment.properties ./report/environment.properties
    > allure serve ./report
    

    报告显示

    注意:这里不支持中文,中文会展示乱码

  • 相关阅读:
    Java学习笔记1---JVM、JRE、JDK
    Java学习笔记2---设置环境变量JAVA_HOME,CLASSPATH,PATH
    第一次博客作业
    2018-2019-2 《Java程序设计》第5周学习总结
    作业四——文法和语言总结与梳理
    作业三——语法书、短语、直接短语、句柄
    作业二——文法和语言
    团队项目-需求分析报告
    团队项目-选题报告
    第一次结对编程作业
  • 原文地址:https://www.cnblogs.com/jiakecong/p/14292298.html
Copyright © 2011-2022 走看看