Postman 編寫測(cè)試

2023-04-04 10:29 更新

測(cè)試確認(rèn)您的 API 按預(yù)期工作,服務(wù)之間的集成可靠地運(yùn)行,并且任何更改都沒(méi)有破壞現(xiàn)有功能。您可以使用 JavaScript 為 Postman API 請(qǐng)求編寫測(cè)試腳本。當(dāng)您的 API 項(xiàng)目出現(xiàn)問(wèn)題時(shí),您還可以使用測(cè)試代碼來(lái)幫助調(diào)試過(guò)程。例如,您可能會(huì)編寫一個(gè)測(cè)試,通過(guò)發(fā)送包含不完整數(shù)據(jù)或錯(cuò)誤參數(shù)的請(qǐng)求來(lái)驗(yàn)證 API 的錯(cuò)誤處理。

添加測(cè)試

您可以將測(cè)試添加到單個(gè)請(qǐng)求、集合和集合中的文件夾。Postman 包括您添加的代碼片段,然后更改以適合您的測(cè)試邏輯。

要向請(qǐng)求添加測(cè)試,請(qǐng)打開請(qǐng)求并在“測(cè)試”選項(xiàng)卡中輸入您的代碼。測(cè)試將在請(qǐng)求運(yùn)行后執(zhí)行。輸出位于響應(yīng)的“測(cè)試結(jié)果”選項(xiàng)卡中。

請(qǐng)求測(cè)試標(biāo)簽

向 gRPC 請(qǐng)求添加測(cè)試

  1. 轉(zhuǎn)到gRPC 請(qǐng)求中的腳本選項(xiàng)卡。
  2. 選擇要向其添加測(cè)試的執(zhí)行掛鉤(調(diào)用前或響應(yīng)后)。
  3. 使用右側(cè)窗格中的片段添加測(cè)試或編寫自定義斷言。

無(wú)論方法類型是一元、客戶端流、服務(wù)器流還是雙向流,這兩個(gè)執(zhí)行掛鉤都可用于所有 gRPC 請(qǐng)求。您的腳本可以包含您需要的任意多個(gè)測(cè)試,并且在您選擇Save時(shí)將與您的請(qǐng)求的其余部分一起保存。

當(dāng)您選擇Invoke時(shí),將在調(diào)用請(qǐng)求之前或之后運(yùn)行測(cè)試。如果您選擇Cancel,請(qǐng)求執(zhí)行和任何進(jìn)一步的腳本執(zhí)行。

如果您的 Before invoke 腳本中有任何錯(cuò)誤,它將停止請(qǐng)求執(zhí)行。

編寫測(cè)試腳本

測(cè)試腳本可以使用動(dòng)態(tài)變量,對(duì)響應(yīng)數(shù)據(jù)執(zhí)行測(cè)試斷言,并在請(qǐng)求之間傳遞數(shù)據(jù)。在請(qǐng)求的“測(cè)試”選項(xiàng)卡中,手動(dòng)輸入您的 JavaScript 或選擇代碼編輯器旁邊的“片段” 。

收到響應(yīng)后執(zhí)行測(cè)試。當(dāng)您選擇Send時(shí),Postman 在響應(yīng)數(shù)據(jù)從 API 返回后運(yùn)行您的測(cè)試腳本。

如果您需要在請(qǐng)求運(yùn)行之前執(zhí)行代碼,請(qǐng)改用預(yù)請(qǐng)求腳本。有關(guān)腳本在請(qǐng)求運(yùn)行時(shí)如何執(zhí)行的更多信息,請(qǐng)參閱腳本簡(jiǎn)介。

驗(yàn)證響應(yīng)

要驗(yàn)證請(qǐng)求返回的數(shù)據(jù),您可以pm.response在測(cè)試中使用該對(duì)象。使用函數(shù)定義測(cè)試pm.test,提供名稱和返回布爾值(true或false)的函數(shù),該值指示測(cè)試是通過(guò)還是失敗。使用ChaiJS BDD語(yǔ)法并pm.expect在您的斷言中測(cè)試響應(yīng)細(xì)節(jié)。

該.test函數(shù)的第一個(gè)參數(shù)是將出現(xiàn)在測(cè)試結(jié)果輸出中的文本字符串。使用它來(lái)識(shí)別您的測(cè)試,并將測(cè)試的目的傳達(dá)給查看結(jié)果的任何人。

例如,在請(qǐng)求的“測(cè)試”200選項(xiàng)卡中輸入以下內(nèi)容以測(cè)試響應(yīng)狀態(tài)代碼是否為:

pm.test("Status test", function () {
    pm.response.to.have.status(200);
});

選擇發(fā)送以運(yùn)行您的請(qǐng)求并在響應(yīng)部分打開測(cè)試結(jié)果。選項(xiàng)卡標(biāo)題顯示通過(guò)了多少測(cè)試以及總共運(yùn)行了多少測(cè)試。您還可以查看Passed、Skipped和Failed測(cè)試結(jié)果的數(shù)量。

如果請(qǐng)求返回200狀態(tài)代碼,則測(cè)試通過(guò)。要了解不同狀態(tài)代碼會(huì)發(fā)生什么情況,請(qǐng)更改測(cè)試腳本中的預(yù)期狀態(tài)代碼并再次運(yùn)行請(qǐng)求。

