转为yaml python_python 如何使用HttpRunner做接口自动化测试
作者:星安果
来源:AirPython
1. 前言
原始测试金子塔包含 3 层,分别是:UI 自动化测试、接口服务测试、单元测试
其中,
单元测试是对软件的最小可测试单元进行检查和验证,也是产生效率最大的一项测试
接口服务测试分为模块接口测试和协议接口测试
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 文件
第二步:转为测试用例
使用 har2case 命令将 HAR 文件转换为测试用例,V3 版本默认生成测试用例格式为 Py 文件
查看测试用例后发现,HttpRunner 自动生成的测试用例结构十分清晰,二次修改也非常方便
第三步,运行测试用例
使用 hrun 命令运行测试用例,另外,加上 --html 参数,可以在本地生成测试报告
# 生成测试报告
hrun demo_test.py --html=report.html
打开测试报告,可以查看测试用例的执行结果及日志
5.脚手架
HttpRunner 同样提供了脚手架,方便我们快速创建标准化项目
# 使用脚手架创建一个项目
httprunner startproject demo
生成项目的目录结果如下:
其中,
1、debugtalk.py
一般用于自定义 Python 函数,方便测试用例调用
比如:某个请求参数需要通过一段加密逻辑生成,这时可以自定义一个函数写在 debugtalk.py 文件中
2、har
从抓包工具、Postman、浏览器保存的网络请求
3、reports
生成测试报告的目录
需要指出的是,除了使用自带的 pytest-html 插件生成测试报告,HttpRunner 还可以通过 allure 生成功能更加强大的测试报告
4、testcases
用于放置测试用例
使用 hrun 命令可以直接运行脚手架项目
# 运行脚手架项目
# hrun 项目名称
hrun demo
6.最后
受限于篇幅,上面仅仅介绍了 HttpRunner 最基本的使用方法
转为yaml python_python 如何使用HttpRunner做接口自动化测试相关推荐
- python runner功能_Python 如何使用 HttpRunner 做接口自动化测试
点击上方"软测小生",选择"加为星标" 第一时间关注软件测试原创干货! 1. 前言 原始测试金子塔包含 3 层,分别是:UI 自动化测试.接口服务测试.单元测试 ...
- 综合前置接口报文规范_浅谈用HttpRunner进行接口自动化测试
在参与我们测试平台开发的时候,结识了HttpRunne这个优秀的开源接口测试框架,初步研究发现HttpRunner可以非常方便.非常高效地实现接口自动化测试. 01HttpRunner和常用接口测试框 ...
- python做自动化控制postman_使用postman+newman+python做接口自动化测试
postman是一款API调试工具,可用于测试接口,相类似的工具还有jmeter.soupUI.通过postman+newman+python可以批量运行调试接口,达到自动化测试的效果. 1.Post ...
- form表单用js提前执行函数若不成功则不提交_如何用Jmeter做接口自动化测试?跟着操作一次就明白了...
Jmeter是Apache公司组织开发的一款基于Java压力测试工具,开源且支持多个操作系统,可以对测试静态和动态资源进行大并发负载模拟,或对服务器网络进行高强度并发测试,业界多将该工具应用于性能测试 ...
- 录制完脚本怎么做接口自动化测试_快速构建轻量级接口自动化框架
随着移动互联网和微服务的迅速发展,大部分企业都采用接口的方式实现客户端和服务端的交互,传统的PC端也逐渐趋向于前后端分离架构.为了应对此种架构下的业务迭代,很多QA团队开始推广接口自动化,甚至是自研接 ...
- 大厂标配HttpRunner接口自动化测试框架
目录 HttpRunner 简介 框架流程 核心特性 下载安装 入门使用 HttpRunnerManager 简介 核心特性 下载安装 环境配置 HttpRunnerManager 入门使用 创建项目 ...
- 一、为什么要做接口自动化,怎样做
目录 为什么要做接口自动化,怎样做 一.为什么要做接口自动化 二.了解一波接口 2.1 什么是接口 2.2 常用接口 2.3 http登录接口文档范例 2.4 获取接口关键信息 三.什么项目适合做接口 ...
- 学习之浅谈python如何做接口自动化
目录 前言 一.接口 二.API自动化测试(接口测试): 三.requests框架 四.自动化测试框架------->自动化测试核心技能 1. 1 接口测试类型 1.2 如何开展接口测试 1.3 ...
- 什么是接口自动化?为什么要做?和怎么做接口自动化?
目录 1.服务端接口测试介绍 什么是服务端? 2.什么是接口? 3.什么是接口测试? 4.为什么要做接口测试? 5.如何做接口测试? 6.接口测试自动化介绍 什么是接口测试自动化? 7.为什么要做接口 ...
最新文章
- c语言中的tanh函数,tanh()函数,用于C ++中的复数
- mysql源码如何解析where字句_MySQL解析器源码分析--对select语句中子查询处理逻辑的分析(一)...
- VM上安装Linux找不到硬盘
- nexus搭建和迁移
- 【机器学习】层次聚类
- /home/appleyuchi主目录迁移到新磁盘中
- WebDeploymentSetup使用乱码问题解决
- 使用JavaScript调用手机平台上的原生API
- Java连接数据库所遇到的坑,连接数据库,遇到一个很奇怪的问题……
- 为什么unity 安装完模块还是找不到sdk_Unity填坑笔记(四)——移植UWP平台
- 什么是OAuth 2.0
- (46)Xilinx ILA IP核配置(七)(第10天)
- 忘记win7登陆密码的问题解决2种可能以及其问题的延伸
- python识别_识别串口/ usb设备python
- 什么是L2十档行情API接口
- 浅谈SQL基础操作概念
- 安卓开发指南!程序员如何自我学习和成长?终获offer
- 九爷带你了解 mctop: 监视 Memcache 流量
- linux中IGV的运行,科学网—使用UCSC和IGV查看reads在基因组上分布情况 - 熊朝亮的博文...
- 音乐推荐-3张新碟《雪狼》+《馨馨醉》+《光》
热门文章
- linux临时启动进程命令,Linux常用命令(一)服务控制及优化启动过程
- android rn 和webview,RN Webview与Web的通信与调试
- java map class_Java:声明一个包含两个相关泛型类型的Map(Map,Class ?extends ClassB )...
- [转载] java-继承和多态
- kotlin 判断数字_Kotlin程序检查数字是否为质数
- perl 哈希数组的哈希_使用哈希检查两个数组是否相似
- ios上传文件云服务器上,ios文件上传服务器
- 什么是负边沿触发_用好示波器必须学会的知识:触发方式
- 一个事物两个方面的对比举例_顶管施工也有讲究,两个方面一个个来
- Eratosthenes筛