想象一下,您有一个由不同组件组成的相当复杂的面向服务的体系结构。组件是用不同的语言(Java、PHP、Ruby)编写的,并以不同的方式相互通信(即 UI、REST API,在某些情况下共享一些数据库表等)。
我正在尝试为一些端到端测试设计一个集成测试框架。
我们已经对单个组件进行了单元/集成测试,但我们希望构建一些能够端到端地全面测试我们部署的系统(在真实环境中)的东西,以确保功能(就个人的预期行为而言)组件)是否已正确提供,并且架构也已正确配置。
我面临的第一个问题是我们的大部分 UI 都是用 PHP 编写的,并且 UI 集成测试已经使用 Cucumber 和几个插件为其编写。
我正在编写的测试框架(用Java)应该触发这些功能测试,然后检查相关组件的行为是否符合预期。
显然,我可以使用像 Selenium 这样的 Java 友好组件重写 UI 测试,但重复这项工作是没有意义的。
另一种解决方案是使用 Java 中的 exec() 调用运行现有测试,等待它们返回,可能解析输出并继续需要完成的其他操作/检查。
考虑到项目的编写方式,将现有的 PHP 代码嵌入到 Java 中似乎不是一个可行的解决方案。
所描述的解决方案对我来说都没有说服力。理想情况下,最好有某种多语言(和多技术)集成框架,可以插入用不同语言和针对不同环境/组件编写的同一测试套件测试中。
有人知道朝这个方向发展的一些工具或框架吗?如果没有,解决此类问题的好方法是什么?
不确定这是否有帮助,但也许看看https://github.com/nablex/glue https://github.com/nablex/glue。这是我开发的一种脚本语言,重点是(集成)测试。
如果您插入,它支持开箱即用的 selenium 脚本https://github.com/nablex/glue-selenese https://github.com/nablex/glue-selenese and is very可扩展的。
我目前正在客户处使用它,并具有一些自定义扩展来运行用 Fox Pro 编写的遗留脚本(我实际上重新实现了 Fox Pro 方法......shiver)和遗留模式,因此它们仅适用于遗留脚本,而不适用于新脚本。我还插入了基于 SOAP 的自定义 Web 服务,其中一个可用于在远程系统上进行数据库调用,为我提供了一系列用于集成级测试的工具。
虽然脚本语言功能齐全,但我仍在充实默认可用的方法概要,并仍在尝试将其定位为集成测试工具。让我知道它是否有帮助,或者 - 如果没有 - 为什么它不能满足您的需求,总是对反馈感到满意! :)
PS:“Main”类是开始启动和运行它的好地方,因为它包含一个工作的 CLI 客户端(带有断点支持!)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)