2016-11-08 55 views

回答

3

我知道兩種方法可以做到這一點

方法我

運行你的要求作爲一個集合。 (https://www.getpostman.com/docs/collections) 使用Newman(Postman's collection runner from command line)通過--delay標誌運行你的集合。延遲輸入值以毫秒爲單位。

方法II

這是一個很好的黑客,我發現這裏https://github.com/postmanlabs/postman-app-support/issues/1038。您可以在Postman中爲您的測試腳本添加延遲功能。

+0

謝謝您的回答。方法1是我一直在做的事情。但我只想在僅有*一個請求之後暫停,而不是在每個請求之後。看起來我要用你的方法去做2.郵遞員應該添加這個功能。 Runscope有它,所以我想我被寵壞了。 – RoundOutTooSoon

+0

如果您將延遲時間設置爲30秒以上,則方法II將不起作用 – Icet

1

使用javascript的忙等待是一個很好的黑客,但它會讓你的CPU熱和應用程序無響應。我使用postman-echo發現了這個解決方案。

假設您想要在Request_A和Request_B之間添加一個很長的延遲。

首先,在Request_A的測試腳本中設置一個env var來標記開始。

environment.delayTimerStart = new Date();

然後,創建在創建(這裏稱爲 '延時10s')的GET請求。它得到https://postman-echo.com/delay/10(它10S之後返回)

在其測試腳本中,添加

var curDate = new Date(); 
if (curDate - environment.delayTimerStart < delay_time_in_sec*1000) { 
    postman.setNextRequest('Delay 10s'); 
} else { 
    postman.setNextRequest("Request_B"); 
} 

注:10秒是郵差回波接受最大信號值。如果你只需要短暫的延遲,只需GET https://postman-echo.com/delay/[1~10]即可。

0

我更喜歡使用在線服務郵差回聲的延遲端點(文檔是here)。只需創建一個使用此服務的請求,並在您希望在其間添加延遲的另外兩個請求之間調用它。

如果您想在繼續之前檢查某些內容的狀態,可以在請求的Tests中使用postman.setNextRequest()進行循環,直到完成某些操作。只要做到以下幾點:

1)創建結構作爲一個集合:

  • 延時10秒
  • 狀態檢查
  • 繼續處理

2)在Status Check要求測試:

if(responseBody.has("Success")) //or any other success condition 
{ 
    postman.setNextRequest('Continue Processing'); 
    tests["Success found"] = true; 
} 
else 
{ 
    postman.setNextRequest('Delay For 10 Seconds'); 
    tests["No success found"] = true; 
} 
0

您可以使用JavaScript setTimeout方法。這將確保您的方法將在給定延遲後執行。

enter image description here

setTimeout(checkStatusCode, 500); 

    function checkStatusCode() { 

     pm.sendRequest('https://postman-echo.com/get', function (err, res) { 

      tests['status code should be 200']= res.code ===200; 

     }); 
    } 
相關問題