[英]Asynchronous Execution of Feature file in Karate
我有一個使用空手道模擬的活動。 其中一個 API 返回響應,但在一段時間后它也調用另一個 API(模擬工作負載的處理)
我想實現以下目標:
Client --> Calls Karate Mock (Call A)
Client <-- Karate Mock Returns
----Interaction ends here ----
After 30 seconds or so..
Client Listener <-- Karate Mocks Posts (Call B)
我目前的情況是
Blocking:
Client --> Calls Karate Mock (Call A)
Client Listener <-- Karate Mocks Posts (Call B)
Client <-- Karate Mock Returns (This is blocked until Call B happens)
在單獨的功能文件中調用 B,我可以從另一個功能文件中調用它。
所以我想我正在為空手道中的異步調用而苦苦掙扎。
我確實創建了一個實現異步執行的 Java 類,但我不確定如何從中調用功能文件。 這將立即為我解決這個問題。
另外,如果有更好的方法來做到這一點?
這實際上應該很容易,使用 Java 線程,這個例子應該清楚:
Scenario: pathMatches('/hardcoded')
* def response = { hello: 'world' }
* def fun = function(){ karate.log('*** before'); java.lang.Thread.sleep(5000); karate.log('*** after') }
* eval new java.lang.Thread(fun).start()
請注意,JS function(){}
會自動轉換為 Java runnable,這很方便。 您應該能夠使用karate.call()
從 JS 函數調用第二個功能,它可以完成您需要的 POST 工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.