『政善治』Postman — 15.Postman數(shù)據(jù)驅(qū)動(dòng)的實(shí)現(xiàn)(二)

4、實(shí)現(xiàn)Postman中的數(shù)據(jù)驅(qū)動(dòng)

當(dāng)需要進(jìn)行數(shù)據(jù)驅(qū)動(dòng)運(yùn)行多次Postman腳本時(shí),可以通過.csv或者.json格式的數(shù)據(jù)文件,對(duì)接口測(cè)試數(shù)據(jù)進(jìn)行管理,以方便用例的執(zhí)行。

步驟1:

進(jìn)入Collection測(cè)試集的Collection Runner界面。

點(diǎn)擊Collection測(cè)試集名稱后邊的箭頭,點(diǎn)擊Run。

步驟2:

在Collection Runner界面中選擇需要執(zhí)行的接口。

我們只需要執(zhí)行批量新增學(xué)院請(qǐng)求,如下圖:


Deselect All:取消全選(默認(rèn)全選)。

Select All:全選。

Reset:重置(恢復(fù)默認(rèn)全選)。

步驟3:

配置Collection Runner執(zhí)行選擇。

  1. 選擇Collection測(cè)試集。

  2. Environment:選擇環(huán)境變量。

  3. Iterations:接口迭代次數(shù),這個(gè)不用填寫,選擇數(shù)據(jù)文件后會(huì)自動(dòng)識(shí)別(會(huì)自動(dòng)忽略第一行標(biāo)題)。

    如果只執(zhí)行測(cè)試集,不進(jìn)行數(shù)據(jù)驅(qū)動(dòng),自己按需求填寫。

  4. Delay:每次執(zhí)行的間隔。

  5. Data:選擇.csv數(shù)據(jù)文件。(可以添加測(cè)試數(shù)據(jù),在tests中用data參數(shù)訪問)

    // data 表示數(shù)據(jù)文件的對(duì)象
    // data.cityname表示獲取數(shù)據(jù)文件中的cityname屬性值
    pm.test("驗(yàn)證返回中city的值是"+data.cityname, function () {
        var jsonData = pm.response.json(); // 獲取返回值所有數(shù)據(jù)
        pm.expect(jsonData.city).to.eql(data.cityname); // 斷言返回值中具體字段的值
    });
    
    // 這種取值方式要重點(diǎn)記住
    
  6. Save responses:保存響應(yīng)。

    允許記錄請(qǐng)求的響應(yīng)頭和正文,方便您查看。

    這可能會(huì)收集較多的數(shù)據(jù),從而影響測(cè)試集運(yùn)行的性能。

  7. Keep variable values:是否保留測(cè)試集執(zhí)行過程中對(duì)環(huán)境變量的修改。(夠不勾選都可以)

  8. Run collection without using stored cookies:在不使用存儲(chǔ)的cookie的情況下運(yùn)行測(cè)試集。

  9. Save cookies after collection run:測(cè)試集運(yùn)行后保存cookie。

    更新此會(huì)話中存儲(chǔ)的cookie,并將其保存到您的cookie管理器中。

    (以上四項(xiàng)默認(rèn)即可)

  10. Run ***:運(yùn)行已選擇collection測(cè)試集中的接口。

配置完如下圖:

重點(diǎn)提示:Preview能夠查看數(shù)據(jù)文件中內(nèi)容預(yù)覽,可以查看文件讀取內(nèi)容是否有誤。

步驟4:

執(zhí)行并查看結(jié)果。

說明:

(1)頂部欄:

  • Collection Runner:返回Collection Runner界面。

  • Run Results:當(dāng)前Run運(yùn)行的結(jié)果界面。

  • My Workspace:切換工作空間。

  • Run In Command Line:在命令行中運(yùn)行。(好像是需要安裝一個(gè)Newman的命令行工具來執(zhí)行命令,這個(gè)暫時(shí)不重要)

  • Docs:進(jìn)入Postman官方文檔https://learning.postman.com/docs/running-collections/intro-to-collection-runs/

