转为yaml python_python 如何使用HttpRunner做接口自动化测试

a0ccca010039711da152fc52ff50db22.png

作者:星安果

来源:AirPython

1. 前言

原始测试金子塔包含 3 层,分别是:UI 自动化测试、接口服务测试、单元测试

5ff398b0812a3d19cd9b49cad38d5bef.png

其中,

单元测试是对软件的最小可测试单元进行检查和验证,也是产生效率最大的一项测试

接口服务测试分为模块接口测试和协议接口测试

UI 测试主要是为了取代人力操作,通过 UI 自动化去模拟操作,降低回归测试的成本

考虑到投入产出率,大部分企业都会将测试重点放在接口自动化测试这一项上

接口自动化主流方案包含:python + Pytest/Unittest、Java + TestNG、Postman、HttpRunner、Postman、Jmeter、RobotFramework 等

本篇文章将和大家一起聊聊 HttpRunner 做接口自动化的流程

2.介绍及安装

HttpRunner 是一款完全由 Python 语言编写的测试框架,并且简单、优雅、功能强大,同时支持 HTTP 和 HTTPS

HttpRunner 主要包含下列特征:

  • 继承 Requests 库的全部特性,轻松实现 HTTP(S) 的各种测试需求
  • 以 YAML 和 JSON 定义测试用例,通过 pytest 去运行
  • 基于 HAR 文件,实现接口的录制及用例的生成功能
  • 支持 variables、extract、validate、hook 等关键字,可以创建复杂的测试场景
  • 借助辅助插件 debugtalk.py,在测试脚本中轻松实现复杂的动态计算逻辑
  • 集成 jmespath,方便提取变量、验证 JSON 响应
  • 集成 pytest,支持大量的插件
  • 集成 allure 生成强大的测试报告
  • 集成 locust,非常方便做性能测试
  • 执行方式采用 CLI 调用形式,可以和 Jenkins 等持续集成工具完美结合

使用 pip 安装 HttpRunner 稳定版本

# 安装 HttpRunner 稳定版本
pip3 install httprunner

需要指出的是,HttpRunner V3 版本对比 V2 版本进行了大量优化,特别是测试用例的表现形式,强烈建议安装 V3 版本

3.常见命令

安装完 HttpRunner 之后,就可以使用下面几个命令了

1、hrun

HttpRunner 最主要的命令,主要作用是运行 Py/YAML/JSON 格式的测试用例

2、hmake

将 YAML/JSON 格式的测试用例转换为 Python 文件

ps:HttpRunner V3 以 Python 文件保存测试用例,V2 之前是以 JSON/YAML 格式保存测试用例

3、har2case

har2case 作用是将 HAR 格式的请求文件转为 YAML/JSON/Py 格式的测试用例

ps:一般网络请求都可以直接以 AHR 格式保存到本地

4、locusts

HttpRunner 集成了 locusts 命令,可以利用它直接进行性能测试

5、其他命令

另外,通过 httprunner -h 命令可以查看帮助;使用 httprunner -V 命令可以查看 HttpRunner 的版本信息

4.小试牛刀

先通过一个简单的接口聊聊 HttpRunner 的使用步骤

目标接口 - GET:

https://postman-echo.com/get?foo1=bar1

第一步:抓包,保存为 HAR 文件

打开 Charles 或 Fiddler,配置 Chrome 浏览器的代理, 使 Charles 可以对浏览器进行抓包

使用 Chrome 访问这个接口地址,模拟一次请求,然后在 Charles 中找到对应的请求,右键保存为 HAR 文件

01acbfa56939fb74f23d7e4e7c0d84fe.png

第二步:转为测试用例

使用 har2case 命令将 HAR 文件转换为测试用例,V3 版本默认生成测试用例格式为 Py 文件

c964b60da8b8379c073b88f155d189b0.png

查看测试用例后发现,HttpRunner 自动生成的测试用例结构十分清晰,二次修改也非常方便

cece0700569bea9ea76ce5e94eaa7e7b.png

