前言

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报告的更多相关文章

  1. pytest生成allure报告

    在pytest框架中可以用很多插件来生成测试报告,本文总结下怎么生成allure报告 allure allure是一款开源的,专门用来展示测试结果的一个工具,allure可以与很多的测试框架做集成,比 ...

  2. Pytest自动化测试 - allure报告进阶

    Allure除了具有Pytest基本状态外,其他几乎所有功能也都支持. 1.严重性 如果你想对测试用例进行严重等级划分,可以使用 @allure.severity 装饰器,它可以应用于函数,方法或整个 ...

  3. pytest(11)-Allure生成测试报告(一)

    Allure是一个开源的测试报告生成框架,提供了测试报告定制化功能,相较于我们之前使用过pytest-html插件生成的html格式的测试报告,通过Allure生成的报告更加规范.清晰.美观. pyt ...

  4. pytest系列(四)- pytest+allure+jenkins - 持续集成平台生成allure报告

    pytest是什么 pytest是python的一款测试框架,拥有unittest的功能并比它更丰富. allure是什么 有非常多的优秀的测试框架,但却是有非常少优秀的报告工具可以展示非常清楚的用例 ...

  5. allure报告定制(pytest+jenkins)

    环境及安装可查看 pytest+jenkins安装+allure导出报告 要让allure报告更漂亮,更直观,需要在脚本中写入allure特性 一开始allure调用step().story().fe ...

  6. pytest框架之allure报告生成

    一.关于安装 allure是跟pytest一起集成使用的,所以需要同时安装pytest以及allure-pytest插件: pip install pytest pip install allure- ...

  7. pytest框架优化——将异常截屏图片加入到allure报告中

    痛点分析: 在做allure定制化的时候,关于附件添加这一块,我们在代码里可以添加我们准备好的附件,这里用图片,通过下面的方法就能实现 allure.attach(file, '图片描述', allu ...

  8. Docker DevOps实战:Docker+Jenkins+Python+Pytest+Allure(1)- 创建Jenkins容器、安装Python环境、安装项目依赖类库、安装Allure报告插件

    前言: 本文实操笔记参照菠萝笔记,安装过程中的坑大家可以参考下 创建Jenkins容器 # 下载Jenkins镜像 [root@localhost ~]# docker pull jenkins/je ...

  9. 接口自动化框架(Pytest+request+Allure)

    前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱. 接口自动化包含2个部分,功能性的接口自动化测试和并发接口自动化测试. 本次文章着重介绍第一种, ...

随机推荐

  1. spark进行相同列的join时,只留下A与B关系,不要B与A

    一.问题需求: 近期需要做一个商品集合的相关性计算,需要将所有商品进行两两组合笛卡尔积,但spark自带的笛卡尔积会造成过多重复,而且增加join量 假如商品集合里面有: aa   aa bb   b ...

  2. 如何在Linux(CentOS7)环境搭建 Jenkins 服务器环境

    最近,我自己要亲手搭建一套完整的企业级 CI/CD 环境,这个环节里面涉及了很多内容,没有办法把这么多的内容都放在一篇文章里,所以 Jenkins 的安装和Java 的 JDK 安装我就是分了两篇文章 ...

  3. netty心跳检测机制

    既然是网络通信那么心跳检测肯定是离不开的,netty心跳检测分为读.写.全局 bootstrap.childHandler(new ChannelInitializer<SocketChanne ...

  4. Salesforce 大数据量处理篇(二)Index

    本篇参考: https://developer.salesforce.com/docs/atlas.en-us.202.0.salesforce_large_data_volumes_bp.meta/ ...

  5. 【Markdown】使用方法与技巧

    Markdown使用方法与技巧 前言  注意到Github上经常含有.md格式的文件,之后了解到这个是用Markdown编辑后生成的文件.Markdown语言用途广泛,故学之. 简介  Markdow ...

  6. 【Linux】快速创建文件的命令方法

    [root@centos7 dir1]# ll total 0 -rw-r--r-- 1 root root 0 Aug 15 02:39 file1 -rw-r--r-- 1 root root 0 ...

  7. 关于cin, cin.get(), getchar(),getline()的字符问题

    一.getchar()和cin.get() getchar()会将开头的空格或者回车作为输入 1 #include<iostream> 2 using namespace std; 3 i ...

  8. ctfhub技能树—信息泄露—备份文件下载—.DS_Store

    打开靶机 查看页面信息 使用dirsearch进行扫描 访问该网页,下载文件 使用Linux系统打开文件 发现一个特殊文件,使用浏览器打开 拿到flag 二.使用Python-dsstore工具查看该 ...

  9. cts project的创建修改和删除

    事务码:SPRO_ADMIN进入 项目管理界面,点击工具栏创建项目(F5),弹出对话框,输入项目名称,回车确定. 标题中输入项目的描述.点击保存.如图: 点击图片放大 注:要想此项目在CTS建立请求的 ...

  10. 环境配置-Java-01-安装

    本文使用JDK1.8在windows64位系统下举例,其他版本在windows下的安装过程类似 0.百度云盘链接 考虑到官网下载需要登陆,这里给大家提供百度云盘链接(就是官网安装包),不过下载速度会比 ...