作为持续集成过程的一部分,使用SOAtest进行功能回归测试

在保护您的应用程序不受回归影响的同时实现速度

持续集成(CI”)是一种易于理解且(在这一点上)已被广泛采用的实践。这是显着提高应用程序交付速度的必要的第一步。

持续集成允许开发人员将更改推送到源代码的“主”分支中,而单个开发人员可能在一整天内将许多更改推送到主分支中。为了确保master分支是原始的,可构建的且高质量的,在每次更改后进行测试至关重要,因为它充当了应用程序源代码的黄金副本。

(如果您对连续集成有更多的兴趣,我在这里推荐Martin Fowler的旧文章,但仍然很有趣,有关软件开发中的集成历史以及CI的优点/最佳实践。)

这将如何运作/h4>

简而言之,Jenkins将从Github签出一个回购,其中包含一个名为“ Parabank”的SOAtest项目,该项目包含REST测试。Jenkins还将从Docker Hub中提取一个名为parasoft / parabankDocker映像。该映像不仅包含Parabank,还包含Tomcat和正确的Java运行时环境。

然后,Jenkins将运行此Parabank图像的实例(称为“容器”)。之后,Jenkins将告诉SOAtest运行从Github提取的测试,以便我们可以验证我们的Parabank实例。

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

现在,这并不是真正的持续集成的精神(因为我为您提供了一个预先构建的应用程序),但是我想使用Docker来省去使用Maven构建Parabank以及安装的麻烦并配置Tomcat / Java

下面提供了更为逼真的/真实的CI图。开发人员将源代码检入Github。现在,我们要测试即使开发人员进行了更改,应用程序仍处于良好状态。

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

Github中的源代码更改触发了Jenkins的构建,并且Jenkins启动了自动的Maven构建(执行JUnit测试)。如果所有单元测试均通过,则将打包的应用程序(parabank.war)部署到Tomcat上。然后,SOAtest开始执行功能性的“黑匣子”测试。

只有在单元测试通过(在Maven构建期间)和功能性“黑匣子”测试通过(在SOAtest执行期间)之后,开发人员的原始更改才被认为是好的。

让我们进入第一个图表中配置流程所必需的步骤!


配置SOAtestJenkins

先决条件:

  • 在计算机上的某个地方创建一个localsettings.properties文件。将示例文件的内容复制到其中。如果您有节点锁定的许可证,请将其添加到第5行。如果使用许可证服务器,请将第6行设置为true,然后在第3行添加您的许可证服务器主机名。我们稍后将需要此文件的路径。
  • Jenkins 1.651或更高版本安装在同一台计算机上
  • SOAtest 9.10或更高版本已安装在同一台计算机的PATH上(以便您可以从任何目录调用soatestcli)。
  • Docker已安装在同一台机器的PATH上。

步骤:

1. 在Web浏览器中登录JenkinsJenkins通常部署在类似http// <JENKINS_HOST_IP>8080 / jenkinsURL上)

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

2. 我们将从安装一些Jenkins插件开始。选择左侧的“管理Jenkins”,然后在出现的新菜单中选择“管理插件”。

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

3. 在“可用”标签下,选择并安装以下插件:

a. “Parasoft调查结果”

b. “Git插件”(版本3.30)选择“无需重新启动即可安装”,然后在“安装”页面上选中“在安装完成且没有作业正在运行时重新启动Jenkins”复选框。

4. 从步骤1返回至Jenkins主菜单。在左侧,选择“New Item”。

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

5. 提供名称Parabank Deploy and Test”并选择“Freestyle”项目,然后单击“确定”。

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

6. 在出现的配置菜单中,向下滚动到Source Code Management,然后选择Git。将此URL添加到Repo URL字段中:https://github.com/sdebrosse/soatest-automation-example.git。所有其他字段都可以保留其默认值。

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

7. 滚动到页面底部,然后在“构建”下添加“执行Windows批处理命令”的构建步骤(如果您使用的是Linux,请选择“执行外壳”):

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

8. 将脚本的内容复制到此处,并将其粘贴到新的构建步骤字段中。您需要更改脚本顶部的两个变量的值,以反映到您自己的localsettings.properties文件的路径以及要在其中创建临时工作空间的位置(SOAtest将在测试过程中创建此工作空间)。脚本中的注释说明了每一行发生的情况:

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

9. 现在,我们准备执行我们的Jenkins工作!确保首先关闭所有打开的SOAtest实例。然后选择配置菜单底部的保存,然后单击左侧的“立即构建”:

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

10. 您可以单击左侧的正在运行的作业,然后查看实时控制台输出:

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

如果一切正常,日志最后会显示SUCCESS”。这意味着您已经成功地从Github提取了SOAtest测试项目,使用Parabank部署了Docker容器并针对该Parabank实例执行了测试。在此过程结束时,我们自动停止了Parabank容器并删除了temp_workspace来清理环境。但是,请稍等片刻,您可能已经从查看日志中注意到我们的测试失败了……

作为持续集成过程的一部分,使用SOAtest进行功能回归测试

是的,针对Parabank的测试失败。如果我们希望Jenkins构建由于SOAtest测试失败而失败,则在调用soatestcli时添加-fail标志。像这样:

soatestcli.exe -fail -data %TEMP_WORKSPACE_PATH% -resource /Parabank -config builtin://Demo Configuration-localsettings %LOCALSETTINGS_PATH%

如果您在SOAtest桌面用户界面中打开测试,则会发现此故障主要是测试数据/测试环境配置问题。我们的贷款处理者拒绝了本应批准的贷款。

我们接下来怎么做/h4>

测试环境配置和测试数据是可靠的自动化测试的最大障碍。在以后的文章中,我将探讨一种称为服务虚拟化的技术如何帮助确保我们始终拥有所需的确切环境配置,以便随时可靠地运行测试–这将使我们从持续集成中脱颖而出的测试。

标签:软件测试技术

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月22日
下一篇 2021年1月22日

相关推荐

发表回复

登录后才能评论