第三步,运行测试用例

使用 hrun 命令运行测试用例,另外,加上 --html 参数,可以在本地生成测试报告

# 生成测试报告
hrun demo_test.py --html=report.html

打开测试报告,可以查看测试用例的执行结果及日志

3f80459874ac85ea4c64fc27ba77e8f5.png

5.脚手架

HttpRunner 同样提供了脚手架,方便我们快速创建标准化项目

# 使用脚手架创建一个项目
httprunner startproject demo

生成项目的目录结果如下:

ec9036ec93b29f67766d97d482f69042.png

其中,

1、debugtalk.py

一般用于自定义 Python 函数,方便测试用例调用

比如:某个请求参数需要通过一段加密逻辑生成,这时可以自定义一个函数写在 debugtalk.py 文件中

2、har

从抓包工具、Postman、浏览器保存的网络请求

3、reports

生成测试报告的目录

需要指出的是,除了使用自带的 pytest-html 插件生成测试报告,HttpRunner 还可以通过 allure 生成功能更加强大的测试报告

4、testcases

用于放置测试用例

使用 hrun 命令可以直接运行脚手架项目

# 运行脚手架项目
# hrun 项目名称
hrun demo

6.最后

受限于篇幅,上面仅仅介绍了 HttpRunner 最基本的使用方法

0a10aea6ed45801501493a788aba81ec.png

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

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

相关文章

浏览器显示域名解析错误怎么办

方法一: 1、右键点击桌面的网络选项,找到属性栏,点击进入网络属性界面。点击左边菜单栏里面的更改适配器配置选项; 2、然后在网络列表中找到当前连接的网络,点击右键选择属性选项,进入网络设置界面 3、进入无线网络…

eq值 推荐算法_利用 SVD 实现协同过滤推荐算法

奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。优点:简化数据,去除噪声&#x…

USB外接摄像头不能用怎么办

1.如果USB摄像头不能用,首先需要检查摄像头USB数据线是否与主机连接,以及连接状态是否良好 2.检查线路连接正常后,进入设备管理器中查看是否检测得到USB视频设备 3.如果像上图显示的一样,而且驱动也已成功安装,所有都…

电脑自动关机后又自动开机怎么办

用户在将电脑关机后,过一会儿,发现电脑又自动开机了怎么办?下面分享电脑关机后又自动开机的原因及解决措施。 电脑自动关机后又自动开机怎么办 原因一、可能是系统设置不正确 所有Windows操作系统默认情况下,当系统出现错误时会自动重新启…

打开数据库_打开这份指南,数据库运维也能优雅、简单!

对于常规数据库的运维监控来说,如何能够快速简洁的发现问题,直达问题本质并解决常见问题,是 Bethune 的安身立命之本。简约,优雅,专业,直抵本心,这是用户对 Bethune 的评价。Bethune X 功能强大…

电脑开机显示checking media解决方法

1、进入pe界面,打开diskgenius分区工具,将硬盘重新分区,分成mbr格式 2、然后进bios,切换到security选项,选择seurce boot回车进入下一子菜单 3、然后选择seurce boot,设置为disabled 4、接着切换到start…

mysql集群_MySQL集群

MySQL集群搭建之主从复制: 主从复制原理: 从库生成两个线程,一个I/O线程,一个SQL线程; i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中; 主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog; SQL 线程,会读取relay log文件中…

无线网络受限制或无连接处理方法

无线网络受限制或无连接要如何解决呢?下面分享无线网络受限制或无连接的处理方法。 无线网络受限制或无连接处理方法 一、使用系统中的诊断工具诊断网络 系统自带的无线网络诊断功能可以定位网络问题并给予部分的修复,可以启用系统内置的诊断工具,只…

centos mysql_CentOS MySQL数据库备份工具mysqldump介绍

mysqldump工具是mysql自带的一个非常方便的一款小工具,存在mysql安装目录的/usr/local/mysql/bin (CentOS)是下。mysqldump 和 mysql一样,都是应用程序,你在mysql下是执行不了的。切记 ,输入 mysqldump –help 可查年相关信息。my…

