![e27a400ec29dd41503ad008bbd4af0eb.png](https://i-blog.csdnimg.cn/blog_migrate/c1a8ba1a49f83193d78f5309dbd9cf31.jpeg)
在正式手动编写case之前,我们可以先来熟悉下httprunner的录制生成用例功能。
用postman的童鞋都知道,里面有个功能可以将接口转换成代码,可以直接copy过来使用,提升case编写效率。
那httprunner的录制生成用例功能又是怎么回事呢?
一、har2case
其实,这都要依托于另一个独立的项目-har2case。
原理就是当前主流的抓包工具和浏览器都支持将抓取得到的数据包导出为标准通用的 HAR 格式(HTTP Archive),然后 HttpRunner 将 HAR 格式的数据包转换为YAML/JSON
格式的测试用例文件。
比如,我现在用window系统上的fiddler去抓取一个百度首页的请求。
![92ba284d13ee7d638d44d9b1189794eb.png](https://i-blog.csdnimg.cn/blog_migrate/76e4db4fb1340eebb82d8aa742a8b994.jpeg)
选中这个请求,点击左上角的File——Export Sessions——(可以选择导出选中的也可以导出所有),这里我们选择导出选中的,导出HTTPArchive,文件名baidu_home.har,保存到了项目的har目录下。
![f744306ce1b2133b348511c4d74b4387.png](https://i-blog.csdnimg.cn/blog_migrate/5ac85e36ec12692aad9ad96b6c717ea3.jpeg)
二、转换为pytest文件
运行命令将har文件转换成测试用例:
har2case baidu_home.har
![34cc63bcabe1b13d91ac722c82a4de9b.png](https://i-blog.csdnimg.cn/blog_migrate/be19c08407631ddbafbf2ebdfed54d40.jpeg)
生成完毕,在har目录下可以看到生成出的python文件:
# NOTE: Generated By HttpRunner v3.1.1
# FROM: harbaidu_home.har
from httprunner import HttpRunner, Config, Step, RunRequest, RunTestCase
class TestCaseBaiduHome(HttpRunner):
config = Config("testcase description").verify(False)
teststeps = [
Step(
RunRequest("/")
.get("https://www.baidu.com/")
.with_headers(
**{
"Host": "www.baidu.com",
"Connection": "keep-alive",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
"Cookie": "PSTM=1582766561; BAIDUID=5F919C7A22A02E55FBC58E932E7495CD:FG=1; BD_UPN=12314353; BIDUPSID=B2A8970CF5106170D98A137A26C533F7; H_WISE_SIDS=143933_142621_143879_144883_139041_141744_145870_144419_144135_145271_136863_131247_144682_137745_138883_140259_141941_127969_144790_140593_143491_144376_131423_114552_142206_145910_144501_125695_107313_139909_1