摘要:主要介绍了如何做好.net在CS的自动化测试。
关键词:.net、自动化测试
QTP是做Web自动化一个很好的工具与利器,但同时QTP对.net在C#等程序的控件识别能力却不是很理想,所以这也让人望而生畏。可能公司买了QTP与.net的插件,让测试组开始实施这个项目的自动化。但发现测试用例中有40%因为控件识别的问题不能实现,使得这部分用例手工完成而浪费大量时间,更糟糕的是你还要面对你上司的责问。其实,你能做得更好。希望读了这篇文章能给大家带来启发。
控件
由于微软的控件的外观、功能不是很丰富,所以很多公司采用了第三方控件,这也是QTP的.net插件对它们的识别存在一定的局限性的主要原因。或者可以这么说,.net插件的诞生并非一个完整品,因为这些主流第三分控件也只被封装了部分功能与对象。而面对这些第三方控件,我们需要做的第一件事情就是先获取这个控件的信息。我们使用的是QTP的SPY功能去获取这个控件的信息,如下图:
我们可以获取到的这个控件包括“CompanyName”,“swftypename”等信息。而我们这里主要获取这个控件的“swftypename”它的值是“DevExpress.XtraNavBar.NavBarControl”。通过这个值,我们知道了这个控件是DevExpress。同样,我们在QTP的帮助文档中也可以看到,.net插件也有部分对象是支持这个控件,同时还支持Microsoft、Infragistics、ComponentOne这几个控件。
……………………
查看全文请点击下载:http://www.51testing.com/html/17/n-172317.html
使用这些控件方法与属性的建议:
1、部分控件在封装时候,需要加多Editable或者visitable等属性加以判断,因为部分的方法无论是否能够修改都会修改掉这个值。包括QTP的内置方法,SwfTable中的SetCellDataSetCellData等等,也就是说这个是存在一定风险,没能很好的检测我们需要的结果。
2、最好使用鼠标控制结合键盘操作。使用Swfwindow().type结合Swfwindow().swfObjet().click x,y方法操作。X,Y的获取一般可以通过对象的Bounds属性取得它的坐标。例如:
3、使用Object,GetType.Name能够帮你得到当前对象的类型,这个也能让你更快的搜索出相关的API。
实例
透过上面与大家分享的理论知识,现在我们先挑个“软柿子”捏捏,这个就是SwfTable。我们打开QTP的帮助文档,看到文档中正好提示支持这个控件,DevExpress XtraGrid 。如果使用这个控件,你或许会发现某些Table的方法它是不支持的,因为QTP没封装得很彻底的缘故。
1、我们添加这某个Table进对象库,而我们Spy出来的type是DevExpress.XtraGrid.GridControl这个控件。
2、使用.net Windows Forms Spy,查看这个对象,或者查看源代码与网上搜索相关代码,不难发现这个对象下面有一个MainView或者Views的对象,它就是存放了大部分对象的一个“容器”。而我们在API中看到,这个MainView其实包括了3种View类型:GridView,CardView,TreeView。
3、而我们通过下面代码获取这个View是属于什么类型:
Swfwindow().swfTable().Object.MainView.getType.name
……………………
查看全文请点击下载:http://www.51testing.com/html/17/n-172317.html
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。