多语言集成测试框架

想象一下,您拥有一个由不同组件构成的相当复杂的面向服务的体系结构。 组件使用不同的语言(Java,PHP,Ruby)编写,并以不同的方式相互通信(即UI,REST API,在某些情况下共享一些DB表等)。

我正在尝试为一些端到端测试设计集成测试框架。 我们已经对单个组件进行了单元/集成测试,但是我们希望构建一些能够端到端地完全测试我们部署的系统(在真实环境中)的东西,以确保function(根据个人的预期行为)组件正确提供,并且架构也正确配置。

我面临的第一个问题是我们的大多数UI都是用PHP编写的,并且已经使用Cucumber和顶部的几个插件为它编写了UI集成测试。 我正在编写的测试框架(用Java)应该触发这些function测试,然后检查相关组件的行为是否符合预期。

显然,我可以使用像Selenium这样的Java友好组件重写UI测试,但复制工作没有意义。

另一个解决方案是在Java中使用exec()调用运行现有测试,等待它们返回,可能解析输出并继续执行需要执行的其他操作/检查。

考虑到项目的编写方式,在Java中嵌入现有的PHP代码似乎不是一个可行的解决方案。

所描述的解决方案中没有一个听起来令我信服。 理想情况下,拥有某种多语言(和多技术)集成框架会很好,这种集成框架可以插入用不同语言和不同环境/组件编写的相同测试套件测试中。

有没有人知道朝这个方向发展的工具或框架? 如果没有,对这类问题有什么好处?

不确定这是否有帮助,但可能看看https://github.com/nablex/glue 。 它是我开发的一种脚本语言,专注于(集成)测试。

如果您插入https://github.com/nablex/glue-selenese并且非常易于扩展,它支持开箱即用的selenium脚本。

我目前正在一个客户处使用它,并使用一些自定义扩展来运行用fox pro编写的旧脚本(我实际上是重新实现了fox pro方法… shiver )和遗留模式,因此它们仅针对遗留脚本启用,而不是新脚本。 我还插入了基于SOAP的自定义Web服务,其中一个可用于在远程系统上进行数据库调用,为集成级测试提供了广泛的工具。

虽然脚本语言function齐全,但我仍然在充实默认情况下可用的方法纲要,并且仍然试图将其定位为集成测试工具。 让我知道它是否有帮助,或者 – 如果没有 – 为什么它不能满足您的需求,总是满意反馈! 🙂

PS:“Main”类是一个开始启动和运行的好地方,因为它包含一个有效的CLI客户端(支持断点!)

您是否考虑过像Jmeter这样的全栈测试?

您可以构建针对完全部署的软件运行的测试

  • 创建用户
  • 确认显示用户成功创建screeen
  • 确认用户是否按预期在数据库中
  • 删除用户
  • 确认用户已删除

这样,您就可以同时测试您的ui,业务逻辑和数据存储。 它也可以用于进行负载测试。

JMeter的