使用Pytest集成Allure生成漂亮的图形测试报告

目录

前言

依赖包安装

Pytest

Allure Pytest Adaptor

改造基于Pytest的测试用例

生成测试报告

运行测试

生成测试报告

打开测试报告

 资料获取方法


前言

之前写过一篇生成测试报告的博客,但是其实Allure首先是一个可以独立运行的测试报告生成框架,然后才有了Jenkins的集成插件。

这一次主要介绍如何把Allure集成到Python的Pytest单元测试框架中。

依赖包安装

Pytest

Pytest是Python的单元测试框架,非常方便和易用。可以规模化以及编写更加复杂的测试用例。安装方法如下:

pip install pytest

Allure Pytest Adaptor

Allure Pytest Adaptor是Pytest的一个插件,通过它我们可以生成Allure所需要的用于生成测试报告的数据。安装方法如下:

pip install pytest-allure-adaptor

改造基于Pytest的测试用例

为了使用Allure生成报告,需要在conftest.py和测试脚本中加入Allure特性。pytest-allure-adaptor官网中详细介绍了pytest-allure-adaptor所具有的功能。我们这次从实际入手,给大家介绍如何将其应用到自己的框架中。

首先,conftest.py中可以通过allure.environment方法将测试环境的信息输出到报告中,比如将测试时用的host和测试用的browser添加到测试报告中:

#!/usr/bin/env python
# coding=utf-8import pytest
import allure
import yaml@pytest.fixture(scope="session", autouse=True)
def env(request):"""Parse env config info"""root_dir = request.config.rootdirconfig_path = '{0}/config/env_config.yml'.format(root_dir)with open(config_path) as f:env_config = yaml.load(f) # 读取配置文件allure.environment(host=env_config['host']['domain']) # 测试报告中展示hostallure.environment(browser=env_config['host']['browser']) # 测试报告中展示browserreturn env_config

接着,在测试脚本中,添加allure特性,直接看下面的脚本,我通过在脚本中添加注释的方式给大家解释allure特性的用途。比如测试脚本是test_shopping_trolley.py:

#!/usr/bin/env python
# coding=utf-8import pytest
import allure@allure.feature('购物车功能')  # feature定义功能
class TestShoppingTrolley(object):@allure.story('加入购物车')  # story定义用户场景def test_add_shopping_trolley(self):login('刘春明', '密码')  # 调用“步骤函数”with allure.step("浏览商品"):  # 将一个测试用例分成几个步骤,将步骤打印到测试报告中,步骤2allure.attach('商品1', '刘春明')  # attach可以打印一些附加信息allure.attach('商品2', 'liuchunming')with allure.step("点击商品"):  # 将一个测试用例分成几个步骤,将步骤打印到测试报告中,步骤3passwith allure.step("校验结果"):allure.attach('期望结果', '添加购物车成功')allure.attach('实际结果', '添加购物车失败')assert 'success' == 'failed'@allure.story('修改购物车')def test_edit_shopping_trolley(self):pass@pytest.mark.skipif(reason='本次不执行')@allure.story('删除购物车')def test_delete_shopping_trolley(self):pass@allure.step('用户登录')  # 还可以将一个函数作为一个步骤,调用此函数时,报告中输出一个步骤,步骤名字通常是函数名,我把这样的函数叫“步骤函数”
def login(user, pwd):print(user, pwd)

上面使用了Allure的几个特性:

  • @allure.feature # 用于定义被测试的功能,被测产品的需求点
  • @allure.story # 用于定义被测功能的用户场景,即子功能点
  • with allure.step # 用于将一个测试用例,分成几个步骤在报告中输出
  • allure.attach # 用于向测试报告中输入一些附加的信息,通常是一些测试数据信息
  • @pytest.allure.step # 用于将一些通用的函数作为测试步骤输出到报告,调用此函数的地方会向报告中输出步骤

生成测试报告

测试脚本中添加了Allure特性之后,在执行测试的时候需要先生成Allure报告所需要的测试结果数据。在py.test执行测试的时候,指定–alluredir选项及测试数据保存的目录即可:

运行测试

py.test test/ --alluredir ./result/

./result/中保存了本次测试的结果数据。另外,还可以执行指定features或者stories执行一部分测试用例,比如执行‘购物车功能’下的‘加入购物车’子功能的测试用例:

py.test test/ --allure_features='购物车功能' --allure_stories='加入购物车'

生成测试报告

接下来我们可以利用上面命令产生的测试数据使用命令行生成Allure测试报告了。命令如下:

allure generate ./result/ -o ./report/ --clean

打开测试报告

通过下面的命令打开测试报告:

allure open -h 127.0.0.1 -p 8083 ./report/

测试报告会使用默认的浏览器打开,下图是github上面的一个图形示例


 资料获取方法

【留言777】

各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/81831.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中小企业在数字化转型上所面对的问题都有哪些?_光点科技

随着科技的飞速发展,数字化转型已经成为企业持续发展的必由之路。尤其是中小企业,数字化转型不仅可以提高效率,降低成本,还可以拓展市场,增强竞争力。然而,数字化转型并非一帆风顺,中小企业在这…

kubeasz在线安装K8S集群单master

1.基础系统配置 确保在干净的系统上开始安装,不能使用曾经装过kubeadm或其他k8s发行版的环境 系统是Ubuntu 或者CentOS 7 2.下载文件 2.1 下载工具脚本ezdown,举例使用kubeasz版本3.5.0 #此版本默认安装的是 K8S v1.26.0 export release3.5.0 wget h…

