You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从无UFT的本地机器远程执行虚拟机中UFT的VBS脚本?

嘿,我来给你梳理几个实用的方案,帮你实现从本地无UFT环境远程调用虚拟机里的UFT脚本,还能封装成URL让整个团队轻松使用:

方案一:通过远程COM直接调用VM里的UFT(适合个人测试或简单场景)

这种方式不需要额外搭建服务,直接利用Windows的DCOM机制远程调用UFT的COM对象:

  • 前置准备:

    1. 确保VM开启了远程桌面,本地机器能正常通过RDP连接到VM
    2. 在VM上打开UFT,依次点击 工具 > 选项 > 运行,勾选允许远程运行自动化
    3. 配置VM的DCOM权限:
      • 打开VM的「组件服务」,找到「计算机 > 我的电脑 > DCOM配置」
      • 找到QuickTest.Application,右键「属性」→「安全」标签页
      • 分别设置「启动和激活权限」「访问权限」为「自定义」,添加本地机器的用户/组,赋予允许权限
    4. 开放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快速搭建服务

    1. 在VM上安装Python和Flask、pywin32库:
      pip install flask pywin32
      
    2. 编写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)
      
    3. 在VM上启动服务:
      python uft_service.py
      
    4. 团队成员只需在浏览器或工具中访问:
      http://VM的IP地址:5000/run-uft?path=C:\UFT_Scripts\你的脚本.vbs
      
      就能远程触发VM里的UFT脚本执行了
  • 进阶优化建议:

    • 添加身份验证(比如API Key),避免未授权调用
    • 支持POST请求传递更多参数(比如测试环境、数据)
    • 把服务注册成Windows服务,实现开机自启
    • 增加脚本执行状态查询接口,方便查看进度
关键注意事项
  • 确保VM的UFT版本是支持远程自动化的(UFT 12及以上都支持)
  • 如果遇到COM调用失败,优先检查DCOM权限和防火墙设置
  • 远程执行时尽量把UFT设为Visible = False,减少VM资源占用

内容的提问来源于stack exchange,提问作者bala raju

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:33:15