第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 Postman 教程 Postman 教程 在 Postman 中運(yùn)行腳本

在 Postman 中運(yùn)行腳本

1. 前言

前面章節(jié)向大家講了如何發(fā)送請求以及如何接收響應(yīng),但是如果在請求中需要特殊的輸入或者需要特別的執(zhí)行順序,比如 API 2 的執(zhí)行依賴于 API 1的執(zhí)行結(jié)果,除了人工手動一個個執(zhí)行外,有沒有更好的辦法呢,這章就向大家介紹 Postman 內(nèi)置的非常好用的功能–腳本。

Postman 包含了一個強(qiáng)大的基于 Node.js 的運(yùn)行時組件能夠允許用戶給請求和集合添加動態(tài)行為。這允許用戶編寫測試套件、構(gòu)建包含動態(tài)參數(shù)的請求、在請求之間傳遞數(shù)據(jù)等??梢栽谙旅鎯蓚€事件中間添加 JavaScript 代碼:

  1. 在將請求發(fā)送到服務(wù)器之前,在 “Pre-request Script” 選項(xiàng)卡下添加一個請求前腳本;
  2. 收到響應(yīng)后,在 “Tests” 選項(xiàng)卡下添加測試腳本。

Postman 會在你輸入時提示你一些建議,然后自動完成代碼;
圖片描述

2. 腳本的執(zhí)行順序

在 Postman 中,對于一個單一請求,腳本執(zhí)行順序如下:

  • 跟請求相關(guān)的請求前腳本會在請求發(fā)送之前執(zhí)行;
  • 跟請求相關(guān)的測試腳本會在請求發(fā)送之后執(zhí)行。
    圖片描述

對于一個集合中的每個請求,腳本執(zhí)行順序如下:

  • 跟集合相關(guān)的“請求前腳本”會在集合中任意請求之前執(zhí)行;
  • 跟文件夾相關(guān)的“請求前腳本”會在該文件夾中的任意請求之前執(zhí)行;
  • 跟集合相關(guān)的“測試腳本”會在集合中任意請求之后執(zhí)行;
  • 跟文件夾相關(guān)的“測試腳本”會在該文件夾中的任意請求之后執(zhí)行;

對于集合中的每個請求,腳本將始終按照以下層次結(jié)構(gòu)運(yùn)行:

集合級別的腳本 -> 文件夾級別的腳本 -> 請求級別的腳本;

注意,這個執(zhí)行順序同時適用于請求前腳本和測試腳本。

例如,假設(shè)你有如下集合,包含一個文件夾,該文件夾中有兩個請求:

圖片描述

如果你在集合、文件夾和請求的“請求前腳本”和“測試腳本”部分中創(chuàng)建了日志輸出腳本,那么在 Postman 控制臺中你就會清楚的看到腳本的執(zhí)行順序:

圖片描述

是不是很神奇?為什么這里可以運(yùn)行腳本? 這是因?yàn)?Postman 沙箱的原因。Postman 沙箱是一個JavaScript 執(zhí)行環(huán)境,在給請求編寫“請求前腳本”和“測試腳本”時會用到它(在 Postman 和 Newman )。你在 Postman 和 Newman 寫的任何腳本都會在沙箱中執(zhí)行。

3. 編寫“請求前腳本”

在 Postman 中可以使用“請求前腳本”在請求運(yùn)行前執(zhí)行 JavaScript。通過在請求、集合或文件夾的 “Pre-request Script” 選項(xiàng)卡中編寫代碼,就可以為請求執(zhí)行一些預(yù)處理,比如設(shè)置變量值、參數(shù)、頭和主體數(shù)據(jù)??梢允褂谩罢埱笄澳_本”來調(diào)試代碼,比如將數(shù)據(jù)輸出到控制臺。
下面是使用“請求前腳本”的一個例子:

  • 在一個集合中有一系列請求,要求按順序執(zhí)行它們;
  • 第二個請求依賴第一個請求返回來的值;
  • 在將返回來的值傳遞給第二個請求之前需要做些處理;
  • 第一個請求將響應(yīng)中的值寫到“測試腳本”中的變量中;
  • 第二個請求在“請求前腳本”中拿到并處理這個變量,然后再把處理后的變量設(shè)置為另一個變量。

4. 在請求發(fā)送前運(yùn)行腳本

為了在請求發(fā)送前運(yùn)行腳本,打開請求并點(diǎn)擊 “Pre-request Script” 選項(xiàng)卡,如下圖所示:

圖片描述

在請求執(zhí)行前輸入你想運(yùn)行的代碼:

圖片描述
當(dāng)你點(diǎn)擊“發(fā)送”,這些代碼會在請求發(fā)送之前被執(zhí)行。

5. 測試腳本

你還可以用 JavaScript 為 Postman API 請求編寫測試腳本。測試腳本能確保你的請求按預(yù)期工作,確保后臺服務(wù)之間的集成運(yùn)行可靠,驗(yàn)證新開發(fā)的功能沒有破壞之前已存的功能。當(dāng) API 出現(xiàn)問題時,還可以使用測試腳本幫你調(diào)試程序。

比如,你可以編寫一個測試腳本,通過發(fā)送不完整的數(shù)據(jù)給請求來驗(yàn)證請求的錯誤處理。

可以向單個請求、文件夾和集合添加測試腳本。Postman 里包含一些腳本你可以通過點(diǎn)擊來增加,然后根據(jù)需求來修改里面的邏輯。

要給請求添加測試代碼,跟上面添加“請求前腳本”一樣,打開請求,并在 “Tests” 選項(xiàng)卡中添加代碼。在 “Test Results” 選項(xiàng)卡中看到輸出。

6. 編寫測試腳本

測試腳本會在 API 收到響應(yīng)之后執(zhí)行。要驗(yàn)證返回的結(jié)果是否正確,你可以使用 pm.response 對象??梢允褂?pm.test 方法,提供一個名稱和函數(shù),該函數(shù)會返回一個布爾值(true 或者 false) 指示測試時成功還是失敗。還可以在斷言中使用 ChaiJS BDD 語法和 pm.expect 來測試響應(yīng)細(xì)節(jié)。

pm.test 的第一個參數(shù)用來標(biāo)識這個測試腳本,會出現(xiàn)在測試結(jié)果輸出中。

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

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

點(diǎn)擊“發(fā)送”運(yùn)行請求,并在響應(yīng)部分打開 “Test Results” 選項(xiàng)卡,在選項(xiàng)卡標(biāo)題中顯示了運(yùn)行了幾個測試有幾個通過了。

代碼還可以測試請求環(huán)境,如下所示:

pm.test("environment to be production", function () {
    pm.expect(pm.environment.get("env")).to.equal("production");
});
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");
});

使用定制響應(yīng)數(shù)據(jù)格式的語法來驗(yàn)證請求響應(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;
});

測試腳本可以包含任意數(shù)量的測試,當(dāng)點(diǎn)擊保存的時候,測試腳本會隨請求詳情一起被保存。

7. 小結(jié)

這篇文章主要向大家介紹了 Postman 腳本功能,腳本分為兩個類型:

  • 請求前腳本;
  • 測試腳本。

顧名思義,請求前腳本就是在請求之前執(zhí)行的腳本,這類就像我們文章開頭提到的,如果 API 2 依賴 API 1 的執(zhí)行結(jié)果,那么就可以將 API 1 加到 API 2 的請求前腳本中;測試腳本可以用來大批量的測試 API 是否問題;

通過本章,大家應(yīng)該學(xué)會如何編寫請求前腳本和測試腳本。

圖片描述