如题,这是介绍使用CodedUI进行测试和ComponentOne控件的第二篇博文。
http://blog.gcpowertools.com.cn/post/2014/09/05/ComponentOne_CodeUI1.aspx
在上篇中我们针对于ASP.NET和Silverlight技术谈到了在其中创建CodedUI脚本以及脚本的运行重放方法。本篇将讲解在Winforms和WPF下使用CodedUI进行自动化测试的方法。
WinForms
相对于ASP.NET,Siverlight,WPF下的脚本编写,在WinForms下制作CodedUI脚本算是最简单的了。绝大多数置于窗口上的控件都被正确读入,而脚本中记录的操作回频繁回放,让整个测试过程简单很多。
ComponentOne WinForms控件也支持CodedUI测试,在此基础上,我们能编写脚本动作和回放同时使用CodedUI Test Builder能利用控件属性建立assertion断言。
在一些情况下,使用不同的实现方式可以让UICoder更好,更快地识别读入我们的应用,使整个自动测试过程更加高效。
如果您的程序在包装类或原生类中使用了我们的控件产品,使用CodedUITest Builder读入应用时有些要注意的地方。
Tips:在原生类(custom classes)中添加控件会使控件的开放属性在UICoder中被隐藏起来。因此在应用开发过程中要记得设置为其中控件若干属性使其能被定位到以备未来的自动化测试使用。
即使在Winforms应用中,有时鼠标动作也不能被正确读入。
Tips:设置和使用快捷键是一个不错的备选方案,因为键盘操作不受屏幕坐标的限制。
在开发一个应用的过程中,我们倾向于把UI和键盘操作分离开,仅仅将键盘操作作为向文本框输入数据的方式,但对于使用UICoder的自动化测试来讲,键盘动作相对于鼠标操作在不同环境下更具一致性。
键盘操作在含有一大堆菜单和命令控件的应用中会派上用场。我们最好使用键盘动作来构建我们的应用,因为鼠标操作在超过3层菜单的情况下就没那么好用了。
WPF
尽管据我个人接触的WPF与UICoder的项目不多,ComponentOne套件在这两者中的优异表现还是值得来说一说的。
报表控件是我们目前最受欢迎的产品,该产品广泛应用于各类平台,为此我将试着以此为例进行说明。
错误聚焦是是在WPF应用与UICoder中常见的错误之一。在我们的测试中发现存在着测试脚本执行时系统聚焦错误,目标应用未被识别的情况。
Tips:在测试开始之前,请先将所有无用窗口都最小化,最好直接关闭掉这些窗口;以保证我们专与测试目标应用。
此处所列的很多技巧在Winforms与WPF应用中是通用的,此外要注意WPF的AutomationId的支持是基于后端XAML的。
Tips:利用Automation Id进行独立控件的识别
每个控件都具有Automation Id属性,该属性声明在XAML文件中。这个特定属性的存在因其值得不可重复性为同一一面上相同类型控件的识别提供了支持。
向控件中加入AutomationID的方法和简单,如下是代码演示:
<c1chart:C1ChartAutomationProperties.AutomationId="C1Chart1"Height="341" HorizontalAlignment="Left" Margin="189,12,0,0" Name="chart" VerticalAlignment="Top" Width="548"> <c1chart:C1Chart.Data> <c1chart:ChartDataItemNames="P1 P2 P3 P4 P5"> <c1chart:DataSeriesLabel="Series 1"Values="20 22 19 24 25"/> <c1chart:DataSeriesLabel="Series 2"Values="8 12 10 12 15"/> </c1chart:ChartData> </c1chart:C1Chart.Data> <c1chart:C1ChartLegendDockPanel.Dock="Right"/> </c1chart:C1Chart>
经过这样的处理,我们的CodeUI测试中就能方便地识别页面中每个 WPF控件。
关于AutomationID属性的更多内容,请点击以下链接进行查看:
http://msdn.microsoft.com/en-us/library/aa349646.aspx
如果您在使用ComponentOne控件的CodedUI测试工具中遇到任何问题,请随时联系我们的支持小组,我们的小组将在帮助与支持板块为您提供最佳帮助: