对于Coded UI测试,窗口消失得太快

时间:2012-06-20 19:30:05

标签: c# visual-studio-2010 coded-ui-tests

在我使用Coded UI Tests进行测试的程序中,我有一个窗口只能打开一秒左右,我想验证此窗口是否正在打开。

有没有办法冻结程序,或让它运行缓慢,以便测试能够找到该窗口?

5 个答案:

答案 0 :(得分:3)

正如我在评论中已经提到的那样,CodedUi Test可以用来捕捉窗口的内容并不多(可能没有),因为此功能内置于应用程序中。

我的建议是让这个属性可配置。被测应用程序中的某些属性需要是可配置的,因此可以进行测试。请考虑以下要求:

  • 该服务每月重启。
  • 用户在闲置一年后会被删除。

你会如何测试它们?你会等一个月或一年过去吗?这些参数必须可用于Qa团队,否则无法进行测试。我知道通过这种方法,您必须对应用程序的代码和构建进行更改,但我认为这是解决它的唯一方法。

答案 1 :(得分:1)

添加Thread.Sleep(100)怎么样;

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

答案 2 :(得分:0)

据我所知,最好的方法是尽可能小地分解你的任务。因此,对于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));
    }

答案 3 :(得分:0)

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

答案 4 :(得分:0)

最好的方法是添加轮询机制。 一旦你执行了打开窗口的操作,就调用一个函数来继续检查窗口是否显示为1分钟左右。

请务必在执行操作后立即调用此功能。 因此,即使窗口停留500毫秒,也会捕获信息。

我们在项目中做了类似的事情。