关于构建自动化:如何使用 TestComplete 自动化测试运行过程?

关于构建自动化:如何使用 TestComplete 自动化测试运行过程?

How to automate the test running process using TestComplete?

我们正在尝试使用 TestComplete 将测试集成到我们的日常构建中,到目前为止,我们有一台专用于测试的机器,我们的构建脚本将 TestComplete 测试所需的所有内容(应用程序、数据库、测试脚本项目和源文件)复制到这台机器上等)。

基本上我们可以手动打开TestComplete项目并运行测试。

现在我们想要自动化这个过程,那么你是怎么做的呢?或者您认为实现这种自动化的最简单和最好的方法是什么?

简而言之,我们希望在每次构建后自动化打开 TestComplete 的过程,运行所有测试并发送包含测试结果的电子邮件。

谁能分享一下这方面的经验?

谢谢。


回答我自己的问题:

解决方案是编写一个位于系统托盘上并监视文件夹的小 C# 应用程序。

当一个新文件夹(包含测试源代码)添加到受监控文件夹时,使用命令行调用 TestComplete,然后应用程序会捕获其 ExitCode 并发送一封电子邮件,其中附有生成的日志文件。

根据我知道测试中发生的情况的 ExitCode,可能的 ExitCode 是:

0 - 上次测试没有产生错误或警告。
1 - 最后的测试结果包括警告但没有错误。
2 - 最后的测试结果包含错误。
3 - 由于错误

无法运行测试

有关 ExitCodes 的更多信息可以在 TestComplete 的帮助文件中找到。


好吧,虽然我没有使用过 TestComplete,但我使用了一个名为 QA Wizard Pro 的竞争包。既然您在问这个问题,我假设它不是 TestComplete 本身支持的东西。 QA Wizard 也是如此,他们希望手动运行而不是自动运行,尽管有可以运行的测试运行文件。对于 QA Wizard,我创建了一个批处理文件,该文件每晚从任务调度程序运行。运行该软件的帐户必须能够与桌面交互,并且用户必须使用显示器登录。我使用了一个名为 AutoHotKey 的免费软件来自动运行测试,然后使用一些 Cygwin 工具来解析结果并通过 Blat 触发一封包含结果的电子邮件。这不是一个完美的解决方案,但它确实有效。


如果你有 TestExecute,试试这个。每次都有效....

1
C:\\PROGRA~1\\AUTOMA~1\\TESTEX~1\\Bin\\TestExecute.exe"path\\Project.pjs" /r /e

您还应该考虑使用 TestExecute。这是来自自动 QA 的(便宜得多)程序,它将执行 TestComplete 脚本。

这将使您不必拥有构建/测试服务器的完整 TestComplete 许可证。


对于仍在寻找此功能的人:SmartBear 为 Jenkins 发布了 TestComplete 插件。所以,它现在可以在不需要破解的情况下使用。

插件信息:https://plugins.jenkins.io/TestComplete

新闻稿:https://smartbear.com/news/news-releases/smartbear-simplifies-continuous-delivery/


1
2
Set wshShell = CreateObject("WScript.Shell")
wshShell.Run("""C:\\Program Files\\Automated QA\\TestComplete 6\\Bin\\TestComplete.exe""""C:\\Documents and Settings\\My Documents\\TestComplete 6 Projects\\abc\\abc.pjs(your script path)"" /r /p:(Project Name) /u:(Unit Name) /rt:(Method to be executed) /e /SilentMode")

在记事本中复制以上行并将其保存为 .vbs 文件。
制作一个 .bat 文件并将其放在您的集成服务器上。
通过你的TestComplete exe的bat文件浏览上述.vbs文件的路径。

对于 bat 文件,您可以在记事本中直接将这些行写为

1
2
3
4
C:\\WINDOWS\\system32\\cmd.exe
WScript.Echo""
Set wshShell = CreateObject("WScript.Shell")
wshShell.Run("""C:\\Program Files\\Automated QA\\TestComplete 6\\Bin\\TestComplete.exe""""C:\\Documents and Settings\\My Documents\\TestComplete 6 Projects\\abc\\abc.pjs"" /r /p:prj1 /u:Unit1 /rt:Test1 /e")

用 .bat 扩展名保存这个 txt 文件。然后通过你的 CI 服务器生成一个任务。


您可以使用 Bamboo 的 TestComplete 任务来运行带有 TestComplete 或 TestExecute 的 TestComplete 测试,并在 Bamboo 中解析测试并将它们集成到 JIRA 中。
https://marketplace.atlassian.com/plugins/com.mdb.plugins.testcompletetask/server/overview


你可以试试 Jenkins。在最基本的情况下,您可以使用一个构建步骤(批处理或 bash 脚本)创建一个项目,该构建步骤在预定时间从命令行调用 Test Complete 或 Test Execute。然后,您可以根据需要添加其他构建步骤。例如,当我们的测试运行时,我们会从源代码控制中提取最新版本的测试完成脚本。 Jenkins 具有很好的功能,例如构建项目的存档(在测试完成的情况下,这将是您的测试日志)、电子邮件通知和源代码控制存储库的监控。大型插件库涵盖了您可能想要添加到项目中的大多数其他内容。


最简单的解决方案是使用批处理文件从命令行执行 testcomplete,并将其添加到 windows 调度程序中。


有不同的方法来做这个活动。最好和最强大的方法是使用 Cruise control.NET 进行测试/开发周期的持续集成。

第二种方法是使用命令行参数创建一个批处理文件来运行测试完成脚本。安排此批处理文件的运行。还包括一个简单的应用程序(它将更新 Excel/测试用例中的测试结果)作为 testApp。并在每个测试用例/场景运行后调用它。在完成 TC 运行后创建一个邮件程序函数以发送此结果。

这两种方法我已经用过了,


推荐阅读