Python 如何使用 HttpRunner 做接口自动化测试
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 最基本的使用方法
最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
相关文章
- Python 接口自动化测试框架
- python中验证码连通域分割的方法详解
- 【Python五篇慢慢弹】数据结构看python
- 【Python】python对象与json相互转换
- Python 关于运行时间、调用次数及内存使用的性能测试
- Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Entry/Entry的Command)
- Python语言学习之字符串那些事:python和字符串的使用方法之详细攻略
- 〖Python WEB 自动化测试实战篇③〗- python-selenium环境配置搭建
- 从零开始学python | 使用Python映射,过滤和缩减函数:所有您需要知道的
- 使用Python的requests库进行接口测试——session对象的妙用
- Python+unittest+requests+HTMLTestRunner 完整的接口自动化测试框架搭建
- python自动化测试学习-Python测试框架之unittest和pytest
- Pytest自动化测试教程-更改标准(Python)测试发现
- 【2023最全教程】Python接口测试实战之接口测试工具的使用(建议收藏)
- 4款火热的Python自动化测试框架,谁才是你的唯一?
- Python接口测试实战之Git及Jenkins持续集成
- 转载:大厂5G python自动化测试学习图谱
- TPT中脚本评估的使用(下):基于Python的测试管理和软件交互
- 接口测试——python接口开发(二)
- python接口自动化测试--requests使用和基本方法封装