在我使用Coded UI Tests进行测试的程序中,我有一个窗口只能打开一秒左右,我想验证此窗口是否正在打开。
有没有办法冻结程序,或让它运行缓慢,以便测试能够找到该窗口?
答案 0 :(得分:3)
正如我在评论中已经提到的那样,CodedUi Test
可以用来捕捉窗口的内容并不多(可能没有),因为此功能内置于应用程序中。
我的建议是让这个属性可配置。被测应用程序中的某些属性需要是可配置的,因此可以进行测试。请考虑以下要求:
你会如何测试它们?你会等一个月或一年过去吗?这些参数必须可用于Qa团队,否则无法进行测试。我知道通过这种方法,您必须对应用程序的代码和构建进行更改,但我认为这是解决它的唯一方法。
答案 1 :(得分:1)
添加Thread.Sleep(100)怎么样;
答案 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毫秒,也会捕获信息。
我们在项目中做了类似的事情。