这个端到端测试执行了以下步骤:

  在单独的一台机器上启动图中所示的整个被测系统

  通过测试客户端向服务器发送请求

  验证服务器响应

  需要注意的是图中到模拟服务器的连接在这个测试中并不需要。如果被测试的请求需要连接这个后端服务,我们需要在这个连接点也提供一个隔离式服务器。

  由于没有用到网络连接,这个端到端测试更加可靠了。因为它所需要的所有东西都在内存或者本地硬盘存储,这个测试也会更加快速。我们在持续构建中执行这样的测试,让它们可以在每次提交影响到被测系统中任意一台服务器的情况下被运行。如果测试失败,可以通过日志模块帮助在被测系统中跟踪失败出现的位置。

  我们在大量的端到端测试中用到了隔离式服务器。一些基本的例子包括:

  对使用了 Guice 框架的服务器进行启动测试,用来验证在启动过程中没有 Guice 的错误。

  后台服务器的 API 测试

  微型环境的基准性能测试

  前台服务器的 UI 和 API 测试

  结语

  隔离式服务器还是存在局限性的。每次执行端到端测试的时候都启动整个被测系统,这回延长测试执行的时间。如果你的测试所用需资源是有限的,如内存和 CPU,隔离式服务器的使用可能会由于交互的复杂性而使得资源不足。使用内存数据存储也会让测试集的大小比生产环境数据存储小得多。

  隔离式服务器是一个很好的测试工具。但像其他工具一样,需要在使用前好好思考它的适用性。