如何做好.net自动化测试

发表于:2009-11-04 13:53

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:卢晨之    来源:51Testing软件测试网原创

  摘要:主要介绍了如何做好.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内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

《2023软件测试行业现状调查报告》独家发布~

精彩评论

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号