`
isiqi
  • 浏览: 16558907 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

QTP一些问题的解决方法

阅读更多

以下是我经常遇到的问题:
一、无法识别控件。
二、错误回放过程未知弹出窗口。
三、加载.net插件后和TD的关联问题。
四、动态加载元素的识别问题。
五、调用外部dll的问题。
六、随机验证码的问题。

问题一,解决办法有三种:
1、更改QTP自身对某控件的识别方式,在tools——Object Identification中。在这里列出了所有QTP能识别的控件,以及控件的识别方式。你可以给他添加XY坐标进行识别。或更明显的,列表中的信息,不按名称识别,而是按ID识别。这个修改可以解决一些问题,具体的赶紧动手试试吧……
2
、使用虚拟物件,来定义一个控件,在tools——Virtual Object中。在这里可以自定义一个控件。例如在ASP的程序中,程序出错,在客户端的表现形式大部分是一样的,你可以把整个错误页面当成一个控件来识别(感觉不错)。如果加一个判断,出错后你想做什么就由你自己定了。
3、使用低级录制或鼠标录制。用Test——LowLevelRecording/AnlogRecording吧,用它录制就不需要什么设置了,他会记录你的程序控件相对屏幕的位置。用LowLevelRecording还有代码可改,用AnlogRecording动作就被封装了(维护性极差)。两者因实际环境更取其长吧……

问题二的解决过程:
关于弹出提示的问题,我当时需要情况是这样的。一个信息录入系统,由于数据量很大,查询需要一段时间。QTP回放时动作比较快,点了保存,程序还没反应过来它就进行了下一步操作。这时的操作就和录制时不一样了,程序给出一个提示,但这个提示是录制过程没有的。弹出框是一般都是POP形势(至上)的,导致QTP无法继续回放,结果就是回放失败。
解决办法有两个:
1、进行判断,当出现这个提示时,点是//取消按钮。
2、通过Tools——Recorvery Scenario Manager设置默认操作。
我最初就是用的第一种方法。写一个函数判断是否出现这个提示,如果出现就点取消然后wait(2)每个可能出现弹出框的动作后都调用一次这个函数。虽然可以解决这个问题,但回放的效率就低了,而且需要你预知提示框的信息。
当我知道了第二种方法,显然更科学^_^。它可以对所有预知甚至不知的提示进行指定的操作。
实际上,当程序出现了未预知的提示时,可能就是程序的BUG,所以使用上述办法解决工具问题时,也要考虑是否会掩盖程序的缺陷。

问题三的解决办法:
用好QTP后,会不自觉的和TD关联起来。但从TD直接启动QTP时,程序只会加载QTP自带的插件,如果你安装了其它插件(如.netjavaetc.),默认是不加载的。这会导致上传的脚本无法正确执行。解决办法很简单,去Test——Setting里进行Modify吧。从本地打开的脚本,这里不能进行Modify的。所以办法很简单,但如果不知道的话就很难了。当初为这个问题我可是废了八牛三虎之力呢……

问题四的解决过程:
当我开始改代码时,定义一个动作,然后可以生成N个动作。假设N个动作产生了N个结果,你要对这结果进行处理时,你会发现这N个结果都不能被识别:

网页上有个表格,是往数据库里加数据的。
两个表格显示在同一个页面上,左边为父表,右边为子表。
点击左表,右表显示其子项目。
结构如下:
A
├─1
├─2
├─3
└─4
B
├─1
├─2
├─3
└─4
……
思想很清晰:
添加一个父项A、选中此父项A、对其添加子项1234
添加一个父项B、选中此父项B、对其添加子项1234 ……

代码也很简单:
dim M '定义父项数
dim N '定义每个父项包含的子项数

For i=1 to M
Call
添加父项( i )
选中父项( i ) '问题就出在这里
For j=1 to bwfl step 1
Call
添加子项( j )
Next
Next

现在问题出来了,思路应该没有问题(除非这方法真的行不通),循环也是顺着思想来的。

问题是,无法实现选中的父项(最多识别到一个)。
由于此循环可以在录制过程进行,如果不改变变量名称,循环可且只可以成功运行一次。问题是这个名称都是从DataTable里获取的。
因为,在运行过程中生成的项目没有加到对象库中,无法被识别。

这个问题最后是从思想上解决的。答案是我做的是功能测试,为什么不先加父项,检查父项的功能是否正常,然后再去测子项的功能。不去改变名字,因为那没有必要。核心答案功能测试、测试功能。即对测试工具首先需要有正确的认识。
当然,这个问题可以用代码去实现,但那需要有一定的编程功底且耗时,可维护性不一定好。有需要的朋友可以去试一下,然后把你的经验也共享一下。 *^_^*

问题五,是对QTP很大的一个扩充。
对于QTP调用外部DLL的功能,由于我的编程功底不够,没有相关人士配合我,我只能望之垂涎了!
如果能调用外部DLL的话,QTP的功能就可以变得很强大。自己写的程序,自己编一些过程用QTP进行测试,我想后果很严重。真想有一次给我尝试的机会……


问题六,解决办法有4个:
1、测试的时候,让程序员把这块限制去掉,免去验证这关。
2、让程序员提供一个万能验证码,测试可以绕过这一关。
3、请程序员提供识别的方法,从获取的图片读出验证数据,再传给QTP
4、进行位图检查,将验证码分段进行图像验证。
实际上,验证码的目的就是防止用程序灌水或机器录入信息。所以有点为难我们测试了。
方法1,如果程序已在发布并有客户使用,危险性是可想而知的。方法2虽然可以解决验证这一关,但跳过了输入码与验证码一致性问题。方法3就需要程序员配合了,可能就需要调用DLL了。方法4却将图像分段,把获取的图像和已经的图像进行比对,比对通过取对应的值;这个在数字验证会好做一点,因为最多就四个图像的比对。

分享到:
评论

相关推荐

    QTP一些常用问题的解决方法

    以上就是关于QTP一些常用问题的解决方法,每个问题都需要结合具体的项目环境和需求来处理。在实践中不断学习和积累经验,可以更有效地解决QTP使用中遇到的问题。通过深入理解和熟练运用这些知识,可以提升测试工作的...

    qtp9.2 License过期解决方法

    本文将详细介绍QTP 9.2许可证过期问题的解决方法。 #### 一、理解QTP许可证机制 QTP 9.2的许可证机制主要包括以下几个方面: 1. **许可证类型**:QTP支持多种类型的许可证,包括永久许可证、时间限制许可证等。 2...

    qtp与td连接方法及常见问题解决方法

    ### qtp与td连接方法及常见问题解决方法 #### 一、qtp与td的连接方法 ##### 1. 安装TD插件至QTP - 首先确保已经安装了Test Director (TD) 和 Quick Test Professional (QTP)。 - 打开浏览器,访问 `...

    QTP10安装包、破解方法、安装指导、安装插件问题解决

    QTP10安装包、破解方法、安装指导、安装插件问题解决方案

    qtp启动问题

    #### 二、QTP启动常见问题及解决方法 ##### 2.1 启动时死机或报错 在使用QTP的过程中,用户可能会遇到QTP启动时死机或报错的情况。这通常与系统环境配置、QTP软件版本兼容性以及一些系统临时文件有关。本文将详细...

    QTP解决验证码问题的文档

    QTP解决验证码问题的文档 本文档主要介绍了使用QTP9.5解决图片验证码的方法,该方法利用QTP9.5的OCR机制抓取文本内容。在QTP9.5中,对象识别能力有了进一步改善,其中针对文本识别方面进行了优化,引入了ABBYY公司...

    QTP常见问题及解决办法

    **QTP(QuickTest Professional)**,现在被称为UFT(Unified Functional Testing),是HP公司...在文档《QTP自动化测试常见问题集解决办法.doc》中,应该会更详细地列举更多问题及解决方法,建议查阅以获取完整信息。

    QTP安装过程中遇到的问题

    1. **重启计算机**:首先尝试简单的重启,有时这能够解决一些临时性的问题。 2. **注册表清理**:如果重启无效,则需要手动清理注册表中的残留信息。 - 打开注册表编辑器(通过“开始”->“运行”,输入`regedit`...

    qtp安装和调试方法

    二、QTP调试方法 1. **录制与回放**:QTP的基础操作包括录制用户操作并生成脚本。在录制模式下,QTP会捕捉你在应用中的每一步操作,并将其转化为脚本代码。 2. **脚本编辑**:在录制结束后,你可以打开脚本编辑器...

    QTP127个问题

    解决方法包括更新对象库,使用“智能识别”或“增强对象识别”。 2. **录制与回放**:QTP可以录制用户操作并生成脚本,但在回放时可能会出现偏差。这可能由于环境变化、浏览器版本更新或对象属性改变导致。需要对...

    QTP疑难问题解答(不能识别对象)

    解决方法包括: 1. **检查父对象描述**:确认父对象的描述是否正确无误。 2. **重新录制包含父对象的部分**:通过重新录制的方式更新父对象的描述。 3. **手动调整父对象描述**:在Object Repository窗口中手动调整...

    QTP

    通过使用描述性编程,可以解决对象的识别问题,尤其是在复杂的应用环境中。 总结来说,QTP是一个强大且灵活的自动化测试工具,通过学习和掌握其核心概念、函数、对象识别方法以及脚本设计技巧,测试工程师能够有效...

    QTP无法录制时插件

    然而,在使用QTP进行自动化测试时,有时会遇到一些问题,比如"QTP无法录制时插件"的问题,这通常是由于QTP无法识别特定浏览器或环境设置导致的。本文将详细探讨如何解决在使用QTP录制脚本时遇到的IE8识别问题。 ...

    WIN7下安装QTP10.0问题集合

    WIN7系统下下安装QTP10.0出现的问题集合及解决方法

    qtp9.2.rar_QTP9.2

    QTP 9.2版本是该产品线的一个重要里程碑,它提供了更加强大和全面的自动化测试解决方案。在本压缩包文件中,我们主要聚焦于QTP 9.2的功能、使用方法以及它在实际测试项目中的应用。 一、QTP 9.2核心特性 1. **智能...

    QTP新学者必读,学QTP的都可以看看

    此外,可能会介绍一些实用的技巧和常见问题的解决办法。 3. **QTP简介**:文档可能提供QTP的基本概念和工作原理,例如它的对象识别机制,智能识别技术,以及如何通过测试脚本来模拟用户操作。理解这些概念对于理解...

    qtp课堂学习笔记qtp课堂学习笔记

    ### QTP基础知识与常见问题解决方法 #### 一、QTP简介 QTP(Quick Test Professional)是一款由Mercury Interactive开发的功能性测试工具,后来被HP收购并更名为UFT(Unified Functional Testing)。QTP主要用于...

    对于QTp录制对象不能识别链接的解决方案.docx

    - **注意事项**:即使注册成功后问题仍未解决,也无需过分担心,因为还有其他解决方法可以尝试。 3. **注册IE为Browser控制程序** - **操作方法**:通过QTP提供的Register New Browser Control Utility工具,手动...

    QTP 10.0 R6025 pure virtual function call的解决方法

    针对QTP 10.0 R6025的这个问题,以下是一些具体的解决步骤: 1. **检查服务状态**:确保“Windows Installer”服务已启动并设置为自动启动。此服务负责安装、修复和卸载软件,包括QTP及其依赖项。 2. **删除旧的...

Global site tag (gtag.js) - Google Analytics