【发布时间】:2016-06-16 00:20:55
【问题描述】:
我正在开展一个项目,在该项目中,我们使一个 wiki 平台与另一个 wiki 平台的内容保持同步。我们这样做的方式是在“Wiki A”上进行文档编辑,该数据流管道将数据从“Wiki A”格式转换为“Wiki B”格式,并将此数据发送到“Wiki B”以供导入。
我有 3 个组件。
- PHP 中的“Wiki A”
- 翻译服务是一种 Ruby-on-rails 服务
- Java 中的“Wiki B”
我想构建一个自动化的端到端测试框架,理想情况下应该能够测试以下内容:测试的主要需求是我对每个产品的单元测试无法测试产品之间的通信并且不测试整个端到端的数据流。
- 在“Wiki A”上编辑页面
- 测试它是否启动了数据流
- 测试 TranslationService 是否转换了数据
- 测试“Wiki B”是否导入了转换后的数据
根据初步研究,我的选择是 Selenium 等记录工具。 Selenium 可以处理我想要测试的多种产品,但据我所知,这些测试很脆弱。 另一种选择是一些开发测试工具,比如 Cucumber/Capybara,我可以用它编写健壮的测试,但我不确定它如何在多个产品架构中工作,每个架构都用不同的语言编写。
我是否以正确的方式看待它?我是否过于雄心勃勃而无法尝试跨多个产品的单一端到端测试框架?
【问题讨论】:
-
您需要更加具体。然而,Selenium 测试本身并不脆弱,但它们通常被缺乏经验或不得不在许多浏览器中处理难以测试的站点的测试人员实施得很糟糕。 Cucumber 只是一种抽象:它的规则仍然必须由开发/测试人员来实现,这仍然可以做得好或坏。此外,现代 Selenium 不是记录工具 - 不再受支持。
-
我需要提及哪些细节?
-
嗯,你的问题越具体、越有针对性,你得到的答案就越权威,而不是固执己见和/或非常高水平的答案。
-
如果你正在测试业务流程,你可以看看你是否可以通过rest服务编辑wiki。你怎么知道数据流开始了?你怎么知道它什么时候停止?翻译服务完成后去哪里?您是否有针对翻译服务功能的特殊测试,或者您需要在集成系统中进行全套测试?如果您可以使用 Wiki A 的 rest 来创建/更改数据,也许您可以在 Wiki B 中验证新数据。
标签: selenium cucumber automated-tests integration-testing end-to-end