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

(一)pytest自动化测试框架之生成测试报告(mac系统)

前言

我们可以通过pytest-html插件来生成测试报告,但是pytest-html插件生成的测试报告不够美观,逼格也不够高,通过allure生成的测试报告是比较美观的,花里胡哨的,能够提升一个level。

allure官网: Allure Report Docs — Documentation Overview

allure命令行工具安装

按照官方文档上的提示来进行allure命令行工具的安装:

1、首先下载allure-commandline最新的zip文件包:Central Repository: io/qameta/allure/allure-commandline

2、然后将zip包解压到目录中

image

3、进入到bin目录

image

注意:

window下使用allure.bat 或 Linux下使用allure需要将allure添加到环境变量中。

4、命令行下输入: allure --version ,出现以下提示表示allure安装成功

image

按照上面的步骤安装好allure-commandline工具。

注意下载zip包的链接在官网中是http协议的,点击会报错,我们将协议改成http改成https访问链接就可以了。

allure添加到环境变量中

1、进入到当前用户目录下,执行:open .bash_profile,打开一个记事本。

image

2、编辑记事本,在文件最后输入:

PATH="/usr/local/allure-2.9.0/bin:$PATH"
export PATH

image

3、command+s 保存

4、然后命令行中输入:source .bash_profile,使配置立即生效;

5、任意目录下,命令行中输入allure,出现以下提示表示环境变量配置成功;

image

注意:执行allure命令时,需要jdk的支持,因此使用allure的前提是系统中安装了jdk并且配置了环境变量

下载安装allure-pytest插件

命令行下输入命令进行安装:

pip install -U allure-pytest

上面的命令执行后会安装 allure-pytest 和 allure-python-commons 包,这两个包用来生成allure所需要的测试报告数据。

allure实际应用举例

# file_name: test_allure.pyimport pytest
import allure@pytest.fixture(scope="function")
def login():print("执行登录逻辑")yieldprint("执行退出登录逻辑")@allure.feature("加入购物车")
def test_01(login):"""先登录,再进行其他操作:param login::return:"""print("测试用例01正在执行")@allure.feature("加入购物车")
def test_02():"""不需要登录,直接操作:return:"""print("测试用例02正在执行")if __name__ == '__main__':pytest.main(['-s', 'test_allure.py'])

运行用例,进入到test_allure.py所在目录,执行命令:

pytest --alluredir=./report/result    # --alluredir表示指定测试报告数据的生成路径

执行完成上述命令后,会在当前目录下,report目录下生成一个result目录文件;

result下只是一些测试报告的原始数据,还不能作为html报告打开。

image

在线查看测试报告还需要执行下面的命令:

allure serve ./report/result

上面的命令会启动一个allure服务并自动分配端口,然后使用默认浏览器自动打开index.html,查看测试报告:

image

查看测试报告:

image

至此,我们就可以使用pytest结合allure生成更加美观的测试报告了。

Python接口自动化测试零基础入门到精通(2023最新版)

http://www.lryc.cn/news/242154.html

相关文章:

  • 微服务实战系列之Nginx
  • 使用rsync从OpenShift的pod复制文件
  • 解决Activiti5.22流程图部署在Windows上正常,但在linux上部署后出现中文变方块的问题
  • EMG肌肉电信号处理合集(三)
  • GitHub桌面版
  • 【广州华锐互动】昆虫3D虚拟动态展示:探索神奇的微观世界
  • 《QT从基础到进阶·三十六》QWidget实现收缩栏的效果
  • 运行软件报错找不到vcruntime140.dll无法继续执行代码怎么办-6个解决方法
  • 从Discord的做法中学习 — 使用Golang进行请求合并
  • 【教3妹学编程-算法题】统计和小于目标的下标对数目
  • OSG粒子系统与阴影-雾效模拟(1)
  • Windows power shell for循环
  • GIT实践与常用命令---回退
  • Python-Django的“日志功能-日志模块(logging模块)-日志输出”的功能详解
  • C现代方法(第23章)笔记——库对数值和字符数据的支持
  • NSGA-II求解微电网多目标优化调度(MATLAB)
  • 7-9 jmu-python-班级人员信息统计
  • Doris分区与分桶(八)
  • mac VScode 添加PHP debug
  • 53.最大子数组和
  • 455.分发饼干
  • 浏览器缓存控制讲解
  • 批量插入SQL 错误 [933] [42000]: ORA-00933: SQL 命令未正确结束
  • 北京数字孪生赋能工业制造,加速推进制造业数字化转型
  • 【NLP】GPT 模型如何工作
  • Linux下安装Foldseek并从蛋白质的PDB结构中获取 3Di Token 和 3Di Embedding
  • 单元测试-java.lang.NullPointerException
  • 机器学习数据集整理:图像、表格
  • Vue: Cannot find module @/xx/xx/xx.vue or its corresponding type declarations.
  • 怎样自动把网页截图发到微信群里