簡體   English   中英

空手道中特征文件的異步執行

[英]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.

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