httprunner结合pytest的自动化框架结构

2. 项目结构

2.1. 初代项目结构

3. 用例结构 - pytest

3.1. 单接口用例结构

# NOTE: Generated By HttpRunner v4.3.5
# FROM: testcases\data\data_20240229_test.json
from httprunner import HttpRunner, Config, Step, RunRequestclass TestCaseData20240229Test(HttpRunner):config = Config("testcase description")teststeps = [Step(RunRequest("请求标题:最近的充值记录").get("https://ng-apptest.transspay.net/api/cfront/airtime/recharge/records/latest").with_headers(**{"accept-encoding": "gzip","content-type": "application/json","if-modified-since": "Wed, 28 Feb 2024 06:30:02 GMT","pp_channel": "googleplay","pp_client_ver": "5.3.0&602280702","pp_device_id": "bee648d4b0a5ab70012345","pp_device_type": "ANDROID","pp_req_sign": "ZDfAAOuQ4o8I8UVzS80MrwGv7ZHRHwPyZL27ZuWCbkM45wxQ41DMokcYx3P7%2BNZxuIlgjDZqPKlOe0u3lCiOeN6CxNqgxN%2FUCyHrFYCjNqHQt7A%2FQsSt6c9rog0j6aF1rZTK7K5kqTESmpvVlbPOkUh4cmjHVxWlotIkO3%2FO2aQ%3D","pp_timestamp": "1709185674115","pp_token": "22761d93-cea3-47cf-a8f9-a8087e540409","user-agent": "PalmPay/5.3.0&602280702 (Android 13)",}).validate().assert_equal("status_code", 200, "assert response status code").assert_equal("body.respCode", "00000000", "assert response body respCode").assert_equal("body.respMsg", "success", "assert response body respMsg")),]if __name__ == "__main__":TestCaseData20240229Test().test_start()

4. 用例转换

4.1. har文件生成

fiddler 或者 Charles 导出生成

4.2. har -> pytest

根据抓包工具的jar包,生成pytest用例

命令:

hrp convert --from-har .\loginV2.har --to-pytest --output-dir .

备注:如果缺失参数:--from-har,会出现转换失败的情况(版本差异调整)

转换效果:

 D:\httprunner\demo\testcases> hrp convert --from-har .\loginV2.har --to-pytest --output-dir .
3:21PM INF Set log to color console
3:21PM INFO Set log level
3:21PM INF ensure python3 venv packages=["httprunner==v4.3.5"] python3="C:\\Users\\Administrator\\.hrp\\venv\\Scripts\\python3.exe"
3:21PM INF python package is ready name=httprunner version=v4.3.5
3:21PM INF set python3 executable path Python3Executable="C:\\Users\\Administrator\\.hrp\\venv\\Scripts\\python3.exe"
3:21PM INF convert testcase fromType=har outputType=pytest path=".\\loginV2.har"
3:21PM INF load file path=".\\loginV2.har"
3:21PM INF convert teststep method=POST url=https://ng-apptest.transspay.net/api/c-bff-product/start/loginV2
3:21PM INF dump data to json path="D:\\httprunner\\demo\\testcases\\loginV2_test.json"
3:21PM INF exec command cmd="C:\\Windows\\system32\\cmd.exe"
2024-02-25 15:21:24.591 | INFO | make path: D:\httprunner\demo\testcases\loginV2_test.json
2024-02-25 15:21:24.607 | INFO | ensure compatibility with testcase format v2/v3
2024-02-25 15:21:24.607 | INFO | Loading environment variables from D:\httprunner\demo\.env
2024-02-25 15:21:24.607 | INFO | start to make testcase: D:\httprunner\demo\testcases\loginV2_test.json
2024-02-25 15:21:24.607 | INFO | generated testcase: D:\httprunner\demo\testcases\loginV2_test_test.py
2024-02-25 15:21:24.607 | INFO | format pytest cases with black ...
reformatted D:\httprunner\demo\testcases\loginV2_test_test.pyAll done! ✨ 🍰 ✨
1 file reformatted.
3:21PM INF conversion completed outputFile=loginV2_test.py

5. 用例执行

5.1.3. pytest 直接执行

pytest .\testcases\requests_test.py --html=reports/result.html

生成报告:

6. allure报告集成

6.1. 生成allure数据

pytest .\testcases\requests_test.py --alluredir allure_result

6.2. 生成allure报告

 allure generate .\allure_result\ -o .\allure_report\

6.3. 查看报告

allure open allure-report
allure serve allure-result

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

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

相关文章

吴恩达deeplearning.ai:机器学习的开发过程与优化方法

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏 我想在接下来分析下开发机器学习系统的过程,这样当你自己动手时,能够做出更加正确的判断。 机器学习开发的迭代 Iterative loop of ML development 决定模型架构 第…

[数据集][目标检测]光伏板太阳能版缺陷检测数据集VOC+YOLO格式2400张3类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2400 标注数量(xml文件个数):2400 标注数量(txt文件个数):2400 标注…

深入揭秘Lucene:全面解析其原理与应用场景(一)

本系列文章简介: 本系列文章将深入揭秘Lucene,全面解析其原理与应用场景。我们将从Lucene的基本概念和核心组件开始,逐步介绍Lucene的索引原理、搜索算法以及性能优化策略。通过阅读本文,读者将会对Lucene的工作原理有更深入的了解…

损失函数代价函数风险函数目标函数

