为了简化测试用例的编写工作,HttpRunner 实现了测试用例生成的功能,对应的转换工具为一个独立的项目:har2case。
简单来说,就是当前主流的抓包工具和浏览器都支持将抓取得到的数据包导出为标准通用的 HAR 格式(HTTP Archive),然后 HttpRunner 实现了将 HAR 格式的数据包转换为YAML/JSON
格式的测试用例文件的功能。
使用charles抓包工具抓取接口报文并导出为HAR格式数据文件,再使用har2case转换成httprunner识别的json或yaml格式用例文件。默认转换成json格式文件,转换成yaml格式文件需要加上-2y参数。
步骤1:导出har包接口文件
步骤2:使用har2case转换用例文件,这里转换成yaml格式文件以上操作完成用例录制及生成!
config:
name: testcase description
variables: {}
teststeps:
- name: /Banner/banners/version/1
request:
headers:
App-Token: MHm1wdA3mwGVj1Xk7eChyeSrNSEi3QtJ3BBFcXzaG0wUOwfdj9RvwO00YercRKiu
App-Type: '1'
App-Version: 4.7.2
DeviceId: A1EEA576-A108-48D0-8C4B-71A7BCFC7F0D
Sign: 84c81049047e502a902fe9ec0d619ca1
User-Agent: TenantAppTest/4.7.2 (cn.lefull.tenant; build:1; iOS 12.4.1)
Alamofire/4.7.2
User-Id: '143197'
client: iOS
idfa: 00000000-0000-0000-0000-000000000000
timestamp: '1583910554'
token: MHm1wdA3mwGVj1Xk7eChyeSrNSEi3QtJ3BBFcXzaG0wUOwfdj9RvwO00YercRKiu
method: GET
params:
city_id: '1'
table_name: service_top
url: https://client-test.lefull.cn/Banner/banners/version/1
validate:
- eq: ["status_code", 200]
- eq: ["headers.Content-Type", "application/json; charset=utf-8"]
用例基本结构:
1、每个YAML或JSON文件对应一个测试用例(testcase)
2、每个用例为list of dict结构,其中可能包含全局配置和若干个测试步骤
3、config:全局配置项,作用域为整个测试用例
4、test:对应单个测试步骤,作用域仅限于本身
网友评论