如何从无UFT的本地机器远程执行虚拟机中UFT的VBS脚本?
嘿,我来给你梳理几个实用的方案,帮你实现从本地无UFT环境远程调用虚拟机里的UFT脚本,还能封装成URL让整个团队轻松使用:
方案一:通过远程COM直接调用VM里的UFT(适合个人测试或简单场景)
这种方式不需要额外搭建服务,直接利用Windows的DCOM机制远程调用UFT的COM对象:
前置准备:
- 确保VM开启了远程桌面,本地机器能正常通过RDP连接到VM
- 在VM上打开UFT,依次点击
工具 > 选项 > 运行,勾选允许远程运行自动化 - 配置VM的DCOM权限:
- 打开VM的「组件服务」,找到「计算机 > 我的电脑 > DCOM配置」
- 找到
QuickTest.Application,右键「属性」→「安全」标签页 - 分别设置「启动和激活权限」「访问权限」为「自定义」,添加本地机器的用户/组,赋予允许权限
- 开放VM防火墙的DCOM端口(默认135),或者直接允许UFT进程通过防火墙
本地调用代码示例(VBS):
' 替换成你的VM计算机名或IP Dim vmName : vmName = "VM-UFT-01" Set qtApp = CreateObject("QuickTest.Application", vmName) qtApp.Launch qtApp.Visible = True ' 可以设为False后台执行 qtApp.Open "C:\UFT_Scripts\你的脚本文件.vbs", False ' 替换成VM里的脚本路径 ' 执行脚本并获取结果 Dim testResult : testResult = qtApp.Test.Run() WScript.Echo "脚本执行状态:" & testResult.Status qtApp.Test.Close qtApp.Quit Set qtApp = Nothing
方案二:在VM上封装成Web服务(核心方案,适合团队共享成URL)
如果要做成可访问的URL让团队成员直接使用,最稳妥的方式是在VM上搭建一个轻量Web服务,把UFT脚本调用逻辑封装成HTTP接口:
示例:用Python Flask快速搭建服务
- 在VM上安装Python和Flask、pywin32库:
pip install flask pywin32 - 编写Flask服务代码(保存为
uft_service.py):from flask import Flask, request import win32com.client import logging app = Flask(__name__) # 配置日志,方便排查问题 logging.basicConfig(level=logging.INFO) @app.route('/run-uft', methods=['GET']) def run_uft_script(): script_path = request.args.get('path') if not script_path: return "参数错误:请传入脚本路径(?path=C:\\UFT_Scripts\\test.vbs)", 400 try: logging.info(f"开始执行脚本:{script_path}") qt_app = win32com.client.Dispatch("QuickTest.Application") qt_app.Launch() qt_app.Visible = False # 后台执行,不显示UFT界面 qt_app.Open(script_path, False) # 执行脚本,可根据需要添加参数 test_run_result = qt_app.Test.Run() qt_app.Test.Close() qt_app.Quit() status = "成功" if test_run_result.Status == 0 else "失败" logging.info(f"脚本执行完成:{status}") return f"脚本执行结果:{status}\n详细状态码:{test_run_result.Status}" except Exception as e: logging.error(f"执行失败:{str(e)}") return f"执行出错:{str(e)}", 500 if __name__ == '__main__': # 允许所有IP访问,端口设为5000(可自定义) app.run(host='0.0.0.0', port=5000, debug=False) - 在VM上启动服务:
python uft_service.py - 团队成员只需在浏览器或工具中访问:
就能远程触发VM里的UFT脚本执行了http://VM的IP地址:5000/run-uft?path=C:\UFT_Scripts\你的脚本.vbs
- 在VM上安装Python和Flask、pywin32库:
进阶优化建议:
- 添加身份验证(比如API Key),避免未授权调用
- 支持POST请求传递更多参数(比如测试环境、数据)
- 把服务注册成Windows服务,实现开机自启
- 增加脚本执行状态查询接口,方便查看进度
关键注意事项
- 确保VM的UFT版本是支持远程自动化的(UFT 12及以上都支持)
- 如果遇到COM调用失败,优先检查DCOM权限和防火墙设置
- 远程执行时尽量把UFT设为
Visible = False,减少VM资源占用
内容的提问来源于stack exchange,提问作者bala raju
相关产品推荐
相关产品推荐

