CodedUITest1

上一篇 / 下一篇  2012-04-18 21:32:10 / 个人分类:CodedUITest

程序说明:

1:在录制第一个操作时,系统已经自动将每一个涉及到的UI界面及其包含的元素加以识别,并记录每一次的操作(点击、键入等),当生成代码时,会把这些东东全部输出下来。

要想查看每一个界面元素的定义,大家可以选择任意一个元素,然后按F12,查看它的声明,并进一步查看它所成的窗口的定义。

例如第一个被点击的按钮uIOKButton,它位于UIInstallerLanguageWindow中,而UIInstallerLanguageWindow则是依靠SearchProperties属性具体定位的。

 

2:我们点击按钮、选中CheckBox,对应的操作就是Mouse.Click或者某CheckBox.Checked,如果我们有复杂的安装需求,可以按照这样的思路进行定制。

 

3:在实际的安装或者参数的设置时,往往有某些控件不可见/不可用,只有满足了某种条件才会可见/ 可用。就象本文的例子中,对于正在进行安装的窗口,其Next按钮是不可用的,见下图:

该按钮会在安装完成后可用,如果程序在这时要点击这个Next按钮,会导致程序报错,这时怎么办呢?

按照很多人的编程习惯,往往会用sleep(5)来解决,但这也有问题,不同的计算机性能不同, 在一台计算机上设置好的时间,在另外一台上可能过短,如果把时间设足够长,又会导致效率下降。
Coded UI Test提供了一系列方法处理这类问题,如下:

WaitForControlCondition():控件满足某种条件后再往下执行
WaitForControlEnabled():控件有效后再往下执行
WaitForControlExist():控件可以被找到后再往下执行
WaitForControlNotExist():控件不存在时再往下执行
WaitForControlPropertyEqual():控件的某个属性等于等值后再往下执行
WaitForControlPropertyNotEqual():控件的某个属性不等于等值后再往下执行
WaitForControlReady():控件准备就序后再往下执行

 

这样,对上同样例子中的倒数第二行代码,在程序安装时,由于要花费一定的时间,uIRunNotepadv596CheckBox所处的窗口还没有显现,uIRunNotepadv596CheckBox自然还无效,因此,对于性能较的计算机,执行到这句话时可能出错,为了保险,可以在之前增加一行代码:

uIRunNotepadv596CheckBox. WaitForControlReady();

然后再执行后面的:

uIRunNotepadv596CheckBox.Checked = this.DoInstallParams.UIRunNotepadv596CheckBoxChecked;

就可以保证该控件是在有效的情况下执行后面的操作了。  

 

4:控件的名称、窗口的名称都是程序自动生成的,如果觉得命名不好,可以用Visual Studio 提供的重构-改名功能进行替换。

 

5:程序的入口是public void CodedUITestMethod1(),默认是无参数的,如果需要在安装中设置复杂的参数,以及把安装程序的路径传递进去,可以在此增加参数,然后把参数传递到具体的执行方法DoInstall()

2:新建另一个工程(可以是Windows,也或以是类库),引用上述的测试工程,然后在代码先中调Init(),然后直接调用安装的主程序,如下:

TestMagager.Init();

CodedUITest1 t = new CodedUITest1();
t.CodedUITestMethod1();

 


TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2021-11-24  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 1919
  • 日志数: 4
  • 书签数: 1
  • 建立时间: 2011-07-16
  • 更新时间: 2016-07-05

RSS订阅

Open Toolbar