QTP无法录制某些控件的操作的解决方法

上一篇 / 下一篇  2009-09-26 19:29:41 / 个人分类:QTP

今天趁休息,突然觉得应该在精华区浏览一下,于是发现了这篇帖子,觉得对我很有启发。于是在这里做个笔记。
http://bbs.51testing.com/thread-42574-1-1.html

问题:QTP无法识别某些自制的控件或无法录制某些控件的操作。

解决方案:

1.添加相应的Add-in。例如如果是测试Java 类的程序,就要加载 Java Add-in。
    QuickTest Professional Java 6.5 Add-in 、QuickTest Professional Oracle 6.5 Add-in 、QuickTest Professiona Siebel 8.0 Add-in 和 QuickTest Professional Terminal Emulator 8.0 Add-in。每个版面的QTP可以加载的 Add-in可以在相应的QTP_Install_Guide.pdf 和Main_Users_Guide.pdf 中找到。

2.把不能识别的对象设置为虚拟对象(VirtualObject)
     Tools-->Virtual Objects-->New Virtual Object,就会出现 Virtual Object Wizard 对话框,把添加一些支持的不好的控件设置成虚拟控件,也就添加到对象库了。(但是似乎我没看到有editbox控件,只有button,table,checkbox,list和radiobutton)但是据我所知,虚拟对象是依赖于坐标位置的,假如页面移动了,就会识别不到。

添加虚拟对象后可以解决问题实例有:
   http://bbs.51testing.com/thread-60897-1-6.html


3,把QTP不能录制的对象手工添加到object repository, 然后写代码实现需要的操作。详细信息请参考:
    http://bbs.51testing.com/thread-45142-1-6.html  中的#7   

    这个帖子里的邮件内容写不进去,其实和我前几天那篇163邮箱的博客类似。因此在这里我得到了另一个解决方法,我已经加入了那篇博客中,这里highlight一下,就是本来上次那篇看到用的是object.document.write方法写入邮件内容的,但是之后就无法手工修改比如加入一些内容了,这篇帖子用的是object.innerText="abc",居然效果不错。

4. 针对特殊问题有特殊的解决方法。如果不能识别的控件是用VC做的,那么你可以自己写一个动态链接库,然后让QTP去调用它。至于QTP如何调用动态链接库,请看附件。(这个方法我还是不太理解,主要对dll不熟悉,以后要继续好好学习,先在这里做个记录)

 

另外,我在这篇帖子中还发现了一篇Keyword-Driven Testing的文档。已下载。更加清晰的明白了其意义及特点。

1. 测试人员不需要录制测试脚本,而是设计测试脚本。因为建立测试脚本的过程,就像是在一个Excel文件上设计测试用例一样。因为您的应用软件就要有用户界面UI就可以了,并不需要真的可以操作。所以测试人员不需要等到应用软件已经开发得差不多,才开始建立测试脚本。测试人员可以更早就开始建立测试脚本了。有点像XP所说的“测试先行”的概念。
2.同时在建立测试脚本的过程中,测试步骤的文件也同时产生。
3.所以这里有一点就是要先把对象库建好,把UI上该加的对象加上去,然后就可以在keyword view里操作啦~

Note: 以后我要养成习惯将那些Object名称很奇怪、或是看不出代表哪一个Object的Object名称作个修改。例如我将原本名为Button_5的 Object,改名为NewOrder。

2009-09-27补充:

今天受益于另一篇精华贴,补充2点。
http://bbs.51testing.com/thread-41992-1-5.html

5.更改QTP自身对某控件的识别方式,在 tools——Object Identification中。在这里列出了所有QTP能识别的控件,以及控件的识别方式。你可以给他添加X、Y坐标进行识别。或更明显的,列表中的信息,不按名称识别,而是按ID识别。这个修改可以解决一些问题,具体的赶紧动手试试吧……(关于Object Identification,我一会儿独立写一篇文章,可以参考一下)

6.使用低级录制或鼠标录制。用Test—LowLevelRecording/AnlogRecording 吧,用它录制就不需要什么设置了,他会记录你的程序控件相对屏幕的位置。用LowLevelRecording还有代码可改,用AnlogRecording动作就被封装了(维护性极差)。两者因实际环境更取其长吧……

 


TAG:

 

评分:0

我来说两句

我的栏目

日历

« 2024-04-24  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 26965
  • 日志数: 30
  • 建立时间: 2009-09-19
  • 更新时间: 2012-09-02

RSS订阅

Open Toolbar