已部署应用程序的自动测试
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)中更容易维护这些测试。
以上是关于已部署应用程序的自动测试的主要内容,如果未能解决你的问题,请参考以下文章