想象一下,您有一个由不同组件组成的相当复杂的面向服务的架构。组件用不同的语言(Java、PHP、Ruby)编写,并以不同的方式相互通信(即 UI、REST API,在某些情况下共享一些数据库表等)。
我正在尝试为一些端到端测试设计一个集成测试框架。我们已经对单个组件进行了单元/集成测试,但是我们希望构建一些东西来对我们部署的系统(在真实环境中)进行端到端的全面测试,以确保功能(就个人的预期行为而言)组件)正确提供并且架构也正确配置。
我面临的第一个问题是我们的大部分 UI 都是用 PHP 编写的,并且 UI 集成测试已经用 Cucumber 和几个插件编写了。我正在编写的测试框架(用 Java 编写)应该触发这些功能测试,然后检查相关组件的行为是否符合预期。
显然,我可以使用 Selenium 之类的 Java 友好组件重写 UI 测试,但重复这些工作是没有意义的。
另一种解决方案是在 Java 中使用 exec() 调用运行现有测试,等待它们返回,可能解析输出并继续需要完成的其他操作/检查。
考虑到项目的编写方式,在 Java 中嵌入现有的 PHP 代码似乎不是一个可行的解决方案。
没有一个解决方案对我来说听起来令人信服。理想情况下,最好有某种多语言(和多技术)集成框架,该框架可以插入到用不同语言和不同环境/组件编写的相同测试套件测试中。
有人知道朝这个方向发展的一些工具或框架吗?如果不是,那么解决此类问题的好方法是什么?