python代码 和postman 写的接口也能通过录制功能自动生成yaml格式用例了。
环境准备参考前面一篇https://www.cnblogs.com/yoyoketang/p/17495374.html
【资料图】
在项目本地新建一个recorde.py ,名称随便定义
from pytest_yaml_yoyo.mitm_http import RecoderHTTP"""步骤:1.pip 安装 mitmproxy 环境> pip install mitmproxy2.复制这里的代码,新建recorde.py 文件,设置过滤环境如:http://127.0.0.1:80013.启动服务> mitmweb -s ./recorde.py -p 80994.电脑开启代理,设置对应端口5.自动录制抓包转成 yaml 用例"""addons = [ RecoderHTTP([""]) # 设置过滤环境]
本地 python 代码如下
import requestsurl = "/post"body = { "user": "test", "password": "123456"}r = requests.post(url, json=body)print(r.text)
执行后会自动抓到对应接口,转成 test_post_post.yml 测试用例
config: base_url: post_post: request: method: POST url: /post headers: Content-Type: application/json json: user: test password: "123456" validate: - eq: [status_code, 200] - eq: [headers."Content-Type", application/json] - eq: [$.data, "{"user": "test", "password": "123456"}"] - eq: [$.origin, 183.193.25.125] - eq: [$.url, /post]
postman 上接口也能抓取如果你之前接口写在postman 上,想转成yaml 用例也很简单,只需执行对应的接口,就可以自动抓取转成yaml用例了.
常用的参数配置RecoderHTTP
实例化时,可以设置以下几个参数
filter_host: 抓取的环境地址,可以是多个
ignore_cookies: 是否忽略掉cookies,默认False
save_base_url: 是否在 pytest.ini 保存全局base_url环境地址, 默认False
save_case_dir: 设置用例保存目录,默认cases
1.默认情况下,只需传一个参数,抓取的环境地址,可以是一个,也可以是多个
addons = [ RecoderHTTP([""])]
也可以抓取多个环境地址
addons = [ RecoderHTTP(["", "https://www.baidu.com"])]
2.ignore_cookies 是设置是否忽略cookies抓取,默认False
设置为True, 录制的yaml 用例中不会带上cookies
3.save_base_url
是否在 pytest.ini 保存全局base_url环境地址, 默认False.默认情况下,每个yaml 用例中在config 添加base_url 环境地址,兼容抓取多个环境的情况
如果只需抓一个环境的地址,设置全局base_url地址,设置save_base_url=True
addons = [ RecoderHTTP([""], save_base_url=True)]
抓取用例时会自动创建pytest.ini文件
[pytest]log_cli = truebase_url =
yaml 用例中不带base_url了
post_post: request: method: POST url: /post headers: Content-Type: application/json json: user: test password: "123456" validate: - eq: [status_code, 200] - eq: [headers."Content-Type", application/json] - eq: [$.data, "{"user": "test", "password": "123456"}"] - eq: [$.origin, 183.193.25.125] - eq: [$.url, /post]
4.save_case_dir
参数设置用例保存目录,yaml 用例默认保存目录cases
2023年第 15期《Python接口自动化+Playwright 》课程,6月24号开学(课程全面升级!)
2020年第三期《python接口自动化+测试开发》课程,4月5号开学(火热报名中!)