HttpRunner是什么?
HttpRunner
是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON
脚本, 仅用一份文件就实现了性能测试,持续集成,线上监控,生成测试数据等等。
作者有话说:https://testerhome.com/articles/17598
HttpRunner原理?
- 测试用例 : 测试用例为最小组件, 测试用例 = 测试脚本 + 测试数据
- 测试脚本 : 重点是描述测试的 业务功能逻辑,包括预置条件、测试步骤、预期结果等,并且可以结合辅助函数(debugtalk.py)实现复杂的运算逻辑;可以将测试脚本理解为编程语言中的 类(class)
- 测试数据 : 重点是对应测试的业务数据逻辑,可以理解为类的实例化数据;
- 测试步骤 : 测试用例是测试步骤的 "有序" 集合 而对于接口测试来说,每一个测试步骤应该就对应一个 API 的请求描述。
- 测试用例集 : 测试用例集 是 测试用例 的 "无序" 集合 集合中的测试用例应该都是相互独立,不存在先后依赖关系的。 如果确实存在先后依赖关系怎么办,例如登录功能和下单功能。 正确的做法应该是,在下单测试用例的前置步骤中执行登录操作。
快速上手?
安装httprunner: pip install httprunner
安装后python库的对比,可以发现多了很多东西,这个我们以后在一一分析。
使用Fiddler工具?
1.开启抓包工具,对要进行测试的网址进行抓包
2.将抓包的文件导出为har格式
3.转换har脚本为json 或yml 格式:在cmd指令界面,输入指令:
- har2case XX/X/dss.har (默认json格式,XX/X/dss.har为存入har脚本的路径和文件名)
- har2case XX/X/dss.har -2y(yml格式)
新增httprunner项目?
- 新增一个文件夹
- cmd窗口界面:cd 到新增的文件夹目录下
- 运行命令
hrun --startproject demo httprunner startproject demo(3.x)
- 在demo目录下会自动生成基本的测试用例和测试用例集结构
目录结构:
- .env 放置在项目根目下,一般将敏感 公用信息存放与此
- debugtalk.py 封装例中用到的一些自定义处理逻辑
- 接口定义(API)描述api调用基础信息(如同api文档一般的基础信息),地址,入参,返回
- 测试用例(testcase)应该是完整且独立的,每条测试用例应该是都可以独立运行的
- 测试用例集(testsuite)是测试用例的 无序 集合,集合中的测试用例应该都是相互独立
- 若有存储参数化文件,或者项目依赖的文件,可以新建并放到 data 文件夹
- reports 存储 HTML 测试报告
将上面的demo简单用起来:
- 定义一个实际的api
- 针对这个api创建2个测试用例
- 定义一个测试用例集包含这两个测试用例.
- 用数据驱动的方式跑这个测试用例集(完)
路漫漫其修远兮,吾将上下而求索。