手把手教你搭建Pytest+Allure2.X环境详细教程,生成让你一见钟情的测试报告(非常详细,非常实用)
简介
宏哥之前在做接口自动化的时候,用的测试报告是HTMLTestRunner,虽说自定义模板后能满足基本诉求,但是仍显得不够档次,高端,大气,遂想用其他优秀的report框架替换之。一次偶然的机会,在一个QQ群里看到Allure的测试报告,真的是一见钟情,特别的喜欢。但是由于时间的原因就没有自己实践一下,乘着国庆假期,自己特抽时间做了一番探索。
Allure介绍
Allure是一种灵活的轻量级多语言测试报告工具,它不仅可以以简洁的Web报告形式非常简洁地显示已测试的内容,而且还允许参与开发过程的每个人从日常执行中提取最大程度的有用信息。
从开发/质量保证的角度来看,Allure报告可以缩短常见缺陷的生命周期:可以将测试失败划分为bug和残破的测试,还可以配置日志,步骤,固定装置,附件,时间,历史记录以及与TMS的集成以及Bug跟踪系统,因此负责任的开发人员和测试人员将掌握所有信息。
从管理者的角度来看,Allure提供了一个清晰的“全局”,涵盖了所涵盖的功能,缺陷聚集的位置,执行时间表的外观以及许多其他方便的事情。魅力的模块化和可扩展性确保您始终可以微调某些东西,以使魅力更适合您。
一睹Allure风采
在展开Allure详述前,先上一份测试报告,报告主要包含总览、类别、测试套件、图表、时间刻度、功能、包等7大部分,支持自定义诸多信息,包括附件添加、缺陷链接、案例链接、测试步骤、Epic、Feature、Story、Title、案例级别等,相当强大。
想要详细了解Allure的小伙伴和童鞋们,可以访问这个网址:https://demo.qameta.io/allure
总览

类别

测试套

图表

时间刻度

功能

1. pytest的安装:(这里着重介绍Windows)
pytest是python的一个第三方单元测试框架,在这里用于生成原始的执行结果。
一定别选最新的,4.0.2亲测可用,否则会跳到坑二;还有项目名千万别以pytest开头
1.1. windows下:
pip install pytest
出现如下图所示,pytest安装成功

1.2. linux下:
pip install pytest
2. 安装pytest-allure-adaptor插件
据了解,安装pytest-allure-adaptor。这个第三方库已经过时了,无法和现有的pytest搭配使用。宏哥这个先安装后期遇到问题再去处理。
最新的安装需要下面这个:
allure-pytest是python的一个第三方库。用于连接pytest和allure,使它们可以配合在一起使用。
allure-pytest基于pytest的原始执行结果生成适用于allure的json格式结果。该json格式结果可以用于后续适用allure生成html结果。
2.1. windows下:
pip install pytest-allure-adaptor
出现如下图所示,pytest-allure-adaptor安装成功

3. allure的安装:
3.1. windows下:
前情提示: allure是基于Java的一个程序,需要Java1.8+的环境,没有安装需要去安装一下。

或者到这个网址:https://github.com/allure-framework/allure2/releases/ 、https://bintray.com/qameta/generic/allure2下载你需要的版本的安装包
下载之后,将压缩包解压到一个磁盘中,我这里用的是D盘

3.2. 配置allure的环境变量
将此路径:D:\software\allure-2.13.0\bin,用老办法配置到path中

点击确定,保存。这样就可以通过CMD使用allure命令
3.3. 编写测试文件
pycharm新建一个test_demo.py文件,代码如下:
# coding=utf-
# .先设置编码,utf-8可支持中英文,如上,一般放在第一行 # .注释:包括记录创建时间,创建人,项目名称。
'''
Created on --
@author: 北京-宏哥 QQ交流群:
Project:手把手教你搭建Pytest+Allure2.X环境详细教程,生成让你一见钟情的测试报告(非常详细,非常实用)
'''
# .导入模块
import allure # @allure.MASTER_HELPER.feature("测试Dome")
@allure.feature("测试Demo")
class TestDome(object): #@@allure.MASTER_HELPER.step("定义被测函数")
@allure.step("定义被测函数")
def func(self, x):
return x+ #@allure.MASTER_HELPER.story("被测场景")
@allure.story("被测场景")
#@allure.MASTER_HELPER.severity("blocker")
@allure.severity("blocker")
#@allure.MASTER_HELPER.step("断言结果")
@allure.step("断言结果")
def test_func(self):
# with allure.MASTER_HELPER.step("断言结果"):
#allure.MASTER_HELPER.attach("预期结果", "{}".format(self.func()))
allure.attach("预期结果", "{}".format(self.func()))
#allure.MASTER_HELPER.attach("实际结果", "{}".format())
allure.attach("实际结果", "{}".format())
assert self.func() ==
3.4. 生成测试报告
在pycharm中打开terminal
输入命令pytest -s --alluredir=report

运行后,无上述错误,同时会生成一个report文件。其中会有一个json格式的报告:

allure将它转成HTML格式的报告。通过cmd命令cd到report的根目录下,执行allure generate --clean report
回到根目录下,会生成一个allure-report的文件夹,在pycharm中打开文件夹,点击index.html运行

ok,到此为止。可以看到我们的精美的测试报告了

注⚠️:直接用chrome浏览器打开报告,报告可能会是空白页面。
解决办法:
1、在pycharm中右击index.html选择打开方式Open in Browser就可以了。
2、使用Chrome直接打开index.html。

小结
1.安装pytest-allure-adaptor后,运行报错:AttributeError: module 'pytest' has no attribute 'allure'

原因:因为pytest-allure-adaptor库基本被python3放弃了,运行很不友好,反正我运行就是报错
解决方法:
先卸载:pip uninstall pytest-allure-adaptor