使用 pm.expect 格式化測(cè)試結(jié)果消息

使用pm.expect語(yǔ)法為您的測(cè)試結(jié)果消息提供不同的格式。試驗(yàn)替代方案以獲得您認(rèn)為最有用的輸出。

使用Intro to writing tests 集合中的Run in Postman按鈕將包含一些示例測(cè)試腳本的模板導(dǎo)入 Postman 并試驗(yàn)代碼。

您的代碼可以測(cè)試請(qǐng)求環(huán)境,如下例所示:

pm.test("environment to be production", function () {
    pm.expect(pm.environment.get("env")).to.equal("production");
});

您可以使用不同的語(yǔ)法變體以您認(rèn)為可讀且適合您的應(yīng)用程序和測(cè)試邏輯的方式編寫測(cè)試。

pm.test("response should be okay to process", function () {
    pm.response.to.not.be.error;
    pm.response.to.have.jsonBody("");
    pm.response.to.not.have.jsonBody("error");
});

您的測(cè)試可以使用您為響應(yīng)數(shù)據(jù)格式定制的語(yǔ)法來(lái)確定請(qǐng)求響應(yīng)的有效性。

pm.test("response must be valid and have a body", function () {
     pm.response.to.be.ok;
     pm.response.to.be.withBody;
     pm.response.to.be.json;
});

您的腳本可以包含您需要的任意多個(gè)測(cè)試,并且在您選擇Save時(shí)將與其余的請(qǐng)求詳細(xì)信息一起保存。如果您共享集合、發(fā)布文檔或使用“在 Postman 中運(yùn)行”按鈕,您的測(cè)試代碼將包含在任何查看或?qū)肽哪0宓娜酥小?/p>

使用片段

您可以使用精選的常用測(cè)試代碼片段列表來(lái)編寫測(cè)試。片段在腳本編輯器的右窗格中可用。選擇一個(gè)片段會(huì)自動(dòng)將所需的代碼添加到您的腳本中,幫助您快速開始測(cè)試。添加到腳本后,您可以編輯片段以滿足您的特定測(cè)試要求。

測(cè)試集合和文件夾

您可以將測(cè)試腳本添加到集合、文件夾或集合中的單個(gè)請(qǐng)求。與集合關(guān)聯(lián)的測(cè)試腳本將在集合中的每個(gè)請(qǐng)求之后運(yùn)行。與文件夾關(guān)聯(lián)的測(cè)試腳本將在文件夾中的每個(gè)直接子請(qǐng)求之后運(yùn)行。這使您能夠在請(qǐng)求后重用通常執(zhí)行的測(cè)試。每個(gè)請(qǐng)求的執(zhí)行順序?qū)⑹鞘占瘻y(cè)試,文件夾測(cè)試,然后是請(qǐng)求測(cè)試。

將腳本添加到集合和文件夾使您能夠測(cè)試 API 項(xiàng)目中的工作流。這有助于確保您的請(qǐng)求涵蓋典型場(chǎng)景,為應(yīng)用程序用戶提供可靠的體驗(yàn)。

更多操作圖標(biāo) 您可以通過(guò)選擇集合或文件夾名稱旁邊的查看更多操作圖標(biāo) ,然后選擇編輯來(lái)更新集合和文件夾腳本。選擇“測(cè)試”選項(xiàng)卡以添加或更新您的腳本。您還可以在首次創(chuàng)建集合時(shí)添加集合腳本。

當(dāng)您運(yùn)行一個(gè)集合時(shí),集合運(yùn)行器會(huì)顯示測(cè)試結(jié)果,包括以毫秒為單位的響應(yīng)時(shí)間以及有關(guān)集合中的特定請(qǐng)求是通過(guò)還是未通過(guò)其測(cè)試的詳細(xì)信息。

收集測(cè)試

您可以使用分支和循環(huán)編寫腳本來(lái)控制請(qǐng)求的運(yùn)行順序。

調(diào)試測(cè)試

如果您在測(cè)試時(shí)遇到問(wèn)題:

  • 檢查腳本中是否有任何錯(cuò)誤。紅色徽章將突出顯示有錯(cuò)誤的腳本。您還可以檢查響應(yīng)部分是否存在特定錯(cuò)誤。
  • 使用日志語(yǔ)句調(diào)試您的測(cè)試,以確保您斷言正確的數(shù)據(jù)。

下一步

在 Postman 中編寫測(cè)試后,您可以編寫更復(fù)雜的測(cè)試并將它們與其他 Postman 實(shí)用程序一起使用。

  • 有關(guān)您可以使用該pm對(duì)象執(zhí)行的操作的更多信息,請(qǐng)查看一些測(cè)試腳本示例并訪問(wèn)Postman Sandbox API 參考。
  • 要了解如何結(jié)合使用測(cè)試和監(jiān)控來(lái)確認(rèn)您的 API 是否滿足性能要求,請(qǐng)?jiān)L問(wèn)監(jiān)控您的 API
  • 要了解如何通過(guò)在 CI/CD 配置中集成集合運(yùn)行來(lái)自動(dòng)化測(cè)試,請(qǐng)?jiān)L問(wèn)與 Travis CI 集成。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)