前言

python代码 和postman 写的接口也能通过录制功能自动生成yaml格式用例了。

python 代码运行后自动录制

环境准备参考前面一篇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号开学(火热报名中!)

推荐内容