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 mitmproxy
2.复制这里的代码,新建recorde.py 文件,设置过滤环境如:http://127.0.0.1:8001
3.启动服务
> mitmweb -s ./recorde.py -p 8099
4.电脑开启代理,设置对应端口
5.自动录制抓包转成 yaml 用例
"""
addons = [
RecoderHTTP(['http://httpbin.org']) # 设置过滤环境
]
本地 python 代码如下
import requests
url = "http://httpbin.org/post"
body = {
"user": "test",
"password": "123456"
}
r = requests.post(url, json=body)
print(r.text)
执行后会自动抓到对应接口,转成 test_post_post.yml 测试用例
config:
base_url: http://httpbin.org
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, http://httpbin.org/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(['http://httpbin.org'])
]
也可以抓取多个环境地址
addons = [
RecoderHTTP(['http://httpbin.org', '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(['http://httpbin.org'], save_base_url=True)
]
抓取用例时会自动创建pytest.ini文件
[pytest]
log_cli = true
base_url = http://httpbin.org
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, http://httpbin.org/post]
4.save_case_dir
参数设置用例保存目录,yaml 用例默认保存目录cases
最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。