想象一下,您有一个相当复杂的面向服务的体系结构,由不同的组件构成。组件用不同的语言(Java,PHP,Ruby)编写,并以不同的方式相互通信(即UI,REST API,在某些情况下共享某些数据库表等)。多语言集成测试框架
我正在设计一些端到端测试的集成测试框架。 我们已经对单个组件进行了单元/集成测试,但是我们希望构建一些能够全面测试我们已部署的系统(在真实环境中)的端到端的功能,以确保功能(根据个别组件)正确提供,并且架构配置正确。
我面临的第一个问题是,我们的大部分用户界面都是用PHP编写的,用户界面集成测试已经为它编写了Cucumber和一些插件。 我正在编写的测试框架(使用Java)应触发这些功能测试,然后检查相关组件的行为是否符合预期。
显然,我可以使用像Selenium这样的Java友好组件来重写UI测试,但重复这些工作并没有意义。
另一种解决方案是在Java中使用exec()调用运行现有的测试,等待它们返回,可能解析输出并继续执行其他需要完成的操作/检查。
考虑到项目编写的方式,将现有的PHP代码嵌入到Java中似乎不是一个可行的解决方案。
没有任何一种解决方案对我来说令人信服。理想情况下,拥有某种多语言(和多技术)集成框架将是很好的,该集成框架可以在用不同语言和不同环境/组件编写的相同测试套件测试中插入。
有没有人知道一些工具或框架朝着这个方向发展?如果没有,对这类问题有什么好的方法?
感谢您的想法的好地方,但采用的JMeter会(与断点支持!)意味着从头开始重写现有的测试。 另外,JMeter不会解释Javascript,这对UI测试提出了很大的限制。 – kappolo 2013-03-19 12:57:42
我有点困惑我想,你想建立一个测试套件框架,调用你现有的单元测试?这会为您提供超出现有测试的信息吗? – mconlin 2013-03-19 13:48:36
对不起,如果我不清楚。因为我想创建一个完整的集成测试(即集成我的系统的所有组件),我想重用已经存在的集成测试的一部分,并将它们与新测试相结合/集成。 – kappolo 2013-03-19 14:04:49