一个UI自动化的小例子
作者:网络转载 发布时间:[ 2011/11/17 14:18:40 ] 推荐标签:
随便用一个小例子来解释一下UI自动化的开发吧.
我先现在有一个Button是disable的状态,一旦Button enable,我们Click弹出一个窗口.
我们使用的测试工具有同步的功能.
1.自动化工具生成的程序(发现和操作控件,不能真正运行)
button=FindButton();
ClickButton(button);
2.傻瓜的自动化程序(通过加入sleep变成可以运行的程序)
button=FindButton();
Sleep(10);
ClickButton(button);
Sleep(10);
window=FindWindow();
3.简单的自动化程序(加入同步,使得更可靠和有效率)
button=FindButton();
WaitButtonEnable(button);
ClickButton(button);
window=WaitWindowOpen();
4.完整的自动化程序(保证可靠,没有测试程序bug,简单写了一下,没有包含exception的控制,时间急,可能也会有错误,不过是这个意思)
Button button=null;
for(int i=0;button==null&&i<3;i++) //如果FindButton不稳定,调用三次in case
{
button=FindButton();
if(button==null)
{
Log.Error("Tryout{0}:Can not find button",i); //测试工具不稳定
}
else
{
break;
}
}
if(button==null)
{
Log.Error("Cannot find button. Quit"); //测试工具找不到button,或者产品问题
Log.Screen();//截图,只是为了示例,以后不再单独写
return;
}
if(!WaitButtonEnable(button))
{
if(button.Enabled==true) //测试工具问题,没有得到enable的消息
{
Log.Error("enabled, but tool didn‘t detect");
}
else//测试工具问题,不能成功检测button的状态,或者产品问题没有enable
{
Log.Error("don‘t enable");
return;
}
Window window=null;
for(i=0;window==null&i<3;i++)//ClickButton不稳定,或者没有得到open event,或者产品问题
{
ClickButton(button);
window=WaitWindowOpen();
if(window==null)//没有click或者没有得到消息,或者产品问题
{
int count=0;
findwindow://FindWindow不稳定,重试3次
window=FindWindow();
if(window!=null) //没有得到消息,但是窗口弹出
{
Log.Error("didn‘t get event");
break;
}
else //没有click,或者产品问题, 或者FindWindow不稳定
{
Log.Error("Tryout{0}:didn‘t get window",i);
count++;
if(count>3)
{
}
else //FindWindow不稳定,workaround
{
Log.Error("goto{0}",count);
goto findwindow;
}
}
}
else //成功
{
break;
}
}
if(window==null)
{
Log.Error("didn‘t get window, maybe tool or product problem.");
return;
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11