当前位置: 首页 > news >正文

使用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.lryc.cn/news/122237.html

相关文章:

  • opencv基础49-图像轮廓02-矩特征cv2.moments()->(形状分析、物体检测、图像识别、匹配)
  • 什么是CSS Grid布局?什么是Flexbox布局?它们两者有什么不同?
  • Centos中pip install mysqlclient失败
  • arcgis更改图层字段名脚本
  • Android 13 MTK平台添加自定义按键,以及CTS问题解决
  • 深入了解 Postman Test 校验的使用方法
  • 岛屿的最大面积(力扣)递归 JAVA
  • MySQL入门学习教程(一)
  • 【CTF-web】修改请求头(XFF)
  • springboot mongodb 配置多数据源
  • Python3 安装、环境变量配置、PyCharm新建Python项目
  • 用python来爬取某鱼的商品信息(2/2)
  • 【Fegin技术专题】「原生态」打开Fegin之RPC技术的开端,你会使用原生态的Fegin吗?(上)
  • React Native Vector Icons的使用
  • Redis安装和配置(Linux)
  • 安卓源码分析(10)Lifecycle实现组件生命周期管理
  • IP 多播协议(IP Multicast Protocol)
  • Jmeter 配置环境变量,简明教程专享
  • WebService—XFire配置笔记
  • 【LangChain学习】基于PDF文档构建问答知识库(一)前期准备
  • Word(1):文章页码设置
  • Linux MQTT智能家居(温度,湿度,环境监测,摄像头等界面布局设置)
  • 权衡与选择:如何巧妙管理项目需求的优先级
  • UGUI组件EventTrigger用法
  • Visual Studio 2019 详细安装教程(图文版)
  • idea添加作者信息
  • 后端开发6.权限控制模块
  • Golang原生实现JA3指纹修改,并支持Proxy代理
  • 一个案例:Vue2组件化开发组件从入门到入土
  • 智慧工地源码 智慧工地云平台源码 智慧工地APP源码