播放期间让编码的 UI 测试等待特定事件
在编码的 UI 测试播放中,您可以指示测试等待某些事件发生,如某个窗口出现、进度栏消失等。为此,可使用下表所列的相应 UITestControl.WaitForControlXXX() 方法。有关使用 WaitForControlEnabled 方法等待启用某个控件的编码 UI 测试的示例,请参见演练:创建、编辑和维护编码的 UI 测试。
要求
- Visual Studio 旗舰版, Visual Studio 高级专业版
提示 |
---|
使用编码的 UI 测试编辑器,还可以在操作之前添加延迟。有关详细信息,请参阅如何:使用编码的 UI 测试编辑器在 UI 操作之前插入延迟。 |
UITestControl.WaitForControlXXX() 方法
UITestControl.WaitForControlXXX() 方法 |
说明 |
---|---|
等待控件准备好接受鼠标和键盘输入。该引擎隐式调用此 API,以便所有操作等待该控件在执行任何操作之前做好准备。但是,在某些复杂方案中,可能必须执行显式调用。 |
|
在向导通过调用服务器对输入执行某些异步验证时,等待控件启用。例如,您可以使用方法等待向导的“下一步”按钮启用。有关此方法的示例,请参见演练:创建、编辑和维护编码的 UI 测试。 |
|
等待控件显示在 UI 上。例如,您希望应用程序执行参数验证后显示一个错误对话框。验证所需的时间不是固定的。您可以使用此方法等待错误对话框。 |
|
等待控件从 UI 消失。例如,可以等待进度栏消失。 |
|
等待控件的指定属性达到给定值。例如,可以等待状态文本更改为“已完成”。 |
|
等待控件的指定属性达到指定值的相反值。例如,可以等待编辑框变为不是只读的(即可以编辑)。 |
|
等待指定谓词变回 true。这可用于给定控件上的复杂等待操作(如 OR 条件)。例如,您可以等到状态文本变为“成功”或“失败”,如下面的代码所示:
|
|
所有上述方法都是 UITestControl 的实例方法。此方法是静态方法。此方法也等待指定谓词变为 true,但它可用于多个控件上的复杂等待操作(如 OR 条件)。例如,您可以等到状态文本变为“成功”或等到显示错误消息,如下面的代码所示:
|
所有这些方法都有以下行为:
如果等待成功,则这些方法返回 true;如果等待失败,则返回 false。
等待操作的隐式超时由 WaitForReadyTimeout 属性指定。此属性的默认值为 60000 毫秒(1 分钟)。
这些方法有一个重载,可接受以毫秒为单位的显式超时。但是,当等待操作导致对控件进行隐式搜索时,或者当应用程序正忙时,实际等待时间可能要长于指定的超时。
上述函数功能强大并且很灵活,几乎可以满足所有应用条件。但是,如果这些方法不能满足需要并且您需要在代码中对 Wait 或 Sleep 进行编码,建议使用 Playback.Wait() 而不要使用 Thread.Sleep() API。原因包括:
可以使用 ThinkTimeMultiplier 属性修改休眠持续时间。默认情况下,此变量为 1,不过,您可以将其递增或递减,以更改整个代码的等待时间。例如,如果您专门在较慢的网络或某些其他速度较慢的条件下进行测试,则可以在一个位置(或者甚至在配置文件中)将此变量的值更改为 1.5,以便将所有位置的等待时间都增加 50%。
Playback.Wait() 在 for 循环的一小块代码块中内部调用 Thread.Sleep()(进行上述计算之后),同时检查用户取消\中断操作。换言之,通过使用 Playback.Wait(),您可以在等待结束之前取消播放,而休眠可能引发异常,也可能不引发异常。
提示 |
---|
通过编码的 UI 测试编辑器,可轻松地修改编码的 UI 测试。使用编码的 UI 测试编辑器,可以查找、查看和编辑测试方法。也可以在 UI 控件图中编辑 UI 操作及其关联控件。有关详细信息,请参阅使用编码的 UI 测试编辑器编辑编码的 UI 测试。 |
指导
有关更多的信息,请参阅使用 Visual Studio 2012 测试持续交付 – 第 5 章:实现系统测试的自动化。
请参见
任务
如何:使用编码的 UI 测试编辑器在 UI 操作之前插入延迟