电脑提示找不到宽带连接怎么办

电脑在重装完系统后,进行宽带连接的时候,电脑却出现电脑找不到宽带连接的提示,导致宽带无法正常连接怎么办?下面分享今电脑提示找不到宽带连接的解决方法。 电脑提示找不到宽带连接怎么办 原因分析: 1、可能是拨号宽带连接没有…

mysql首次_mysql首次登陆任务

WINDOWS下没有mysql服务//卸载mysql服务mysqld --remove mysql//手动安装mysql服务mysqld -install//启动mysqlnet start mysql//停止mysqlnet stop mysql首次登陆mysql -u root -p//没有密码修改密码use mysqlupdate user set authentication_stringpassword("123456&quo…

mysql 数据库操作类_【数据库操作类】10个php操作数据库类下载

数据库(Database)操作是在开发过程中重要的组成部分,熟练掌握数据库的操作是开发人员必备的武器。PHP中文网为大家提供了各种封装好的php数据库操作类库,供大家下载和学习。相关mysql视频教程推荐:《mysql教程》php各种数据库操作类库下载PDO…

mysql 改成宽松模式_mysql5.6 sql_mode设置为宽松模式

最近遇到一个很奇怪的事情由于数据人员的需求,现在需要修改mysql的sql_modesql_mode默认是sql_modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES这时候我在/etc/my.cnf配置如下sql_modeNO_ENGINE_SUBSTITUTION重启后还是mysql> SELECT GLOBAL.sql_mode;---------…

2021-03-03

对于win7怎么还原系统的这个问题,其实很好操作,来看视频是怎么做的吧。 1 第一步 按winr组合键,打开运行,输入sysprep,回车 2 第二步 进入页面,双击sysprep.exe 3 第三步 弹出窗口,勾选通用&…

少儿故事:小乌鸦智斗老鹰

少儿故事:小乌鸦智斗老鹰 一天,老鹰跑到小乌鸦家门口,大声问:“小乌鸦,请你回答我,你是否忠于虎大王?” 小乌鸦拍拍胸脯,点点头,说:“当然!” …

苹果笔记本的系统

随着电脑使用时间越来越久,电脑中的垃圾就越来越多,在必要的时候我们需要重装系统,有的用户会拿去电脑店,这样可能会影响到用户的效率,那苹果笔记本怎么重装系统?接下来就分享一下苹果笔记本重装系统教程。 使用云骑…

mysql 太多字段 排除某一列_Atitit 数据库排除某一列 字段 显示

Atitit 数据库排除某一列 字段 显示GROUP_CONCAT 行列转换sELECT GROUP_CONCAT(COLUMN_NAME)FROMINFORMATION_SCHEMA.COLUMNSWHERETABLE_NAME yunprint_print_goodssELECT GROUP_CONCAT(COLUMN_NAME)FROMINFORMATION_SCHEMA.COLUMNSWHERETABLE_NAME yunprint_print_goodsa…

u盘修复系统

虽然Windows10附带了许多系统修复程序,例如备份,恢复和重置,但我们仍然可以为系统安全性添加另一层保险,可以用u盘修复系统,具体来看以下步骤 以win10 64位系统为例,u盘无法直接修复系统,但可以…

mysql 磁盘限额_Linux运维知识之为Linux MySQL数据库设置磁盘限额

本文主要向大家介绍了Linux运维知识之为Linux MySQL数据库设置磁盘限额,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。因为MySQL数据库本身没有磁盘限额的功能,我们可以限制Linux自带的quota工具为mysql进行磁盘限额。1、…

程序员需要知道的职场真相

关于面试谈薪: 1. 你值多少钱,不是由老板决定的,也不是由你自己的能力决定,而是由市场决定的。这个技术就你一个会,你说多少钱就多少钱。这个技术 100W人会,不好意思,肯定是公司在一定的时间内&…