首頁 資訊 > 創(chuàng)新 > 正文

pytest + yaml 框架 -41.postman 和 python代碼自動錄制成yaml用例 焦點熱聞

前言

python代碼 和postman 寫的接口也能通過錄制功能自動生成yaml格式用例了。

python 代碼運行后自動錄制

環(huán)境準(zhǔn)備參考前面一篇https://www.cnblogs.com/yoyoketang/p/17495374.html


【資料圖】

在項目本地新建一個recorde.py ,名稱隨便定義

from pytest_yaml_yoyo.mitm_http import RecoderHTTP"""步驟:1.pip 安裝 mitmproxy 環(huán)境> pip install mitmproxy2.復(fù)制這里的代碼,新建recorde.py 文件,設(shè)置過濾環(huán)境如:http://127.0.0.1:80013.啟動服務(wù)> mitmweb -s ./recorde.py -p 80994.電腦開啟代理,設(shè)置對應(yīng)端口5.自動錄制抓包轉(zhuǎn)成 yaml 用例"""addons = [    RecoderHTTP([""])   # 設(shè)置過濾環(huán)境]

本地 python 代碼如下

import requestsurl = "/post"body = {    "user": "test",    "password": "123456"}r = requests.post(url, json=body)print(r.text)

執(zhí)行后會自動抓到對應(yīng)接口,轉(zhuǎn)成 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 上,想轉(zhuǎn)成yaml 用例也很簡單,只需執(zhí)行對應(yīng)的接口,就可以自動抓取轉(zhuǎn)成yaml用例了.

常用的參數(shù)配置

RecoderHTTP實例化時,可以設(shè)置以下幾個參數(shù)

filter_host: 抓取的環(huán)境地址,可以是多個

ignore_cookies: 是否忽略掉cookies,默認(rèn)False

save_base_url: 是否在 pytest.ini 保存全局base_url環(huán)境地址, 默認(rèn)False

save_case_dir: 設(shè)置用例保存目錄,默認(rèn)cases

1.默認(rèn)情況下,只需傳一個參數(shù),抓取的環(huán)境地址,可以是一個,也可以是多個

addons = [    RecoderHTTP([""])]

也可以抓取多個環(huán)境地址

addons = [    RecoderHTTP(["", "https://www.baidu.com"])]

2.ignore_cookies 是設(shè)置是否忽略cookies抓取,默認(rèn)False

設(shè)置為True, 錄制的yaml 用例中不會帶上cookies

3.save_base_url是否在 pytest.ini 保存全局base_url環(huán)境地址, 默認(rèn)False.默認(rèn)情況下,每個yaml 用例中在config 添加base_url 環(huán)境地址,兼容抓取多個環(huán)境的情況

如果只需抓一個環(huán)境的地址,設(shè)置全局base_url地址,設(shè)置save_base_url=True

addons = [    RecoderHTTP([""], save_base_url=True)]

抓取用例時會自動創(chuàng)建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參數(shù)設(shè)置用例保存目錄,yaml 用例默認(rèn)保存目錄cases

2023年第 15期《Python接口自動化+Playwright 》課程,6月24號開學(xué)(課程全面升級!)

2020年第三期《python接口自動化+測試開發(fā)》課程,4月5號開學(xué)(火熱報名中?。?/p>

關(guān)鍵詞:

最近更新

關(guān)于本站 管理團(tuán)隊 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2023 創(chuàng)投網(wǎng) - mallikadua.com All rights reserved
聯(lián)系我們:39 60 29 14 2@qq.com
皖I(lǐng)CP備2022009963號-3