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 测试用例的一般设置。
键 | 值 | 必需 | 示例 |
---|---|---|---|
squishDir | Squish 根目录的路径 | 是 | squishDir = "C:\\Squish" |
testCaseResolverPath | 到负责向插件在 stdout 提供测试案例文件夹绝对路径的 testCaseResolver 的绝对路径 | 是 | testCaseResolverPath = "C:\\HelixALM\\ScriptAgents\\defaultTestCaseResolver.exe" 或
|
testCaseResolverScript | 由指定 testCaseResolverPath 键的 testCaseResolver 执行的脚本的绝对路径。如果 testCaseResolver 需要脚本作为参数,则此键是必需的。例如,如果在 testCaseResolverPath 中指定了 Python,则必须使用此键指定要执行的 Python 脚本。 | 是 / 否 | testCaseResolverScript = "C:\\myTestCaseResolver.py" |
wrapper | Squish 需要使用的包裹器 | 是 | wrapper = "Qt" |
aut | 如果测试案例使用 ApplicationContext startApplication(autName) 函数来启动 AUT,则可以省略此;否则必须指定 AUT | 无 | aut = "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" |
pythonExecutable | Python 解释器的绝对路径。如果在指定 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.squishtcm | Squish描述文件的副本。 |
test_a.trjob | 用于同步Helix ALM和squishTcmAgent的接口文件。 |
report.html | HTML格式的测试结果。 |
report.xml | XML格式的测试结果。 |
squishTcmAgent.log | squishTcmAgent程序的日志文件。 |
server.log | squishserver的日志文件。 |
runner.log | squishrunner的日志文件。 |
©2024 The Qt Company Ltd. 本文档内的文档贡献均为各自所有者的版权。
本提供的文档根据GNU自由文档许可证版本1.3的条款使用,由自由软件基金会发布。
Qt及其相关标志是芬兰和/或世界其他地区的The Qt Company Ltd.的商标。所有其他商标均为各自所有者的财产。