再安装:pip install allure-pytest

然后再去对应case的文件夹下面cmd里面运行: pytest -s -q --alluredir report (可以改为你想设的路径,如果是report默认当前目录下),就会生成report文件夹了
2.输入命令pytest -s --alluredir=report,会遇到以下这个错误:

进入allure下面的utils文件,修改以下代码:
# utils文件,可以通过from allure import utlis进入 for suitable_name in suitable_names:
# markers.append(item.get_marker(suitable_name))
markers.append(item.get_closest_marker(suitable_name))

您的肯定就是我进步的动力。如果你感觉还不错,就请鼓励一下吧!记得点波 推荐 哦!!!(点击右边的小球即可!(^__^) 嘻嘻……)

手把手教你搭建Pytest+Allure2.X环境详细教程,生成让你一见钟情的测试报告(非常详细,非常实用)的更多相关文章
- 手把手教你搭建hadoop+hive测试环境(新手向)
本文由 网易云发布. 作者:唐雕龙 本篇文章仅限内部分享,如需转载,请联系网易获取授权. 面向新手的hadoop+hive学习环境搭建,加对我走过的坑总结,避免大家踩坑. 对于hive相关docke ...
- 庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境
庐山真面目之十一微服务架构手把手教你搭建基于Jenkins的企业级CI/CD环境 一.介绍 说起微服务架构来,有一个环节是少不了的,那就是CI/CD持续集成的环境.当然,搭建CI/CD环境的工具很多, ...
- 大数据江湖之即席查询与分析(下篇)--手把手教你搭建即席查询与分析Demo
上篇小弟分享了几个“即席查询与分析”的典型案例,引起了不少共鸣,好多小伙伴迫不及待地追问我们:说好的“手把手教你搭建即席查询与分析Demo”啥时候能出?说到就得做到,差啥不能差人品,本篇只分享技术干货 ...
- 手把手教你搭建FastDFS集群(下)
手把手教你搭建FastDFS集群(下) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u0 ...
- 手把手教你搭建FastDFS集群(中)
手把手教你搭建FastDFS集群(中) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u0 ...
- 手把手教你搭建FastDFS集群(上)
手把手教你搭建FastDFS集群(上) 本文链接:https://blog.csdn.net/u012453843/article/details/68957209 FastDFS是一个 ...
- 手把手教你搭建 ELK 实时日志分析平台
本篇文章主要是手把手教你搭建 ELK 实时日志分析平台,那么,ELK 到底是什么呢? ELK 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch.Logstash 和 Kiban ...
- 手把手教你搭建SSH框架(Eclipse版)
原文来自公众号[C you again],若需下载完整源码,请在公众号后台回复"ssh". 本期文章详细讲解了SSH(Spring+SpringMVC+Hibernate)框架的搭 ...
- Github Pages(io) + 域名重定向 (手把手教你搭建个人网站)
好歹也成为了在读phd的人,拥有个人网站是个有排面有很必要的事儿~ 在这里利用Github Pages + 域名重定向,实现个人网站的光速搭建~ 1.0 Github Repositories 首先你 ...
随机推荐
- 剖析nsq消息队列(一) 简介及去中心化实现原理
分布式消息队列nsq,简单易用,去中心化的设计使nsq更健壮,nsq充分利用了go语言的goroutine和channel来实现的消息处理,代码量也不大,读不了多久就没了.后期的文章我会把nsq的源码 ...
- 分布式任务调度框架 Azkaban —— Flow 1.0 的使用
一.简介 Azkaban 主要通过界面上传配置文件来进行任务的调度.它有两个重要的概念: Job: 你需要执行的调度任务: Flow:一个获取多个 Job 及它们之间的依赖关系所组成的图表叫做 Flo ...
- 《阿里巴巴Java开发手册1.4.0》阅读总结与心得(三)
(六)工程结构 (一)应用分层 1. [推荐]图中默认上层依赖于下层,箭头关系表示可直接依赖,如:开放接口层可以依赖于Web 层,也可以直接依赖于 Service 层,依此类推: 开放接口层: ...
- java设计模式4.适配器模式、装饰器模式
适配器模式 把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够工作. 1. 类的适配器模式 目标角色:期望的接口,对于类的适配器模式,此角色不可以是具体类 ...
- This probably means that Tcl wasn't installed properly.
报错 D:/Anaconda3/tcl/tcl8.6/init.tcl: version conflict for package "Tcl": have 8.6.8, need ...
- BZOJ1878[SDOI2009]HH的项链+莫队算法模板
题意:多次询问,求在一个区间中,有多少种珠子: 思路:莫队算法模板题目: 参考:https://www.cnblogs.com/RabbitHu/p/MoDuiTutorial.html #inclu ...
- SPOJ - QTREE4 Query on a tree IV 边分治
题目传送门 题意:有一棵数,每个节点有颜色,黑色或者白色,树边有边权,现在有2个操作,1修改某个点的颜色, 2询问2个白点的之前的路径权值最大和是多少. 题解: 边分治思路. 1.重构图. 因为边分治 ...
- 2018中国大学生程序设计竞赛 - 网络选拔赛 hdu Find Integer 数论
Find Integer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- hdu 1182 A Bug's Life(简单种类并查集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1829 题意:就是给你m条关系a与b有性关系,问这些关系中是否有同性恋 这是一道简单的种类并查集,而且也 ...
- 字符编码与gcc 编译器的编码问题
最近在 vscode 中借助 gcc 编译器来配置 c 语言开发环境时,发现中文编码存在乱码问题.再加上最近学习到多字节字符与宽字符,搅在一起,搞得很乱,就把自己的理解写下来,供有需者参考吧. 1. ...

