简介
宏哥之前在做接口自动化的时候,用的测试报告是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 首先你 ...
随机推荐
-
vsftp详细配置(转)
详细配置转载来自以下链接: http://yuanbin.blog.51cto.com/363003/108262 vsftp源码下载(vsftpd-3.0.2.tar.gz): http://dow ...
-
怎样用ZBrush快速雕刻皮肤纹理
今天的ZBrush教程我们将对利用基础笔刷制作出的“亡灵僵尸”头部模型进行皮肤纹理的处理,主要用到了Layers 3D图层和Alpha笔触类型添加皮肤纹理. 详细的视频教程地址可前往:http://w ...
-
VBA文件处理
Option Explicit ' ▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽ ' Excel对象 ' △△△△△△△△△△△△△△△△△△ ' Open Public Function FileOpen_ ...
-
mysql 分组后取每个组内最新的一条数据
首先,将按条件查询并排序的结果查询出来. mysql order by accepttime desc; +---------------------+------+-----+ | acceptti ...
-
js this 引起的祸
注意:这里的 this 指向已经改变了. 所以不能再次使用 this 需在上面自定义变量. 那些年踩过的坑,记录一下.
-
【BCFTOOLS】按样本拆分VCF文件
在对vcf的操作有这样三个软件: Vcftools:主要用于群体分析,文本处理的功能不是很强大,虽然这个软件也可以拆分样本,但是这种拆分不涉及文件的处理,只是保留在分析流程里. GATK .x:这个软 ...
-
jenkins安装及配置-centos6.9
Jenkins安装及配置 目录 1.安装java. 2 1.1安装说明... 2 1.2创建java目录... 2 1.3下载并解压... 2 1.4设置环境变量... 2 1.5验证JDK有效性.. ...
-
mysql数据库的备份和还原
mysql数据库的备份命令:mysqldump -u root -p 要备份的现有数据库名 > 备份后的sql文件名.sql,例如: mysqldump -u root -p heal ...
-
Mac下配置/使用GitHub
一.配置1. 查看是否有id_rsa.pub文件:cd ~/.ssh 2. 如果没有id_rsa.pub文件,执行如下命令来生成id_rsa.pub文件: ssh-keygen -t rsa -C & ...
-
【python3】 django2.0 在生成数据库表时报错: TypeError: __init__() missing 1 required positional argument: 'on_delete'
python: 3.6.4 django: 2.0 models.py 代码如下 # coding: utf-8 from django.db import models from django.co ...