簡體   English   中英

檢查空手道中是否存在請求標頭

[英]Checking for the presence of a Request header in Karate

我正在嘗試創建一個模擬服務器來處理空手道中的功能測試。 為此,我需要根據傳入請求中某些元素(如方法、路徑和“授權”標頭的存在)來匹配某些傳入請求。

我的情況是這樣的:

methodIs('get') && pathMatches('/mypath')

我需要為請求中存在“授權”標頭編寫條件。

根據文檔,我們可以使用:

karate.get('requestHeaders.Authorization[0]') == 'foo'

但是,當我嘗試使用上述內容時,它不起作用。 我檢查了requestHeaders.Authorization[0]的存在,但它被返回為Null 我的想法是將上面的內容修改為karate.get('requestHeaders.Authorization[0]') == '#notnull'

我最終嘗試了headerContains('Authorization','') ,這似乎正在工作 - 但是我不確定這是否是檢查該特定標頭是否存在的正確方法。 還有其他(更好的)方法可以做到這一點嗎?

我們計划在未來的版本中對此進行改進: https ://github.com/karatelabs/karate/issues/1962

同時,我會認為像requestHeaders.Authorization這樣的簡單 JavaScript 條件會起作用。 例如:

Scenario: requestHeaders.Authorization && methodIs('get')

不幸的是,它區分大小寫,這是我們計划在未來版本中解決的問題。 您暫時可以使用 OR 條件。

更多解釋請參考: https ://stackoverflow.com/a/55823180/143475

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM