51Testing软件测试论坛

标题: QTP当前路径总结 [打印本页]

作者: chenyb85    时间: 2008-10-15 13:40
标题: QTP当前路径总结
说明:本总结不涉及相对路径的应用


以下为获取当前路径的三种方法,包括QTPvbs的或二者都可用的。
      以下为本人实验过的。用的QTP版本为9.2版。

1.
environment("TestDir")

使用environment("TestDir")能获取当前测试的绝对路径,不包括最后的“\
方法
Path = environment("TestDir")

2.
WshShell.CurrentDirectory

注:不包括地址最后的“/
方法
Dim WshShell,path
Set WshShell = WScript.CreateObject("WScript.Shell")
Path = WshShell.CurrentDirectory
以上为vbs中的用法,如果是在QTP中使用,则可以用以下方法(vbs也可以用以下方法):
Dim WshShell,path
Set WshShell = CreateObject("WScript.Shell") ‘就这一句少了“WScript
Path = WshShell.CurrentDirectory
注意:此方法在QTP运行时获取的将是QTP安装目录下bin目录的路径,如果是写在vbs文件中,然后加载到QTP中,在QTP运行时也是获取QTP安装目录下bin目录的路径。但是如果是编辑一个测试脚本(脚本里包含此获取路径方法,或引用的vbs文件包含此获取路径方法),然后保存(不要关闭脚本),这时运行脚本,则此方法将获取测试脚本存放的当前路径。关闭脚本再打开运行,则还是会获取QTP安装目录下bin目录的路径。因此在调试时可能是正常的,但到运行时就出错了。
       而如果用environment("TestDir"),则获取的都是当前测试的存放路径,但是不能用在VBS文件中(除非此文件是加载到QTP中运行的,那就可以)。
QTP安装目录下的bin路径:C:\program files\Mercury Interactive\QuickTest Professional\bin

3.
left(Wscript.ScriptFullName,len(Wscript.ScriptFullName)-len(Wscript.ScriptName))

注:包括地址最后的“/
方法
Path = left(Wscript.ScriptFullName,len(Wscript.ScriptFullName)-len(Wscript.ScriptName))
注意:此方法只能用在单独的vbs文件中,加载到QTP中的vbs文件如果含有此方法也会报错。因为QTP不支持WScript
作者: fwlikexbx    时间: 2008-10-15 14:34
b cuo  机械谢谢 学习一
作者: huizhen    时间: 2008-12-5 11:39
貌似在使用第2种方法通过vbs实现的时候,会提示WScript对象不存在?还需要先建立对象吗?再尝试一下,呵呵
第一中方法很不错哦,简单
作者: yuandjing    时间: 2008-12-5 11:47
谢谢楼主
总结的很好




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2