Helix ALM 集成

Helix ALM(之前称为 TestTrack TCM)是 Perforce 公司开发的一个测试管理工具。

可以通过名为 squishTcmAgent 的脚本代理在 Helix ALM 内部执行 Squish 测试。它处理包含运行 Squish 测试所需所有信息的 .squishtcm 描述文件。

获取 Helix ALM 插件

插件以 .zip 文件的形式提供。

注意:此附加组件需要单独购买。请联系 [email protected] 获取详细信息。

安装 Helix ALM 插件

zip 文件包含为 Linux 和 Windows 编译的插件。对于 Linux,请使用以 .tar.gz 结尾的文件。对于 Windows,请使用以 .zip 结尾的文件。

要安装插件,请解压缩相应的 .tar.gz.zip 压缩文件,并将 squishTcmAgent 可执行文件和 defaultTestCaseResolver 可执行文件复制到 Helix ALM 的脚本代理目录。默认目录是 ScriptAgents 以及 Helix ALM 安装目录中。

配置 Helix ALM 插件

要在 Helix ALM 内部运行 Squish 测试,请将 .squishtcm 文件与 Squish 脚本代理相关联。在 Helix ALM 中,选择 工具 > 本地选项 以打开 本地选项 对话框。

{}

在本地选项对话框中,点击左侧显示的列表中的 查看文件 项目以打开 查看文件设置 对话框。使用此对话框将 .squishtcm 文件扩展名与 squishTcmAgent 可执行文件关联起来。

{}

可执行文件路径可能与截图中的不同,因此请根据您的 Helix ALM 安装位置适当修改路径。

.squishtcm 描述文件

.squishtcm 文件描述将要执行的 Squish 测试。该文件以纯文本格式编写,每行包含一个 键/值 项目。必须指定两个 键/值 对。

示例
testCase测试用例名称testCase = "tst_adding"
configFile所使用的配置文件名称configFile = "master_win32"

为了获得最大的灵活性,用于运行 Squish 测试所需的测试用例文件夹由一个名为 testCaseResolver 的程序提供。附带插件(defaultTestCaseResolver)的默认 testCaseResolver 会将分配给 .squishtcm 文件中 testCase 键的值输出。因此,要使用默认的 testCaseResolver,需要将测试用例文件夹的绝对路径分配给 testCase 键。

或者,编写自定义的 testCaseResolver 程序。当运行时,程序会接收到用作 .squishtcm 文件中 testCase 键值的单个命令行参数。插件期望 testCaseResolver 通过向 stdout 输出绝对测试用例路径来响应。必须在配置文件中指定 testCaseResolver 的路径。

插件使用环境变量 SQUISH_TCM_CONFIGDIR.squishtcm 文件中按 configFile 键命名的配置文件中搜索。

配置文件

配置文件描述了用于执行 Squish 测试用例的一般设置。

必需示例
squishDirSquish 根目录的路径squishDir = "C:\\Squish"
testCaseResolverPath到负责向插件在 stdout 提供测试案例文件夹绝对路径的 testCaseResolver 的绝对路径testCaseResolverPath = "C:\\HelixALM\\ScriptAgents\\defaultTestCaseResolver.exe"

testCaseResolverPath = "C:\\Python27\\python.exe"

testCaseResolverScript由指定 testCaseResolverPath 键的 testCaseResolver 执行的脚本的绝对路径。如果 testCaseResolver 需要脚本作为参数,则此键是必需的。例如,如果在 testCaseResolverPath 中指定了 Python,则必须使用此键指定要执行的 Python 脚本。是 / 否testCaseResolverScript = "C:\\myTestCaseResolver.py"
wrapperSquish 需要使用的包裹器wrapper = "Qt"
aut如果测试案例使用 ApplicationContext startApplication(autName) 函数来启动 AUT,则可以省略此;否则必须指定 AUTaut = "addressbook"
cwd如果默认使用当前工作目录的行为是可以接受的,则可以省略此;否则,请参阅 执行测试案例(高级) 中的 --cwd 选项以获取替代方案cwd = "@server"
host如果扩交给在本地启动 squishserver,则可以省略此;否则设置为此值以指定运行 squishserver 的远程 PC 的 IP 地址或主机名host = "192.168.0.42"
port如果可以使用任何随机空闲端口的默认行为,则可以省略此;否则指定一个端口port = "4711"
objectMapPath测试案例使用的对象图的绝对路径objectMapPath = "C:\\Squish\\examples\\qt4\\suite_addressbook_py\\objects.map"
preExecutable在测试案例开始时执行的可执行文件的绝对路径。将结果和日志文件存储的当前工作目录作为参数传递。preExecutable = "C:\\preTask.exe"
postExecutable在测试案例结束时执行的可执行文件的绝对路径。将结果和日志文件存储的当前工作目录作为第一个参数传递,将测试运行 ID 作为第二个参数传递。postExecutable = "C:\\postTask.bat"
pythonExecutablePython 解释器的绝对路径。如果在指定 squishDir 键的 Squish 包中没有附带 Python 解释器,则此为必需。需要 Python 2.4、2.5、2.6 或 2.7。是 / 否pythonExecutable = "C:\\Python27\\python.exe"

如表所示,需要 Squish 目录和 testCaseResolver 程序的路径,以及要使用的 wrapper,而其他 key/value 对是或可以是的可选。

请注意,如果使用 Windows 风格的路径,则每个反斜杠都必须进行转义, 并且路径必须引用;然而,在所有平台上,可以使用正斜杠代替,并且这些不需要转义。(包含空格的路径必须引用。)

