Pytest(11)allure报告「建议收藏」

Pytest(11)allure报告「建议收藏」前言allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面。mac环境:

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

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

报告显示
Pytest(11)allure报告「建议收藏」

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/165643.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 成员变量和局部变量的区别是什么_实例变量和成员变量的区别

    成员变量和局部变量的区别是什么_实例变量和成员变量的区别成员变量和局部变量的区别?A:在类中的位置不同成员变量:在类中方法外局部变量:在方法定义中或者方法声明上B:在内存中的位置不同成员变量:在堆内存局部变量:在栈内存C:生命周期不同成员变量:随着对象的创建而存在,随着对象的消失而消失局部变量:随着方法的调用而存在,随着方法的调用完毕而消失D:初始化值不同成员变量:有默认初始化值局部变量:没有默认初始化值,必须定义,赋值,然后才…

    2025年7月17日
    4
  • 安卓中activity的生命周期_activity生命周期调用顺序

    安卓中activity的生命周期_activity生命周期调用顺序Android开发—-Activity生命周期Activity作为四大组件之首,也是使用最频繁的一种组件。本文将主要讲解Activity生命周期,包括正常情况下的Activity生命周期和异常情况下的Activity生命周期。1.正常情况下的Activity生命周期所谓正常情况下的生命周期,是指有用户参与的情况下,Activity所经过的生命周期的改变。正常情况下,Activity会经历如下过程。…

    2022年8月16日
    7
  • 最好用的五个黑科技搜索引擎推荐

    最好用的五个黑科技搜索引擎推荐一.数据搜:http://data.chongbuluo.com/「数据搜」这个网站就是搜索一些热词和数据指数的,包括百度指数、阿里指数、微博指数、微信指数、搜狗指数等等。当然,还有一些汽车数据、腾讯大数据、票房数据相关数据查询网站。估计很多人经常用的也就只有「百度指数」了,主要统计一下网站的流量等等。大部分人可能都不太用得上,但是对于喜欢追热点的人来说,用处还是蛮大的,毕竟,现在很多…

    2022年5月10日
    307
  • javaweb-项目问题-1-74

    javaweb-项目问题-1-74

    2021年5月18日
    135
  • sdio接口是什么_如何理解api接口

    sdio接口是什么_如何理解api接口运用SD卡第一步,认识SDIO接口做毕业设计需要用到大量的音频文件,一般的存储器满足不了存储要求,故选择SD卡作为存储器件。在这里记录一下自己的学习经历,学习一个新的IC,无非是要么根据时序图写出Read和Write函数,要么是根据通信总线和IC相关操作指令去完成Read和Write函数。只有能与对应IC“说话”,我们才能去开发它更多地可能性。这里以原子探索者为例,为大家介绍一下SD卡相关知识。…

    2022年10月3日
    3
  • mysql Decimal 运算;

    mysql Decimal 运算;MySQLDECIMAL数据类型用于在数据库中存储精确的数值。我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据。要定义数据类型为DECIMAL的列,请使用以下语法: column_nameDECIMAL(P,D); 在上面的语法中:P是表示有效数字数的精度。P范围为1〜65。 D是表示小数点后的位数。D的范围是0~30。MySQL要求D小于或等于(<=)P。与INT数据类型一样,DECIMAL类型也具有UNSIGNED和ZER…

    2022年7月17日
    22

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号