簡體   English   中英

有太多后台工作的BDD測試?

[英]BDD testing with too many background jobs?

我在我的項目中使用BDD(Behat)進行功能測試。 現在,在測試具有太多后台作業的功能時,我遇到了問題。 例:

Scenario: Import issue at the first time
    Given I have a issue package "1602.zip"
    When I upload issue "1602.zip"
    Then I have to wait until it is finished
    And I can see list of articles are imported
    And status of issue is "1"

然后我必須等到它完成 ”包含:

  • 服務器1接收上傳文件,將一些元數據插入數據庫並將狀態標記為“導入”,然后將zip文件上傳到s3
  • 服務器2從s3下載文件並處理資產,如PDF,圖像,然后在處理后壓縮所有內容並再次上傳到s3。
  • 服務器3從s3下載結果zip包(由服務器2完成),並開始導入問題(導入pdf,圖像,文章......)

我可以看到導入的文章列表 ”是我將API調用到服務器以獲取該問題的文章列表。

正如您所看到的,因為在導入期間,我們有太多后台作業(使用Resque),因此我必須等到完成后才檢查問題狀態:

while ($status != 1) {
    $status = getStatusOfIssue(123);
    if (1 === $status) {
        break;
    }
}

問題是我不知道要等多久,因為它取決於問題包的大小,更大的大小等待的時間越長。 所以在這種情況下,我該怎么辦?

作為一般慣例,您需要使用條件等待來檢查您知道的事情(等待幾秒鍾)。

條件可能是:
- 請求的狀態
- 元素顯示在頁面中
- 不顯示頁面/元素

提示:你應該避免使用while循環並使用do-while循環而不是你需要的2個條件,在你的情況下檢查狀態,如果第一個從未像計數一樣完成,那么將會突破循環。

暫無
暫無

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

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