2017-04-11 41 views
0

我想在我的CI環境上運行postman測試。現在,在我打電話給一個端點之前,我需要打電話給我們的一個oauth端點,以確保我有訪問令牌。在郵差上有2年的ticket與大量upvotes和建議使用setNextRequest在預先請求(這是從郵差4.5,顯然支持)。因此,我在我的預先請求部分如下:郵差請求鏈接

var responseBody = postman.setNextRequest("/oauth/token"); 

它沒有工作,似乎「/的OAuth /令牌」從來沒有被稱爲(沒有在郵遞員控制檯顯示出來)。我確信我不是第一個反對這種情況的人,所以我的問題是 - 有沒有辦法從集合中調用一個項目(一個給我訪問令牌的項目)?也就是說,我不希望在每次需要訪問令牌的測試之前重複使用相同的oauth請求。

回答

1

我可以看到你正在使用responseBody在預先請求部分。儘管您只是試圖將其設置爲下一個請求。那裏沒有responseBodyresponseBody僅在Tests部分可用(顯然由於請求已被執行)。

關於你的情況,你爲什麼不遵循:

  1. 執行的權威性請求作爲第一個呼叫
  2. 獲得訪問令牌
  3. 儲存於變量
  4. 使用環境在需要它的後續請求中使用令牌。

這將確保您的所有請求都具有在運行時生成的訪問令牌。

+0

是的,所以這是我的默認策略。我雖然也許有一種更優雅的方式來做到這一點,就像執行另一個集合的請求一樣,會給我更多的靈活性來構造我的測試。 – user2187935

+0

當前'postman.setNextRequest'方法只在同一個集合中查找請求。 –

1

postman.setNextRequest()用於在當前請求之後執行所需的請求。這不會解決你的問題。 Best將其存儲在環境變量中,使用 postman.setEnvironmentVariable()函數並在需要時調用。

+0

是的,所以這也是我的直覺。但爲什麼郵差人員說預先請求支持setNextRequest?這裏的用例是什麼? – user2187935