簡體   English   中英

對於Coded UI測試,窗口消失得太快

[英]Window disappears too fast for Coded UI Test

在我正在使用Coded UI Tests測試的程序中,我有一個窗口只能打開一秒左右,我想驗證此窗口是否打開。

有沒有辦法凍結程序,或讓它運行緩慢,以便測試能夠找到該窗口?

正如我在評論中已經提到的那樣, CodedUi Test無法捕捉到窗口,因此該功能內置於應用程序中。

我的建議是使這個屬性可配置。 被測應用程序中的某些屬性需要是可配置的,因此可以進行測試。 請考慮以下要求:

  • 該服務每月重啟。
  • 一年不活動后,用戶將被刪除。

你會如何測試它們? 你會等一個月或一年過去嗎? 這些參數必須可用於Qa團隊,否則無法進行測試。 我知道通過這種方法,您必須對應用程序的代碼和構建進行更改,但我認為這是解決它的唯一方法。

如何添加Thread.Sleep(100);

http://msdn.microsoft.com/en-us/library/d00bd51t

據我所知,最好的方法是盡可能小地分解你的任務。 因此,對於UI測試,我在工具欄上打開了一個快捷方式,在彈出窗口中單擊登錄,然后單擊應用程序中的選項卡,代碼如下所示:

namespace CodedUITestProject1
{
/// <summary>
/// Summary description for CodedUITest1
/// </summary>
[CodedUITest]
public class CodedUITest1
{
    public CodedUITest1()
    {
    }

    [TestMethod]
    public void CodedUITestMethod1()
    {
        // To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
        // For more information on generated code, see http://go.microsoft.com/fwlink/?LinkId=179463
        this.UIMap.OpenWindow();
        this.UIMap.ClickLogin();
        this.UIMap.ClickDevelopment();
    }
//snip
}

那么在ClickDevelopment()方法中,我知道該程序應該是可見的,所以我可以拋出一個Thread.Sleep()使其可見一段時間,而不是直接進入方法操作。

public void ClickDevelopment()
    {
        Thread.Sleep(10000);
        #region Variable Declarations
        WinClient uIDevelopmentClient = this.UIQualityTrack30Window.UIItemWindow.UIQualityTrack30Client.UIDevelopmentClient;
        #endregion

        // Click 'Development' client
        Mouse.Click(uIDevelopmentClient, new Point(39, 52));
    }

使用Playback.Wait(2000)代替Thread.Sleep(2000);

最好的方法是添加輪詢機制。 一旦你執行了打開窗口的動作,就調用一個函數,該函數將繼續檢查窗口是否顯示為1分鍾左右。

請務必在執行操作后立即調用此功能。 因此,即使窗口停留500毫秒,也會捕獲信息。

我們在項目中做了類似的事情。

暫無
暫無

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

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