|
说明:本总结不涉及相对路径的应用
以下为获取当前路径的三种方法,包括QTP和vbs的或二者都可用的。
以下为本人实验过的。用的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。 |
|