跨多个服务的自动化集成测试
Automated integration testing spanning multiple services
我正在从事一个项目,在该项目中我们使一个 wiki 平台与其他平台的内容保持同步。我们这样做的方法是在数据流管道的 'Wiki A' 上进行文档编辑,将数据从 'Wiki A' 的格式转换为 'Wiki B' 的格式,并将此数据发送到 'Wiki B' 用于导入。
我有 3 个组成部分。
- 'Wiki A' 在 PHP
- 翻译服务 Ruby-on-rails 服务
- 'Wiki B' 在 Java
我想构建一个自动化的端到端测试框架,理想情况下应该能够测试以下内容:测试的主要需求是我对每个产品的单元测试无法测试产品之间的通信并且做不测试整个端到端数据流。
- 在 'Wiki A'
上编辑页面
- 测试它是否启动了数据流
- 测试 TranslationService 是否转换了数据
- 测试 'Wiki B' 导入转换后的数据
根据初步研究,我的选择是Selenium等记录工具。 Selenium 可以处理我想要测试的多种产品,但据我所知,这些测试很脆弱。
另一种选择是像 Cucumber/Capybara 这样的开发测试工具,我可以用它编写健壮的测试,但我不确定它如何在多个产品架构中工作,每个产品架构都用不同的语言编写。
我是否以正确的方式看待它?我是否雄心勃勃,无法尝试跨多个产品的单一端到端测试框架?
只要产品提供某种适当的接口,就可以编写跨多个用不同语言编写的产品的端到端测试。理想情况下,这是一些消息传递接口(例如 Http REST)。我建议直接使用 Wiki 界面,而不是通过浏览器访问 UI。
我假设'Wiki A'提供了这样一个用于添加和更改内容的界面。您的集成测试首先使用此接口来更改一些数据并触发整个过程。然后您需要确保已处理内容更改。您可以通过验证 'Wiki B' 中的更改来做到这一点。理想情况下,'Wiki B' 也提供某种界面来获取某些内容。所以你的测试应该只使用 'Wiki A' 和 'Wiki B'.
的消息接口
1) Trigger 'Wiki A' change
2) Verify content on 'Wiki B'
您可能需要在第 1 步和第 2 步之间等待一段时间才能进行翻译和导入。您可以使用 Citrus (http://citrusframework.org)
等测试框架完全自动化地编写此类集成测试
我正在从事一个项目,在该项目中我们使一个 wiki 平台与其他平台的内容保持同步。我们这样做的方法是在数据流管道的 'Wiki A' 上进行文档编辑,将数据从 'Wiki A' 的格式转换为 'Wiki B' 的格式,并将此数据发送到 'Wiki B' 用于导入。
我有 3 个组成部分。
- 'Wiki A' 在 PHP
- 翻译服务 Ruby-on-rails 服务
- 'Wiki B' 在 Java
我想构建一个自动化的端到端测试框架,理想情况下应该能够测试以下内容:测试的主要需求是我对每个产品的单元测试无法测试产品之间的通信并且做不测试整个端到端数据流。
- 在 'Wiki A' 上编辑页面
- 测试它是否启动了数据流
- 测试 TranslationService 是否转换了数据
- 测试 'Wiki B' 导入转换后的数据
根据初步研究,我的选择是Selenium等记录工具。 Selenium 可以处理我想要测试的多种产品,但据我所知,这些测试很脆弱。 另一种选择是像 Cucumber/Capybara 这样的开发测试工具,我可以用它编写健壮的测试,但我不确定它如何在多个产品架构中工作,每个产品架构都用不同的语言编写。
我是否以正确的方式看待它?我是否雄心勃勃,无法尝试跨多个产品的单一端到端测试框架?
只要产品提供某种适当的接口,就可以编写跨多个用不同语言编写的产品的端到端测试。理想情况下,这是一些消息传递接口(例如 Http REST)。我建议直接使用 Wiki 界面,而不是通过浏览器访问 UI。
我假设'Wiki A'提供了这样一个用于添加和更改内容的界面。您的集成测试首先使用此接口来更改一些数据并触发整个过程。然后您需要确保已处理内容更改。您可以通过验证 'Wiki B' 中的更改来做到这一点。理想情况下,'Wiki B' 也提供某种界面来获取某些内容。所以你的测试应该只使用 'Wiki A' 和 'Wiki B'.
的消息接口1) Trigger 'Wiki A' change
2) Verify content on 'Wiki B'
您可能需要在第 1 步和第 2 步之间等待一段时间才能进行翻译和导入。您可以使用 Citrus (http://citrusframework.org)
等测试框架完全自动化地编写此类集成测试