注意: 这可能不是您正在寻找的答案,但这是我发现并证明了自己的答案。
从取消选中Keep UFT open...选项的选项开始,这是直接来自UFT help file的注释:
在测试实验室运行会话结束后保持 UFT 打开:
默认情况下,当 ALM 在测试集期间在远程计算机上打开 UFT 时
运行(或者当它运行从测试中选择的测试或配置时
Lab 模块),它会在该测试实验室运行会话结束时关闭 UFT。
这可确保 UFT 许可证在该点发布并制作
可供其他 UFT 用户使用。
选择此选项会使 UFT 在您的计算机上保持打开状态(并且
在测试实验室运行会话结束后继续使用 UFT 许可证。
注意:上述行为仅在打开 UFT 时相关
从将 SUPPORT_TESTSET_END 参数设置为的 ALM 服务器
Y.(Y 是默认设置)。如果 UFT 从较早的
ALM 版本(或上述参数设置为 N),此
选项被忽略,并且 UFT 在运行结束时始终保持打开状态
会话。
有关 SUPPORT_TESTEND_END 参数的详细信息,请参阅关于
在应用程序生命周期中设置 ALM 配置参数
管理管理员指南。
如前所述,如果 SUPPORT_TESTSET_END 参数设置为 Y,ALM 将默认关闭 UFT。因此,我会就此与 ALM 管理团队核实。
现在对于取消选中 Run UFT in debug mode 选项的选项,您可以将 UFT 应用程序对象的 RunMode 选项保留为 Fast。
注意:您确实不需要进行此更改,因为默认情况下 ALM 将在快速模式下运行 UFT 脚本。
下面是示例脚本,便于理解:
On Error Resume Next
Dim qtApp '~~> Declare the Application object variable
'~~> Create the UFT Application object
Set qtApp = CreateObject("QuickTest.Application")
'~~> If UFT is notopen then open it
If qtApp.launched <> True then
qtApp.Launch
End If
'~~> Make the QUFT visible
qtApp.Visible = FALSE
If Not qtApp.TDConnection.IsConnected Then
'~~> Make changes in a test on Quality Center with version control
qtApp.TDConnection.Connect "QC URL","DOMAIN Name","Project Name","User Name","Password",False
End If
'--------------------------------------------------------------------
Dim defaultRunMode, fastRunMode, normalRunMode
defaultRunMode = qtApp.Options.Run.RunMode
qtApp.Options.Run.RunMode = "Fast"
fastRunMode = qtApp.Options.Run.RunMode
qtApp.Options.Run.RunMode = "Normal"
normalRunMode = qtApp.Options.Run.RunMode
Msgbox "Different RunModes" & VbCrLf & _
VbTab & "DEFAULT RunMode : " & defaultRunMode & VbCrLf & _
VbTab & "After FAST RunMode : " & fastRunMode & VbCrLf & _
VbTab & "After NORMAL RunMode : " & normalRunMode
'--------------------------------------------------------------------
'~~> Script path and script name in ALM
qtApp.Open "[ALM] Subject\QCScriptPath\ScriptName", False
qtApp.Test.Run
qtApp.TDConnection.Disconnect
'~~> Close UFT
qtApp.quit
'~~> Release Object
Set qtApp = Nothing
'~~> Handle Error
If Err.Number <> 0 Then
Msgbox Err.Number & " : " & Err.Description
Err.Clear
End If
这是 msgbox 的输出: