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

能否在QC应用外部运行测试集?如何实现测试集自动化执行?

在QC/ALM外部运行测试集的实现方案

别担心,完全可以在QC应用程序外部运行测试集!你们团队要实现每日夜间自动执行测试集的需求非常普遍,下面给你详细拆解几种可行的方案:

1. 用命令提示符直接运行

QC自带了一个命令行工具ALMRun.exe,专门用来外部触发测试集执行,不需要写代码,配置参数就能搞定。

这个工具一般在QC客户端的安装目录里,比如C:\Program Files (x86)\HP\ALM-Client\ALMRun.exe,如果找不到,检查下QC客户端是不是完整安装了。

示例命令(替换成你们的实际信息):

ALMRun.exe -server "http://你的QC服务器地址/qcbin" -domain "你的域名称" -project "你的项目名称" -user "QC用户名" -password "QC密码" -testset "[测试集所在文件夹]/你的测试集名称" -run

参数说明:

  • -server:QC服务器的完整地址,记得带上/qcbin
  • -testset:测试集的路径,文件夹要用方括号括起来,比如[自动化测试集]/夜间回归测试

如果要设置夜间自动运行,把这个命令保存成.bat批处理文件,然后通过Windows任务计划定时执行就行。

2. 用C#程序调用OTA库

OTA(Open Test Architecture)库完全支持C#,适合需要做更多自定义逻辑(比如运行前准备、运行后结果汇总)的场景。

步骤:

  1. 在Visual Studio里添加OTA的COM引用:右键项目→添加引用→COM→找到「HP Quality Center Open Test Architecture」(版本可能是8.0/9.0等,看你们QC的版本)
  2. 编写示例代码:
using TDAPIOLELib;
using System;

class QCNightlyTestRunner
{
    static void Main(string[] args)
    {
        TDConnection qcConnection = new TDConnection();
        try
        {
            // 初始化并连接QC
            qcConnection.InitConnectionEx("http://你的QC服务器地址/qcbin");
            qcConnection.Login("你的用户名", "你的密码");
            qcConnection.Connect("你的域", "你的项目");

            // 定位到测试集所在的文件夹
            TestSetFolder testSetFolder = (TestSetFolder)qcConnection.TestSetTreeManager.NodeByPath("[测试集文件夹名称]");
            // 获取目标测试集
            TestSet targetTestSet = testSetFolder.FindTestSets("你的测试集名称").Item(1);

            // 创建测试运行实例
            Run testRun = targetTestSet.RunFactory.AddItem(null);
            testRun.Status = "Ready";
            testRun.Post();

            // 启动测试集执行
            ITestSetExecution execution = targetTestSet.StartExecution(false);
            execution.RunAllLocally();

            Console.WriteLine("夜间测试集执行完成!");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"执行出错:{ex.Message}");
        }
        finally
        {
            // 清理连接
            if (qcConnection.Connected)
            {
                qcConnection.Disconnect();
            }
            qcConnection.Logout();
            qcConnection.ReleaseConnection();
        }
    }
}

注意事项:

  • 运行程序的机器必须安装QC客户端,或者至少注册了OTA的COM组件
  • 如果是64位系统,需要把C#项目的编译目标设置为x86,因为OTA组件是32位的

3. 用VBS脚本调用OTA库

OTA同样支持VBS脚本,这种方式不需要编译,写好脚本直接运行,适合快速实现简单的自动化任务。

把下面的代码保存成RunQCTestSet.vbs,替换成你们的信息后,双击就能运行,也可以通过任务计划定时执行:

Dim qcConn
Set qcConn = CreateObject("TDApiOle80.TDConnection")

' 连接QC服务器
qcConn.InitConnectionEx "http://你的QC服务器地址/qcbin"
qcConn.Login "你的用户名", "你的密码"
qcConn.Connect "你的域", "你的项目"

' 找到目标测试集
Dim testSetFolder, targetTestSet
Set testSetFolder = qcConn.TestSetTreeManager.NodeByPath("[测试集文件夹名称]")
Set targetTestSet = testSetFolder.FindTestSets("你的测试集名称").Item(1)

' 创建并启动测试运行
Dim testRun, execution
Set testRun = targetTestSet.RunFactory.AddItem(Null)
testRun.Status = "Ready"
testRun.Post

Set execution = targetTestSet.StartExecution(False)
execution.RunAllLocally

WScript.Echo "测试集执行完成!"

' 断开连接
qcConn.Disconnect
qcConn.Logout
qcConn.ReleaseConnection
Set qcConn = Nothing

最后提醒

不管用哪种方式,要实现夜间自动运行,都需要:

  • 确保运行脚本/程序的机器保持开机状态
  • QC服务器在夜间执行时段是可用的
  • 用来执行的QC账号有足够的权限(测试集运行权限、项目访问权限等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:48:14