A01_HttpRunner 介绍
本系列专题分享,我们以 “自动化接口测试” 为目的,介绍如何通过 HttpRunner 框架进行自动化接口测试。
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML 或 JSON 脚本,即可实现自动化测试、性能测试、持续集成等多种测试需求。
HttpRunner 是由大疆(是的,无人机的大疆)测试部门开发的开源测试框架,可以方便的支持接口测试。
HttpRunner 是由 Python 语言开发,代码托管于 GitHub 上。
附上官方手册和源码托管地址:
中文手册:https://docs.httprunner.org/
仓库地址:https://github.com/HttpRunner/HttpRunner
前后端分离的开发模式,催生了接口测试的热潮。关于接口测试的定义也是众说纷纭,在我的理解中,接口测试可以类比为“针对后端接口的黑盒测试”。整个测试过程简单来说:
1. 向后端接口或页面发起请求,同时构造各种类型的请求及参数(如有效、无效、最大、最小等)。
2. 接收后端发送回的响应内容,断言其内容是否符合预期。
那么在这个过程中,接口或者被请求页面内部是如何处理的?我们的测试是否覆盖了接口内的所有代码逻辑?这些一般都是看不到的,接口内部的实现细节,对我们而言是一个“黑盒”。
HttpRunner 的主要功能和特性,参考官方说明如下:
- 继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求
- 测试用例与代码分离,采用YAML/JSON形式描述测试场景,保障用例的可维护性
- 测试用例支持分层机制,充分实现测试用例的复用
- 测试用例支持参数化和数据驱动机制
- 使用 skip 机制实现对测试用例的分组执行控制
- 支持热加载机制,在文本测试用例中轻松实现复杂的动态计算逻辑
- 基于 HAR 实现接口录制和用例生成功能(har2case)
- 结合 Locust 框架,无需额外的工作即可实现分布式性能测试
- 执行方式采用 CLI 调用,可与 Jenkins 等持续集成工具完美结合
- 测试结果统计报告简洁清晰,附带详尽统计信息和日志记录
- 具有可扩展性,便于扩展实现 Web 平台化(HttpRunnerManager)
HttpRunner 实现接口测试过程简单分为以下三步: 编写测试用例 -> 命令行执行测试用例 -> 自动生成测试报告
先直观的感受一下这个过程吧。
1. 以 YAML 格式编写一个测试用例文件
jxc_login.yml:
- config:
name: 这是一个测试用例文件
variables:
p_username: admin
p_pwd: admin
- test:
name: 这是测试用例中的一个步骤 - 登录
request:
url: http://localhost/myweb/jxc/index.asp?action=login
method: POST
allow_redirects: False
data:
username: $p_username
pwd: $p_pwd
extract:
- get_cookies: cookies
validate:
- eq: [status_code, 302]
2. 通过命令行执行测试用例
在测试用例文件所在目录中,执行命令: hrun jxc_login.yml
3. 查看自动生成的测试报告
整个过程简洁、清晰、明了。