QTP常见问题及解决办法

时间:2022-09-17 08:26:44
 

  问:安装QTP的时候报这个错,是什么原因啊?“安装程序检测到您使用的pdm.dll版本存在问题。Microsoft已报告此版本DLL中存在错误。由于QuickTest Professional使用此DLL,建议您使用修复版本替换它。

  答:直接删掉PDM.DLL或者把它改个名字就可以了,还有就是象上面所说的下载它的新版本了。

  怕不保险的话把它备份一下,删的时候可能系统提示说正在被使用,删不掉,直接到安全模式下删就可以了。或者在别的计算机中,找到pdm.dll文件,覆盖你本机这个文件就可以了。

  问:QTP怎么识别不了日期控件阿?

  环境为asp.net,我已安装了.net插件,可是QTP能够识别日期控件的click事件,回放时,日期一栏却为空,请各位指点一下是怎么回事。

  答:启动时候的插件选项。实在认不出来,也可以使用虚拟对象。

  问:在QTP录制好脚本后,在Keyword view 点某一页面,总出现提示框.提示内容为"当前安全设置禁止运行该页上的ActiveX控制,因此,该页可能无法正常显示",请问在QTP中是否在哪里可以设置,将其提示去掉

  答:这个可以在QTP里面的TOOL---OPTIONS---active SCREEN----advanced..

  把LOAD active controls 这个打上勾就可以了。

  问:QTP中如何参数化link

  答:

Dim eleLink
Dim i,j,Links()
Browser("Browser").Page("Page").Sync
Browser("Browser").Navigate "bbs.51testing.com"
Browser("Browser").Page("测试论坛").Sync
Set objLinks=Browser("Browser").Page("测试论坛").Object.links
i=0
For Each eleLink In objLinks
If Ucase(eleLink.tagname)="A" Then
Links(i)=eleLink.InnerText
i=i+1
End If
Next
For j=0 To i
Browser("Browser").Page("测试论坛").Link("InnerText:=" & Links(j)).Click
Browser("Browser").Back
Next

  问:QTP8.2中调用VB函数的问题(用VBScript写了一些测试脚本需要的几个通用函数,有没有办法可以用类似include的方式进行调用,而不需要每次都把这些函数Copy到新的脚本中)?

  答:有三种方法,详细内容请看:http://www.51testing.com/html/82/n-218382.html

  问:runaction后面能不能接变量(动态调用action,所以从数据库取数据做action名字了,但是调用总是找不到)?

  答:脚本中原有RunAction "testbase [case1]", oneIteration

  把引号中的内容放到Global表中的第22行,然后将代码修改为:

datatable.getsheet("Global")
datatable.setcurrentrow(22)
strLogin=DataTable("ActionName","Global")
RunAction strLogin, oneIteration

  help中也有相关帮助,如:

Syntax
RunAction ActionName, [IterationMode , IterationRange , Parameters]
ActionName : String : The name of the action
问:如何对下拉框中的数据进行参数化?

  答:参数化下拉框选项的两个方法)

  1.通过下拉框对应项的实际值查找!

  Browser("****").Page("****").WebList("****").Select "****”

  将select“****”的值参数化,可以将下拉框中的每一个选项都写到数据表中

  通过下拉框对应项的索引号查找

  Browser("****").Page("****").WebList("****").Select "#"&IndexNum

  比如说下拉框有5个选项)

  IndexNum = Int((5- 1 + 1) * Rnd + 1) 或 IndexNum = RandomNumber(1,5)

  以上代码生成1到5之间的随机数,5是上界,1是下界。

  问:录制过程无法识别对象?

  答:如果是没有相应程序的插件,而导致的对象不能识别,请填加相应的插件.如果是少量的几个控件不能识别的话,可以用合适类型的虚拟对象来代替.当然还有两个万能的办法,就是更改录制模式使用LOW-LEVEL Recording 和 Analog Recording来录制.

  问:无法生成脚本,但对象可以识别

  答:把对象手工添加到对象库中去,然后手工来生成需要的脚本

  问:QTP报告自动跳出,如何设置?

  答:在Options>Run>View results when run session ends。