当前位置: 首页 > 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最新版)

相关文章:

  • Linux学习笔记6-串口应用
  • opencv-图像平滑
  • 【leetcode每日一题】565数组嵌套
  • 蓝桥杯-01简介
  • 互联网上门洗鞋店小程序
  • TOD和PPS精确时间同步技术
  • 在 Linux 中重命名文件和目录
  • css之选择第一个或最后一个元素、第n个标签、选择偶数或奇数标签、选择最后n个标签、等差数列标签的选择、first、last、nth、child
  • 【密码学引论】Hash密码
  • 简易版扫雷+代码分析
  • LuatOS-SOC接口文档(air780E)--pwm - PWM模块
  • Elasticsearch 聚合查询(Aggregation)详解
  • k8s中pod的hostport端口突然无法访问故障处理
  • ArcGIS中如何建立土地利用规划数据库
  • 【算法心得】When data range not large, try Bucket sort
  • 【RocksDB】TransactionDB源码分析
  • Asm.js的简单介绍
  • ComponentOne 2017 V2版本正式发布
  • CSS实用技巧干货
  • es6(二):字符串的扩展
  • gops —— Go 程序诊断分析工具
  • linux学习笔记
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • pdf文件如何在线转换为jpg图片
  • php的插入排序,通过双层for循环
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Python学习之路13-记分
  • SSH 免密登录
  • Terraform入门 - 1. 安装Terraform
  • 程序员该如何有效的找工作?
  • 分布式任务队列Celery
  • 如何学习JavaEE,项目又该如何做?
  • 通过git安装npm私有模块
  • 温故知新之javascript面向对象
  • 学习HTTP相关知识笔记
  • 数据库巡检项
  • ​configparser --- 配置文件解析器​
  • ​Python 3 新特性:类型注解
  • #传输# #传输数据判断#
  • (2)MFC+openGL单文档框架glFrame
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (利用IDEA+Maven)定制属于自己的jar包
  • (算法)Game
  • (一)基于IDEA的JAVA基础12
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .gitignore文件_Git:.gitignore
  • .NET/C# 的字符串暂存池
  • .NET导入Excel数据
  • .NET和.COM和.CN域名区别
  • .Net环境下的缓存技术介绍
  • .NET序列化 serializable,反序列化
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • ?.的用法
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...