已部署应用程序的自动测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已部署应用程序的自动测试相关的知识,希望对你有一定的参考价值。

通常,一些用于自动化测试的测试框架(如Selenium)用于持续验证已部署应用程序的完整性。这些测试通常涵盖真实用户场景,并且还可以组合使用一系列部署的应用程序。

我们希望为“仅后端”应用程序实现相同的功能 - 即,没有前端的应用程序(或更确切地说)。我们目前正在构建一系列批处理工作,其中一个作业为下一个作业生成输入。

我们有一个很好的单元测试套件来测试各个工作,但是我们真的想在部署到某些环境时测试一系列工作。

您对此类测试框架有什么建议吗?该框架必须能够利用其他Java SDK,例如AWS SDK(例如,指示启动batchjob,将数据注入队列等)。具有测试的框架是否需要作为应用程序部署或直接从CI运行是次要的。

答案

如果您已经有可以在生产中运行的后端测试,那么您只需要安排在这些测试上运行。詹金斯很好(qazxsw poi)

您可以为失败的作业发送电子邮件(或其他警报)。 Jenkins还将关注测试报告 - 与单元测试完全一样。

用于安排测试运行的技术

您可以安排使用任何其他技术运行测试 - 例如Amazon AWS实例,AWS Elastic Beanstalk工作环境(https://wiki.jenkins.io/display/JENKINS/Schedule+Build+Plugin)等。

我觉得Jenkins最合理,因为你对测试报告,通知等有开箱即用的支持。

对于任何其他技术,您必须自己编写报告,通知。

编写测试的技术

我可以在任何能够进行HTTP REST调用的技术中编写测试。对于性能测试,Jmeter或Gatling是不错的选择。

对于验收测试,您可以使用RestEasy,Spring的TestRestTemplate,Apache HTTP客户端等。作为测试运行框架,您可以使用Junit4,Juni5,TestNG或Spock(如果您使用Groovy语言可以)。测试结构可以与普通测试类似。很好地命名的独立方法,可以很好地测试一件事,有意义的断言等。对于编写断言,我的个人偏好是AssertJ,但JavaHamcrest也可以。

这些测试可以(并且应该)写在src / test目录中,在单独的存储库中(或在相同的存储库或不同的模块中)。

对于该测试模块,您可以在src / main目录中编写与测试相关的服务,因此src / test目录将仅包含测试方案。测试服务可能是您需要的 - 管理文件,检查数据库等。

您可以考虑使用BDD风格和JBehave或Cucumber等工具编写测试场景。就个人而言,只有当企业对测试场景感兴趣时,我才会看到BDD测试的价值。如果这些测试仅由技术人员使用,那么我发现在非BDD技术(Junit,AssertJ)中更容易维护这些测试。

以上是关于已部署应用程序的自动测试的主要内容,如果未能解决你的问题,请参考以下文章

我可以使用RSpec测试已部署的站点吗?

如何通过自动化随着时间的推移增加测试覆盖率

应用maven自动部署的脚本

docker容器技术

无法在已部署的反应本机应用程序上使用 IP 地址进行本地网络调用

软件测试实战:Day02-完成黑马Ego微商小程序的前后台本地部署