如何使用TestComplete自动化测试运行过程?

时间:2020-03-06 14:22:28  来源:igfitidea点击:

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

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

现在我们要使该过程自动化,那么我们该如何做呢?还是我们认为将是实现这种自动化的最简单,最好的方法?

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

任何人都可以分享一些经验吗?

谢谢。

解决方案

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

回答我自己的问题:

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

当使用命令行将新文件夹(包含测试源代码)添加到受监视的文件夹TestComplete时,应用程序将捕获其ExitCode并发送带有生成的日志文件的电子邮件。

根据我知道测试中发生了什么的ExitCode,可能的ExitCode是:

0上次测试未产生错误或者警告。
1最后的测试结果包括警告,但没有错误。
2最后的测试结果包括错误。
3由于出现错误,无法运行测试

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

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文件,并将其放在集成服务器上。
通过bat文件TestComplete exe浏览上述.vbs文件的路径。

对于蝙蝠文件,我们可以直接在记事本中将这些行写为

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服务器生成任务。

我们还应该看看使用TestExecute。这是来自自动质量检查的程序(便宜得多),它将执行TestComplete脚本。

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

如果我们有TestExecute,请尝试此操作。每次都能工作。

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

有不同的方法可以执行此活动。最佳和最强大的方法是使用Cruise control.NET进行测试/开发周期的持续集成。

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

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