损失函数(Loss Function)和代价函数(Cost Function)是同一个东西;例如:有一组样本数据,用f1(x),f2(x),f3(x)三个函数(模型)分别来拟合,三个函数的输出F(x)与真实值可能相同也可能不同,为了表示拟…

Docker部署SimpleMindMap结合内网穿透实现公网访问本地思维导图

文章目录 1. Docker一键部署思维导图2. 本地访问测试3. Linux安装Cpolar4. 配置公网地址5. 远程访问思维导图6. 固定Cpolar公网地址7. 固定地址访问 SimpleMindMap 是一个可私有部署的web思维导图工具。它提供了丰富的功能和特性,包含插件化架构、多种结构类型&…

Linux系统架构----nginx的服务基础

一.Nginx的概述 Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx稳定性高,而且系统资源消耗少Nginx相对于Apache主要处理静态请求,而apache主要处理动态请求Nginx是一款轻量级的Web 服务器/反向代理服务…

uniapp使用华为云OBS进行上传

前言:无论是使用华为云还是阿里云,使用其产品的时候必须阅读文档 1、以华为云为例,刚接触此功能肯定是无从下手的情况,那么我们需要思考,我们使用该产品所用到的文档是什么 2、我们要使用obs 文件上传,肯…

JavaWeb基础入门——(二)MySQL数据库基础(5-存储过程)

八、存储过程 8.1 存储过程介绍 8.1.1 SQL指令执行过程 从SQL执行执行的流程中我们分析存在的问题: 如果我们需要重复多次执行相同的SQL,SQL指令都需要通过连接传递到MySQL,并且需要经过编译和执行的步骤; 如果我们需要连续执行…

redis学习笔记(二)

一:redis数据的持久化 1.1:RDB方式 1.2:AOF方式 1.3:两种方式对比 二:redis主从架构 2.1:搭建主从架构 1:三台机器上安装三个redis,其中一个作为主节点,剩下两个作为从…

Kosmos-2: 在多模态大语言模型中引入基准和指代能力

Kosmos-2: 在多模态大语言模型中引入基准和指代能力 FesianXu 20240304 at Baidu Search Team 前言 之前笔者在博文中介绍过kosmos-1模型 [1],该模型脱胎于MetaLM采用『因果语言模型作为通用任务接口』的思想,采用了多种形式的多模态数据进行训练得到。…

FPGA FIFO 读取模式

FPGA FIFO 读取模式分两种: Normal Mode: In normal mode, the “rdreq” signal serves as the read request or read enable. When this signal goes high, the data output provides the first data from the FIFO.Essentially, in normal mode, data is availa…

C++异常处理机制【自定义异常体系 || 异常规范 || 异常安全】

目录 一,传统C语言处理异常 二,C异常概念 三,使用 1. 自定义异常体系 2. 在函数调用链中异常栈展开匹配原则 3. 异常的重新抛出 四,异常规范 五,异常安全 六,C标准库的异常体系 七,异…

人工智能|机器学习——Canopy聚类算法(基于密度)

1.简介 Canopy聚类算法是一个将对象分组到类的简单、快速、精确地方法。每个对象用多维特征空间里的一个点来表示。这个算法使用一个快速近似距离度量和两个距离阈值T1 > T2 处理。 Canopy聚类很少单独使用, 一般是作为k-means前不知道要指定k为何值的时候&#…

算法学习06:数组模拟:单/双链表,栈和队列,单调栈/队列

算法学习06:数组模拟:单/双链表,栈和队列,单调栈/队列 文章目录 算法学习06:数组模拟:单/双链表,栈和队列,单调栈/队列前言一、链表1.单链表2.双链表 二、栈和队列1.普通栈、队列2.单…

docker安装ES、LogStash、Kibana

文章目录 一、安装Elasticsearch1. 安装Elasticsearch2. 安装IK分词器3. elasticsearch-head 监控的插件4. 配置跨域 二、安装LogStash三、安装kibana四、SpringBoot集成LogStash,将日志输出到ES中五、 启动项目,监控项目运行 提示:以下是本篇…

docker创建mysql,以及mysql无法连接问题

1、docker开放3306端口 Docker开放3306端口实现步骤 本文将介绍如何使用Docker开放3306端口,以便其他容器或外部应用程序可以通过该端口访问MySQL数据库。以下是实现步骤的简要说明: 步骤 描述 第一步 创建一个MySQL容器 第二步 打开3306端口…

Part-DB 安装及使用

Part-DB 安装及使用: http://coffeelatte.vip.cpolar.top/post/software/applications/part-db/part-db_安装及使用/ Part-DB 是比较实用的元器件进销存 Web 系统,支持使用电脑摄像头扫码(条码和二维码)。 1. 安装 大部分按照 官方安装指导…

C++:模版进阶 | Priority_queue的模拟实现

创作不易,感谢三连支持 一、非类型模版参数 模板参数分类为类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参,就是用一个常量作为类(函数)模板的一个参数&…

JavaScript高级Ⅱ(全面版)

接上文 JavaScript高级Ⅰ JavaScript高级Ⅰ(自认为很全面版)-CSDN博客 目录 第2章 DOM编程 2.1 DOM编程概述 2.1.4 案例演示(商品全选) 2.1.5 dom操作内容 代码演示: 运行效果: 2.1.6 dom操作属性 代码演示: 运行效果: 2…

CEF JS与c++能够交互的原理 以及 JS 调用C++的流程分析

相关章节:CEF 之 Render进程 与 Browser进程通信 目录 一、JS与c++能够交互的原理 二、JS调用C++ 流程梳理