QTP测试中外部操作的相对路径不适用于QC

时间:2011-11-17 13:32:41

标签: qtp

在我的一个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"]

1 个答案:

答案 0 :(得分:0)

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

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

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

VBScript的FileSystem对象:
设置oFSO = CreateObject(“Scripting.FilseSystemObject”)
Msgbox“当前执行目录是 - ”& oFSO.GetAbsolutePathName( “”)

WSH方法:
设置objShell = CreateObject(“Wscript.Shell”)
Wscript.Echo objShell.CurrentDirectory

QTP的环境变量:
Current_Directory = Environment.Value(“TestDir”)

我没有看到任何其他原因让相对路径无效。

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

  

设置qtApp = CreateObject(“QuickTest.Application”)
  如果qtApp.TDConnection.IsConnected然后
  '使用QC测试资源路径
  否则
  '使用(相对)本地路径
  结束如果
  设置qtApp = Nothing

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