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

【python自动化二】pytest集成allure生成测试报告

pytest本身不会直接生成测试报告,而allure是一种生成测试报告的公共插件,可与多种测试框架配合生成测试报告,本文介绍下如何集成allure生成测试报告。

1.allure安装

1.安装allure-pytest

先安装allure的pytest插件,用于在pytest测试框架下生成测试报告的基础数据,注意:这里是生成基础数据,不是直接生成测试报告,生成测试报告的工具在下一步安装

 pip install allure-pytest

在这里插入图片描述

2.安装allure

这里的allure用于生成测试报告,注意allure本身依赖jdk

1.jdk环境确认

确认本地安装过jdk即可(jdk8及以上),若未安装,可参考链接: jdk安装

2.allure安装

allure官网地址:https://allurereport.org/
allure下载地址:https://github.com/allure-framework/allure2/releases/tag/2.32.0
这里我直接下载了个zip包
在这里插入图片描述
1.将zip包解压到本地
在这里插入图片描述
2.配置环境变量,将allure包对应的bin目录配置到环境变量Path中
在这里插入图片描述
在这里插入图片描述
3.检查allure是否安装成功
在cmd命令行中输入allure回车,有相应的提示即可
在这里插入图片描述

2.生成报告

1.生成报告数据

我们在执行pytest时加生成allure测试报告数据的参数即可

pytest --alluredir=./report/tmp  # --alluredir=后为指定测试报告数据的生成路径

当然我们也可以直接配置在pytest.ini文件里,这样就不用每次执行的时候输入allure相关的参数
在这里插入图片描述
后面的–clean-alluredir是每次执行清除上次的数据

addopts =  --alluredir=./report/tmp --clean-alluredir  # ./report/tmp这个路径如果没有会自动生成

其中,生成的测试报告数据都以json格式存储,日志以txt存储,附件以attach存储;这里直接在命令行中执行pytest就可以生成数据了。
在这里插入图片描述
我这个工程还未配置日志,也没有生成附件,所以目前只有json文件,这个我们后面再加

2.生成报告

生成报告的命令为:

 allure generate report\tmp -c -o report\allure-report

在这里插入图片描述
其中:
report\tmp:为测试报告数据的路径,生成测试报告时会从这个路径中取值
-o report\allure-report:指定allure报告生成的位置
-c report\allure-report:新allure报告生成前先将之前的报告清除

3.打开报告

此时我们直接打开index.html,可以发现页面展示为空
在这里插入图片描述
在这里插入图片描述
可以看出来,这里不同于jacoco等工具,数据未直接嵌在报告里,而是通过起服务的方式实时获取的
打开报告命令

allure open report\allure-report

输入后回车即打开报告页面(此时页面比较简单)
在这里插入图片描述
这里可以看到服务是开着的
在这里插入图片描述
ctrl+c即可退出

当然我们也可以用这个命令启动服务

allure serve report\allure-report -p 8081

其中,可以加入如下参数
-h(–host):指定域名地址
-p(–port):指定端口号
在这里插入图片描述
实际测试下来,allure open和allure serve并没有多大区别,都能启动服务,都能自动打开报告页面,都能在别的机器上访问 。
到这里,就是利用allure生成测试报告的全部过程了。后续我们再丰富优化下测试报告的内容…

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

相关文章:

  • 网络版本的通讯录青春版(protobuf)
  • 开源模型应用落地-安全合规篇-用户输入价值观判断(三)
  • 神经网络入门实战:(十四)pytorch 官网内置的 CIFAR10 数据集,及其网络模型
  • 【Rust在WASM中实现pdf文件的生成】
  • 在MySQL中执行sum case when报错:SUM does not exist
  • 【openssl】相关指令
  • 实例分割详解
  • D87【python 接口自动化学习】- pytest基础用法
  • 浅谈MySQL路由
  • matlab中disp,fprintf,sprintf,display,dlmwrite输出函数之间的区别
  • 30.100ASK_T113-PRO 用QT编写视频播放器(一)
  • Linux-GPIO应用编程
  • opencvocr识别手机摄像头拍摄的指定区域文字,文字符合规则就语音报警
  • 微服务即时通讯系统(5)用户管理子服务,网关子服务
  • postgreSQL安装后启动有The application server could not be contacted问题
  • 架构05-架构安全性
  • 虚幻引擎---材质篇
  • NPM镜像详解
  • 从智能合约到去中心化AI:Web3的技术蓝图
  • STM32进阶 定时器3 通用定时器 案例1:LED呼吸灯——PWM脉冲
  • 开源即时通讯与闭源即时通讯该怎么选择,其优势是什么?
  • 930[water]
  • 2024论文翻译 | Multi-Review Fusion-in-Context
  • (78)MPSK基带调制通信系统瑞利平坦衰落信道传输性能的MATLAB仿真
  • 【机器学习】机器学习的基本分类-监督学习-决策树-CART(Classification and Regression Tree)
  • 【金猿CIO展】复旦大学附属中山医院计算机网络中心副主任张俊钦:推进数据安全风险评估,防范化解数据安全风险,筑牢医疗数据安全防线...
  • 工业机器视觉-基于深度学习的水表表盘读数识别
  • 基于ZooKeeper搭建Hadoop高可用集群
  • 力扣88题:合并两个有序数组
  • python 笔记之线程同步和死锁