(2)測(cè)試結(jié)果部分:

測(cè)試集Run完成后,

  • 成功多少個(gè)斷言。
  • 失敗多少歌斷言。
  • 測(cè)試集的名稱。
  • 測(cè)試集選擇的環(huán)境變量。

執(zhí)行完成PASSED和FAILED的總和,等于每個(gè)接口斷言個(gè)數(shù)×執(zhí)行次數(shù)。

(3)工具欄:

  • Run Summary:查看運(yùn)行摘要(概況)。
    如下圖:
  • Export Results:導(dǎo)出測(cè)試集執(zhí)行結(jié)果,.json文件的形式。
  • Retry:重新執(zhí)行一次測(cè)試集。
  • New:新建一個(gè)Collection Runner界面,其實(shí)也就是返回了Collection Runner界面。

(4)請(qǐng)求列表部分

說明:

  • 我們可以看到每一個(gè)請(qǐng)求名稱、URL、執(zhí)行的響應(yīng)碼、使用時(shí)間、所用數(shù)據(jù),還有該請(qǐng)求所執(zhí)行的斷言。
  • 左側(cè)欄可以點(diǎn)擊切換,只查看成功的斷言、只查看失敗的斷言和全部顯示。
  • 右側(cè)欄我們可以直接選擇查看第幾次發(fā)送的請(qǐng)求。
  • 點(diǎn)擊請(qǐng)求的名稱,我們也可以看到該請(qǐng)求的詳細(xì)數(shù)據(jù),如下圖:


(5)底部欄:

Console:控制臺(tái),可以查看每個(gè)請(qǐng)求的運(yùn)行日志和數(shù)據(jù)信息。

可以查看請(qǐng)求頭、請(qǐng)求體、響應(yīng)頭、相應(yīng)體等數(shù)據(jù)。

如果請(qǐng)求報(bào)錯(cuò),也可以查看到錯(cuò)誤信息。

以上就是在Postman中數(shù)據(jù)驅(qū)動(dòng)的使用過程。(json格式的數(shù)據(jù)文件使用同理)

實(shí)際上面是講了兩部分內(nèi)容,

  • 一部分是Collection測(cè)試集的執(zhí)行,也就是Collection Runner
  • 還有一個(gè)就是Postman中數(shù)據(jù)驅(qū)動(dòng)的使用。

5、補(bǔ)充: json格式數(shù)據(jù)文件說明

[
    {
      "userName":"張三",
      "passWord":"123456",
      "sex":"男",
      "age":66
    },
    {
      "userName":"李四",
      "passWord":"123456",
      "sex":"男",
      "age":88
    },
    {
      "userName":"王五",
      "passWord":"123456",
      "sex":"女",
      "age":99
    }
]

提示:外面必須是[],每一組數(shù)據(jù)使用 {}進(jìn)行封裝,中間使用逗號(hào)進(jìn)行分隔。

6、補(bǔ)充:數(shù)據(jù)文件在預(yù)置腳本中的使用

(1).csv文件

Pre-request Script編寫如下代碼:

// 在Pre-request Script和tests中用data代表訪問參數(shù)
// 獲取參數(shù)化文件中的dep_name字段的值
var dep_name = data.dep_name

// 將獲取到的 dep_name 設(shè)置為環(huán)境變量
pm.environment.set("dep_name", dep_name);

// 調(diào)試
console.log(pm.environment.get("dep_name"));

(2).json文件

Pre-request Script編寫如下代碼:

// 在Pre-request Script和tests中用data代表訪問參數(shù)
// 獲取參數(shù)化文件中的userName字段的值
var userName = data.userName

// 將獲取到的 userName 設(shè)置為環(huán)境變量
pm.environment.set("userName", userName);

// 調(diào)試
console.log(pm.environment.get("userName"));

參考:https://zhuanlan.zhihu.com/p/150292738

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容