扼杀QTP检查点(完结篇)

发表于:2009-7-22 15:09

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

 作者:卢晨之    来源:51Testing投稿

  前言

  有一天,一家学校的校长在典礼上叫了Tom的名字,这时候有8位学生都站了出来。校长事先已经记住了排队顺序中第3个班的Tom就是他要叫的。但由于今天班级顺序都打乱了,校长看了,只能再次叫道,父亲是Jack,出列。幸运的是,这个时候学生只有2位。校长再加了个条件,爷爷叫William,父亲是Jack的出列.最后,就只剩下一个学生出列。

  在做WebQTP自动化测试时候,不免会出现这样几种情况:

  • QTP中相同属性的对象,通过添加Index去区别;
  • 页面元素动态变化,难以通过Index去识别;
  • 想根据文本提示不同,对相同类型元素做操作,却无从下手;

  而我们透过上面的故事可以知道,原来我们可以透过节点去解决这些问题,但要怎么做呢?

  一、简单了解Html节点

  大部分做过Web 测试的测试员们都会偶尔好奇的看看程序的Html代码,也可能了解了Html节点,节点的特点就和树一样,能够让你更轻松的遍历出你需要的元素。例如:

  在这里面,屋子、书架、书本 是节点,而我们就是通过这些节点去遍历得到我们想要的东西。通过上面的例子,我们也同样看到,使用不同的名字的书架,尽管有2本叫Java Cook Book的书,但都可以准确的得到我们想要的。

  二、辅助工具

  QTP中的Object Spy功能,是在使用QTP过程中比较长用到的功能,但是,QTP对某些表格标记节点、部分排版标记等不能很准确的抓取出来,也就无法透过SPY功能看到Html的节点上下层关系,也不能让我们更好的了解节点与节点之间的联系从而做好编写脚本的工作

  在这里推荐使用的一个工具是微软的IEDevToolBar

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/82/n-141082.html

  四、实战节点

  1、QTP相同属性的对象,如何不通过添加Index去区别?

  首先看看下面的Html代码片,如果读者有兴趣,可以自己建一个Html文件,命名为Test.html,接着把代码片复制下去并保存。

  使用QTP我们把2个“测试”的Link都添加进对象库后,我们会发现对象库会分别给他们都添加一个index 属性。但是我们透过了IEDevToolBar可以看到如下图片的树:

  可以看到原来每个连接分别包含在DIV节点下面,所以要点击第二个连接时候,可以这么写:

  browser("Browser").Page("Page").webelement("html id:=div2").link("index:=0").click

  在这里,先通过ID获取了DIV的这个对象,然后点击它下面的第一个Link。这个方法的优点在于我们不是直接的在Page上寻找Link,而是更为仔细的透过它的父节点来找到它。有些时候对象添加进对象库,由于识别机制问题,若干个对象都被添加为同一个对象,导致了无法操作,这时候,我们如法炮制的使用这个方法,哪么问题也就迎刃而解。

  那么,我们使用这种方法就只能做这点事情吗?你可以带着这个问题继续往下看。

  2、页面元素动态变化,难以通过Index去识别?

  在做自动化项目中,由于用户的权限的不同,菜单、页面显示的效果也不一样,那么我们录制的脚本完全就排不上场,好比下面的2个图片:

  ……………………

查看全文请点击下载:http://www.51testing.com/html/82/n-141082.html

版权声明:51Testing软件测试及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

相关阅读:

扼杀QTP检查点 (连载一)

扼杀QTP检查点 (连载二)

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号