QTP测试中外部动作的相对路径与QC不兼容



在我的一个QTP测试中,我调用了同一文件夹中其他测试的外部操作,并提供了相对路径,即在调用(Test1)时仅提供测试名称

当我将这两个测试保存到公共文件夹下的测试计划中的QC时,我看到Test2中的外部操作附加了"缺失"。当我在QTP中打开这个测试时,资源中没有丢失任何内容。我还删除了外部操作,并将Run > Options > Folder中的文件夹路径重置为QC路径,再次插入外部操作,从QC中选择。这个问题仍然存在。如果有人知道如何解决这个问题,请帮助我。

ParentFolder
    Test1
       ReusableAction1.1
       ReusableAction1.2
    Test2
       ReusableAction2.1
       ReusableAction1.1{Test1}  ["Test1" - I used. Not "...Test1"]

相对路径通常用于参考当前执行目录。

从本地运行时,当前目录是存储脚本的文件夹或临时文件夹。但是当脚本从QC运行时,当前执行目录是一个文件夹(如C:\TempHPTD####),每次运行都会更改。

您可以使用FileSystem object或WSH object或QTP的环境变量来检查当前的执行目录。

VBScript的文件系统对象:
Set oFSO = CreateObject("Scripting.FilseSystemObject")
Msgbox "当前执行目录是- " &oFSO.GetAbsolutePathName("。")

方法:
Set objShell = CreateObject("Wscript.Shell")
Wscript。objShell回响。CurrentDirectory

QTP的环境变量:
Current_Directory =环境。值("TestDir")

我不知道为什么相对路径不工作。

如果您有令人信服的理由从本地和QC运行脚本,并且必须使用相对路径,您可以检查QC连接,如果连接到QC,则使用QC测试资源中的绝对路径。

Set qtApp = CreateObject(" QuickTest.Application ")
如果qtApp.TDConnection.IsConnected则
使用QC测试资源路径
其他
使用(相对)本地路径
结束If
Set qtApp = Nothing

QCUtil。如果QTP连接到QC(已连接意味着登录并连接到一个有效的项目),IsConnected将返回True。

最新更新