1.httprunner介绍
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份YAML/JSON脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
中文用户手册:
开发设计文档:
- 核心特性
- 继承 Requests 的全部特性,轻松实现 HTTP(S) 的各种测试需求
- 测试用例与代码分离,采用YAML/JSON的形式描述测试场景,保障测试用例具备可维护性
- 测试用例支持分层机制,充分实现测试用例的复用
- 测试用例支持参数化和数据驱动机制
- 使用 skip 机制实现对测试用例的分组执行控制
- 支持热加载机制,在文本测试用例中轻松实现复杂的动态计算逻辑
- 基于 HAR 实现接口录制和用例生成功能(har2case)
- 结合 Locust 框架,无需额外的工作即可实现分布式性能测试
- 执行方式采用 CLI 调用,可与 Jenkins 等持续集成工具完美结合
- 测试结果统计报告简洁清晰,附带详尽统计信息和日志记录
- 具有可扩展性,便于扩展实现 Web 平台化(HttpRunnerManager)
- 环境配置
HttpRunner 是一个基于 Python 开发的测试框架,可以运行在 macOS、Linux、Windows 系统平台上。
Python 版本:HttpRunner 支持 Python 3.4 及以上的所有版本,并使用 Travis-CI 进行了持续集成测试,测试覆盖的版本包括 2.7/3.4/3.5/3.6/3.7。虽然 HttpRunner 暂时保留了对 Python 2.7 的兼容支持,但强烈建议使用 Python 3.4 及以上版本。
HttpRunner 的稳定版本托管在 PyPI 上,可以使用 pip 进行安装。
控制台上使用
pip install httprunner
建议使用PyCharm进行安装:
File--->Settings--->Project Interpreter--->+ 搜索httprunner选择安装。
坑:安装httprunner固定版本2.3.2
安装成功后,找到hrun.exe所在的目录,添加到环境变量path中
cmd验证
hrun -V
- pycharm中设置json文件打开方式
- HttpRuuner json用例基本格式
注意 httprunner中所有的键 都是固定
config 接口配置
base_url 主机路径
name 所属模块名称
variables 环境变量(参数化)....根据需要的话,添加这个variables
teststeps测试步骤(指的是每一条接口测试用例)
{}表示一条测试用例
每一条测试用例包含:
name:接口名称
request:表示一个接口请求对象
method:请求方式
url:请求路径
params:get方式的请求参数
data:post方式的请求参数
json:表示上传json格式数据
headers:请求头
validate:预期结果,预期结果可以有多个 ---列表
{}表示一条预期结果
eq=equals 预期结果和实际结果是否一致
contains 实际结果是否包含预期结果
content用于表示返回的实体内容 ----> 类似于postman里面用json表示返回实体内容对象
- 发送get请求
- 不带参数
-
- 带参数
- 发送post请求
- 配置json创建模板
- 上传json格式报文
- 参数化
- base_url基准路径
-
- variables
作用于整个测试用例(json/yml文件),可用于里面的每个请求中
-
- debugtalk.py调用python函数
HttpRunner 的实现方式为,支持热加载的插件机制(debugtalk.py),可以在 YAML/JSON 中调用 Python 函数
我们可以在测试用例文件的同级或其父级目录中创建一个 debugtalk.py 文件,然后在其中定义相关的函数和变量
在 YAML/JSON 测试用例文件中,引用变量的方式是采用$ + 变量名称的方式;调用函数的方式为${函数名()}
- 文件上传
debugtalk.py中编写函数提供上传文件对象
json测试用例编写
https://www.cnblogs.com/falling-maple/p/6230248.html
- 接口依赖+添加请求头
在 HttpRunner 中,支持接口之间的依赖,提取参数值使用extract关键字和引用提取的数据使用$var,extract 的列表中可指定一个或多个需要提取的参数
在提取参数时,当 HTTP 的响应结果为 JSON 格式,则可以采用.运算符的方式,逐级往下获取到参数值;响应结果的整体内容引用方式为 content 或者 body
第一个接口:
第二个接口:
- html测试报告解析
- 分包及其他整体操作
项目结构如下:
-
- 使用指令生成项目基本结构
在python工作目录下创建一个项目模板
进入到Python工作目录-->输入以下命令:
hrun --startproject 项目名称
-
- 将项目导入到pycharm,示例文件生成
-
- 导入自己的json/yml用例文件
放置到testcases目录中,可以单个执行用例,也可以执行套件
-
- 单个执行演示
使用pycharm中teminal执行即可
-
- testsuite执行
在testsuites目录下,创建test_suite.json
执行
-
- 查看报告
-
- csv参数化
1.data文件夹下面发csv数据,第一行为变量名称
2.测试套件testsuites里面 关联需要测试的测试用例文件 并读取csv数据
3.测试用例里面引用,就可以实现写一个接口用例 执行多次