C语言数组第十课---------------三子棋-------数组经典练手题

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 🎂 作者介绍: 🎂🎂 🎂…

根据数组中各值是否满足指定条件决定是否将其按指定规则计算更新numpy.putmask()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 根据数组中各值是否满足指定条件 决定是否将其按指定规则计算更新 numpy.putmask() 选择题 以下程序的运行结果是? import numpy as np xnp.array([1,2,3,4,5]) print("【显示】x:\n&quo…

SolidUI社区-从开源社区角度思考苹果下架多款ChatGPT应用

文章目录 背景下架背景下架原因趋势SolidUI社区的未来规划结语如果成为贡献者 背景 随着文本生成图像的语言模型兴起,SolidUI想帮人们快速构建可视化工具,可视化内容包括2D,3D,3D场景,从而快速构三维数据演示场景。SolidUI 是一个创新的项目…

使用Openoffice或LibreOffice实现World、Excel、PPTX在线预览

使用Openoffice或LibreOffice实现World、Excel、PPTX在线预览 预览方案使用第三方服务使用前端库转换格式 jodconverterjodconverter概述主要特性OpenOfficeLibreOffice jodconverter的基本使用添加依赖配置创建DocumentConverter实例上传与转换预览启动上传与预览World 与Spri…

arcgis栅格数据之最佳路径分析

1、打开arcmap,加载数据,需要对影像进行监督分类,如下: 这里任选一种监督分类的方法(最大似然法),如下: 这里会先生成一个.ecd文件,然后再利用.ecd文件对影像进行分类。如…

linux (platform driver)平台设备驱动匹配方法

Table of Contents 一、匹配函数platform_match 1.1、设备树匹配方法 1.2、id_table匹配方法 1.3、dev-name和platform_driver->drv->name匹配方法 一、匹配函数platform_match 平台设备驱动分为设备层和驱动层,每当有新的设备或者新的设备驱动注册时都要…

“构建高级自定义MVC框架实现CRUD功能的完整指南“

目录 前言1. 导入罐2. 导入工具类3. 配置框架配置文件以及web.xml4. 创建实体类、DAO、Service和Controller5. 配置框架的配置文件6. 页面前端开发 总结 前言 在现代的Web开发中,MVC(Model-View-Controller)架构模式被广泛应用。它将应用程序…

汽车维修保养记录查询API:实现车辆健康状况一手掌握

在当今的数字化世界中,汽车维修保养记录的查询和管理变得前所未有地简单和便捷。通过API,我们可以轻松地获取车辆的维修和保养记录,从而实现对手中车辆健康状况的实时掌握。 API(应用程序接口)是进行数据交换和通信的标…

常用 JVM 调优工具

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~ JVM 日常调优总结起来就是:首先通过 jps 命令查看当前进程,然后根据 pid 通过 jinfo 命令查看和修改 jvm 参数,通过 jstat 命令查看 cla…

Disruptor-源码解读

前言 Disruptor的高性能,是多种技术结合以及本身架构的结果。本文主要讲源码,涉及到的相关知识点需要读者自行去了解,以下列出: 锁和CAS伪共享和缓存行volatile和内存屏障 原理 添加了中文注释的源码:Disruptor 下…

Databend 开源周报第 105 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 Databend 轻量级…

深入理解负载均衡原理及算法

1. 前言 在互联网早期,网络还不是很发达,上网用户少,流量相对较小,系统架构以单体架构为主。但如今在互联网发达的今天,流量请求动辄百亿、甚至上千亿,单台服务器或者实例已完全不能满足需求,这就有了集群。不论是为了实现高可用还是高性能,都需要用到多台机器来扩展服…

Jupyter Notebook 500 : Internal Server Error

1. 这个问题的根本原因在于: pygments 包 版本过高。 安装pygments 2.6.1 2.jupyter版本如下 如果某个版本有冲突,卸载了重新安装一下就行。 安装命令: pip install pygments 2.6.1 -i https://pypi.tuna.tsinghua.edu.cn/simple 另外…

嘉楠勘智k230开发板上手记录(三)--K230_RVV实战

按照K230_RVV实战.md操作 在k230_sdk目录下运行,Makefile里默认的toolchain路径是在/opt下的,需要拷贝过去 cp -r toolchain /opt/ make rt-smart-apps 进入目录 src/big/rt-smart 运行脚本 source smart-env.sh riscv64 配置环境变量 source smart-e…

git教程(第一次使用)

一、gitee和github区别 二、git使用 下载地址 windows:https://gitforwindows.org/ mac:http://sourceforge.net/projects/git-osx-installer/ 1.git初次运行前的配置 (1)配置用户信息 git config --global user.name "…

【模型预测控制MPC】使用离散、连续、线性或非线性模型对预测控制进行建模(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

AP51656 电流采样降压恒流驱动IC RGB PWM深度调光 LED电源驱动

产品描述 AP51656是一款连续电感电流导通模式的降压恒流源,用于驱动一颗或多颗串联LED 输入电压范围从 5 V 到 60V,输出电流 可达 1.5A 。根据不同的输入电压和 外部器件, 可以驱动高达数十瓦的 LED。 内置功率开关,采用电流采样…

我的Python教程:使用Pyecharts画柱状图

Pyecharts是一个用于生成 Echarts 图表的 Python 库。Echarts 是一个基于 JavaScript 的数据可视化库,提供了丰富的图表类型和交互功能。通过 Pyecharts,你可以使用 Python 代码生成各种类型的 Echarts 图表,例如折线图、柱状图、饼图、散点图…