【问题标题】:Multi-language integration testing framework多语言集成测试框架
【发布时间】:2013-03-08 03:25:12
【问题描述】:

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

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

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

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

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

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

所描述的解决方案都没有让我信服。理想情况下,最好有某种多语言(和多技术)集成框架,该框架可以插入到用不同语言和针对不同环境/组件编写的相同测试套件测试中。

有人知道朝这个方向发展的一些工具或框架吗?如果没有,有什么好的方法可以解决这类问题?

【问题讨论】:

  • 您好,我也有类似的需求。您是否找到了解决此问题的有效方法?谢谢!

标签: java php testing integration-testing bdd


【解决方案1】:

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

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

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

虽然脚本语言功能齐全,但我仍在充实默认可用的方法纲要,并仍在尝试将其定位为集成测试工具。让我知道它是否有帮助或 - 如果没有 - 为什么它不能满足您的需求,总是对反馈感到满意! :)

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

【讨论】:

    【解决方案2】:

    您是否考虑过使用 Jmeter 之类的全栈测试?

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

    • 创建用户
    • 确认显示用户创建成功画面
    • 确认用户按预期在数据库中
    • 删除用户
    • 确认用户已被删除

    通过这种方式,您可以同时测试您的用户界面、业务逻辑和数据存储。它也可以用来做负载测试。

    Jmeter

    【讨论】:

    • 感谢您的想法,但采用 JMeter 意味着从头开始重写现有测试。此外,JMeter 不解释 Javascript,这对 UI 测试造成很大限制。
    • 我想我有点困惑,你想构建一个测试套件框架来调用你现有的单元测试吗?这会为您提供超出现有测试的信息吗?
    • 对不起,如果我不清楚。由于我想创建一个完整的集成测试(即集成我系统的所有组件),我想重用已经存在的部分集成测试并将它们与新测试组合/集成。
    猜你喜欢
    • 2010-10-21
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多