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

pytest + yaml 框架 -41.postman 和 python代碼自動(dòng)錄制成yaml用例 焦點(diǎn)熱聞

前言

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

python 代碼運(yùn)行后自動(dòng)錄制

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


【資料圖】

在項(xiàng)目本地新建一個(gè)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.啟動(dòng)服務(wù)> mitmweb -s ./recorde.py -p 80994.電腦開啟代理,設(shè)置對(duì)應(yīng)端口5.自動(dòng)錄制抓包轉(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í)行后會(huì)自動(dòng)抓到對(duì)應(yīng)接口,轉(zhuǎn)成 test_post_post.yml 測(cè)試用例

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

常用的參數(shù)配置

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

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

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)情況下,只需傳一個(gè)參數(shù),抓取的環(huán)境地址,可以是一個(gè),也可以是多個(gè)

addons = [    RecoderHTTP([""])]

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

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

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

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

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

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

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

抓取用例時(shí)會(huì)自動(dòng)創(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接口自動(dòng)化+Playwright 》課程,6月24號(hào)開學(xué)(課程全面升級(jí)?。?/p>

2020年第三期《python接口自動(dòng)化+測(cè)試開發(fā)》課程,4月5號(hào)開學(xué)(火熱報(bào)名中!)

關(guān)鍵詞:

最近更新

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

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