如何运行 Squish 测试案例的示例

此示例展示了如何设置配置和 .squishtcm 文件以在 Helix ALM 中运行 Squish 测试。它使用来自 Squish for Qt 包中 suite_py 测试套件的测试案例 tst_adding。假设 Squish 安装在 C:\Squish,测试套件位于 Squish 文件夹内部 C:\Squish\examples\qt4\addressbook\suite_py

我们决定不使用默认的 testCaseResolver,因为我们不想在.squishtcm文件中指定测试案例文件夹的绝对路径。如果我们使用绝对路径,每次测试案例文件夹的位置变化时,就必须触摸与Helix ALM测试相关的.squishtcm文件。例如,如果测试需要在另一个主机上执行,这种情况就会发生。

在这个例子中,我们将在C:\myTestCaseResolver.py处创建一个Python脚本,并将其用作testCaseResolver。Python脚本相当简单,它只是将测试套件的绝对路径添加到测试案例名称之前,并将其打印到stdout

import sys
testCaseName = sys.argv[1]
print "C:\\Squish\\examples\\qt4\\addressbook\\suite_py\\" + testCaseName

下一步是创建配置文件。配置文件可以有或没有任何文件扩展名。为了这个例子,我们将在C:\master_win32处创建没有文件扩展名的配置文件。

squishDir="C:\\Squish"
testCaseResolverPath="C:\\Squish\\python\\python.exe"
testCaseResolverScript="C:\\myTestCaseResolver.py"
wrapper="Qt"
objectMapPath="C:\\Squish\\examples\\qt4\\addressbook\\suite_py\\objects.map"

为了指定Squish的安装位置,我们设置squishDir键的值。因为我们想使用Python脚本作为testCaseResolver,我们要通过设置testCaseResolverScript键的值来指定脚本。此外,因为插件需要知道如何运行Python脚本,我们需要通过设置testCaseResolverPath键的值来指定一个Python解释器。幸运的是,默认的Windows Squish包在Squish子文件夹C:\Squish\python中包含了Python解释器,所以我们可以使用它。最后,我们需要指定包装器以及对象图的绝对路径,因为测试案例tst_adding使用了存储在对象图中的符号名称。

配置文件创建完毕后,我们需要附加到Helix ALM测试的.squishtcm文件。例如,我们将创建.squishtcm文件在C:\test_a.squishtcm。内容由两行组成

testCase="tst_adding"
configFile="master_win32"

第一行指定了我们想执行的测试案例。由于我们使用我们的Python脚本作为testCaseResolver,它在测试套件的绝对路径之前添加地址,所以我们只需输入测试案例名称即可。第二行指定了我们想使用的配置文件。在这里,我们只需输入配置文件的文件名,而不是它的绝对路径。插件将搜索配置文件的路径将通过使用环境变量SQUISH_TCM_CONFIGDIR进行配置。这样做的原因与我们为什么不在.squishtcm文件中放置绝对路径的原因相同。如果测试案例应该在另一个安装了Squish的主机上执行,例如在S:\tools\squish,我们只需要为这个主机创建一个单独的配置文件,并适当地在那里调整squishDir键的Squish安装路径。同样,驻留在Helix ALM中的.squishtcm文件不需要进行修改。

在启动Helix ALM之前,我们需要设置环境变量SQUISH_TCM_CONFIGDIR,以告诉插件要搜索配置文件的位置。为此,我们可以在Windows内部设置环境变量,或者创建一个批处理文件来为我们完成这项操作。让我们创建一个位于C:\helixalm.bat的批处理文件。

set SQUISH_TCM_CONFIGDIR=C:\
"C:\Program Files\Perforce\HelixALM\TestTrack Client.exe"

此批处理文件假设Helix ALM安装于C:\Program Files\Perforce\HelixALM

创建并使用批处理文件C:\helixalm.bat创建自定义的testCaseResolver、配置和.squishtcm文件后,启动Helix ALM,然后在Helix ALM中创建一个测试案例,并切换到测试案例的Files标签

{}

编辑Helix ALM测试案例视图

现在点击Select Scripts按钮以选择C:\test_a.squishtcm描述文件

{}

选择脚本对话框

通过单击确定按钮关闭选择脚本对话框,并单击应用按钮应用更改。要运行Squish测试,请选择文件选项卡中最新的脚本,然后单击运行脚本按钮。这将运行测试并打开{脚本文件状态}对话框。

{}

脚本文件状态对话框

测试完成后,可以通过单击脚本文件状态对话框的查看结果按钮来显示结果文件。

{}

Helix ALM中的Squish测试结果

显示的结果仅临时存储。一旦单击脚本文件状态对话框的确定按钮,结果就会被删除。这是因为Helix ALM将执行测试与测试运行相关联,而测试用例需要生成测试运行。

临时结果将写入Helix ALM安装路径中的ScheduledScripts目录。运行Squish测试后,该目录包含以下文件

文件名描述
test_a.squishtcmSquish描述文件的副本。
test_a.trjob用于同步Helix ALM和squishTcmAgent的接口文件。
report.htmlHTML格式的测试结果。
report.xmlXML格式的测试结果。
squishTcmAgent.logsquishTcmAgent程序的日志文件。
server.logsquishserver的日志文件。
runner.logsquishrunner的日志文件。

©2024 The Qt Company Ltd. 本文档内的文档贡献均为各自所有者的版权。
本提供的文档根据GNU自由文档许可证版本1.3的条款使用,由自由软件基金会发布。
Qt及其相关标志是芬兰和/或世界其他地区的The Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。