pytest + yaml 框架 - 41.postman 和 python代码自动录制成yaml用例

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用例了.

pytest + yaml 框架 - 41.postman 和 python代码自动录制成yaml用例_第1张图片

常用的参数配置

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

pytest + yaml 框架 - 41.postman 和 python代码自动录制成yaml用例_第2张图片

设置为True, 录制的yaml 用例中不会带上cookies

3.save_base_url是否在 pytest.ini 保存全局base_url环境地址, 默认False.
默认情况下,每个yaml 用例中在config 添加base_url 环境地址,兼容抓取多个环境的情况

pytest + yaml 框架 - 41.postman 和 python代码自动录制成yaml用例_第3张图片

如果只需抓一个环境的地址,设置全局base_url地址,设置save_base_url=True

addons = [
    RecoderHTTP(['http://httpbin.org'], save_base_url=True)
]

抓取用例时会自动创建pytest.ini文件

pytest + yaml 框架 - 41.postman 和 python代码自动录制成yaml用例_第4张图片

[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%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

全部资料获取

你可能感兴趣的:(程序员,软件自动化测试,软件测试,pytest,软件测试,postman,功能测试,自动化测试,python,测试工具)