如何判断脚本是从ALM测试实验室运行还是直接从UFT启动?
判断脚本是否从ALM测试实验室远程运行的方法
针对你的需求,这里有几种可靠的判断方式,帮你区分脚本是从ALM远程启动还是直接在UFT本地运行:
利用UFT原生的
Application对象属性
UFT内置的Application对象提供了IsConnectedToALM属性,直接读取就能判断当前脚本是否和ALM处于连接状态,这是最简洁的方法:Dim isFromALM isFromALM = Application.IsConnectedToALM ' 仅在本地UFT运行时显示输入提示 If Not isFromALM Then MsgBox "请输入数据:" End If检查
TDConnection连接状态
当脚本从ALM启动时,UFT会自动初始化TDConnection对象并保持连接;直接本地启动时,该对象未连接。可以通过以下代码验证:On Error Resume Next Set tdConn = CreateObject("TDApiOle80.TDConnection") Dim isFromALM isFromALM = False If Err.Number = 0 Then If tdConn.IsConnected Then isFromALM = True End If End If On Error GoTo 0 If Not isFromALM Then MsgBox "请输入数据:" End If读取ALM专属环境变量
从ALM远程运行脚本时,系统会自动注入如ALM_TEST_ID、ALM_RUN_ID这类环境变量;本地UFT启动时这些变量不存在。可以通过读取环境变量判断:Dim isFromALM isFromALM = False Set wshShell = CreateObject("WScript.Shell") ' 尝试读取ALM_TEST_ID变量 almTestId = wshShell.ExpandEnvironmentStrings("%ALM_TEST_ID%") If almTestId <> "%ALM_TEST_ID%" Then isFromALM = True End If If Not isFromALM Then MsgBox "请输入数据:" End If注:部分部署环境下这类变量可能未被设置,建议优先使用前两种方法。
内容的提问来源于stack exchange,提问作者msacks
相关产品推荐
相关产品推荐

