python 如何使用HttpRunner做接口自动化测试

Posted 测试baby

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:

第一步:抓包,保存为 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 最基本的使用方法

在这里插入图片描述

下面是我在做自动化对于技术一些归纳和总结,希望能帮助到有心在技术这条道路上一路走到黑的朋友!附带教程学习资料~

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你

关注我的微信公众号【伤心的辣条】免费获取~

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

好文推荐:

阿里小黑叹息:越来越多的年轻人从职场撤退了?

Python简单?先来40道基础面试题测试下

App公共测试用例梳理

从一名开发人员转做测试的一些感悟

以上是关于python 如何使用HttpRunner做接口自动化测试的主要内容,如果未能解决你的问题,请参考以下文章

HttpRunner接口自动化测试框架--常见问题

HttpRunner基础使用一:

HttpRunner接口自动化测试框架--常见问题

HttpRunner接口自动化框架的使用

Python_Httprunner接口测试+locust性能测试

基于httpRunner 框架接口测试