多语言集成测试框架

2024-03-25

想象一下,您有一个由不同组件组成的相当复杂的面向服务的体系结构。组件是用不同的语言(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(使用前将#替换为@)

多语言集成测试框架 的相关文章

随机推荐

  • 将文本添加到行尾而不加载文件

    我需要将信息以许多字典的形式存储到一个非常大的文件中 这并不重要 只是说我试图首先将所有数据放入这些字典中 但我耗尽了内存 60Gb 很好 所以我想通过在行上执行循环并向每行附加一些文本来将数据添加到文件中 而不实际将其加载到内存中 那可能
  • Async/Await 是否使用 Task.Run 异步启动新线程?

    我读了很多文章 但仍然无法理解这部分 考虑这段代码 private async void button1 Click object sender EventArgs e await Dosomething private async Tas
  • Matlab中imagesc()的非均匀轴

    问题 是否可以在非均匀轴上说明图像 Details 我需要用图像来说明多维时间序列 但这个时间序列的时间网格非常不均匀 这是一个例子 m 10 n 3 t sort rand m 1 non uniform time values rand
  • :before/:after 伪元素的内容垂直居中

    我正在尝试实现类似于这张图片的效果 我有一个图像 作为幻灯片的一部分 包裹在 div 中 并使用 before 和 after 伪元素 我显示两个控件以移动到幻灯片的下一个 gt gt 或上一个 到目前为止 我有这个 div positio
  • 如何检查 emacs 是在框架中还是在终端中?

    基于这个问题 如何将emacsclient背景设置为Emacs背景 https stackoverflow com questions 9271930 how to set emacsclient background as emacs b
  • PHP内存限制

    在 PHP 5 0 4 中 如果您don t配置 enable memory limit 时 将忽略 memory limit 指令 在推荐的 php ini 文件中它被设置为 8M 但文档说它被忽略 那么在这种情况下 是否存在每个脚本的内
  • 使用客户端指纹对 JWT 令牌进行编码?

    我想知道是否会是最佳实践使用客户端指纹作为 JWT 秘密进行编码 然而 我在 WWW 上找不到有关这个问题的任何内容 但到目前为止 我这样做是有意义的 我正在考虑使用 JavaScript 生成指纹客户端 并在每次调用时将其发送到 API
  • 如何添加tailwindcss到vite?

    我在用着vite https github com vuejs vite 0 16 6并想将 vuepress 站点迁移到使用 vite 但是我不确定如何配置 vite 以使用 tailwindcss in my index css tai
  • 如何让3个textView控件大小相同

    在我的活动中我定义了 3 个 textView 控件 所有这些 textView 都一个挨着一个出现 我需要做一些事情 使它们始终具有相同的大小 假设第一个 textView 控件是小时 第二个 textView 控件是分钟 第三个 tex
  • 多个 Asp.Net 项目之间的共享代码 [重复]

    这个问题在这里已经有答案了 在同一服务器上的多个 Web 应用程序之间共享 bin 文件夹和 dll 以及其他资源文件 如 css 的最佳实践是什么 我已经将通用代码分离到它们自己的程序集中 但我想知道部署等 我基本上希望将所有通用文件位于
  • Meteor 需要时间才能知道是否存在 {{currentUser}}

    我有一些代码 我只想在存在时运行noUser和一些当有currentUser 所有这些都在导航模板内 就像这样 if currentUser li class nav a href Post a li li class nav a Ola
  • 如何在 Chrome 扩展程序中录制音频?

    设置 Chrome 扩展程序以从麦克风录制音频的最简单方法是什么 我看到有一个工作实验性语音输入API http code google com chrome extensions trunk experimental speechInpu
  • 将参数传递给函数以使用 ggplot stat_function 进行绘图

    我有一个函数和一个参数列表 F lt function a b a b b a L lt list a 5 b 2 c 0 我想用未知的 x 或 x 替换参数之一 a b 或 c 并使用 ggplot 的 stat function 进行绘
  • Unity 与 ASP.NET Core 和 MVC6(核心)

    更新 09 08 2018Unity正在开发中here https github com unitycontainer container但我还没有时间测试它如何与 ASP NET Core 框架配合使用 更新 15 03 2018此解决方
  • BindingList.Sort() 的行为类似于 List.Sort()

    我正在尝试编写一个可用于我的应用程序的 SortableBindingList 我发现了很多关于如何实现基本排序支持的讨论 以便 BindingList 在 DataGridView 或其他一些绑定控件的上下文中使用时进行排序 包括来自 S
  • 结束动画事件android

    我在视图中有一个淡出动画 位于片段内 每次动画发生时 视图完成后都会再次重新绘制自身 我找到了一个解决办法view SetVisibility View GONE 但它不会等待动画完成 我想仅在动画完成后执行此 setVisibility
  • 如何在 SPA 中实施 Docusign,而不要求最终用户使用 DocuSign 进行身份验证

    我正在关注此处显示的 React OAuth 隐式示例 https github com docusign eg 02 react implicit grant https github com docusign eg 02 react i
  • WPF MergedDictionaries - 值不能为空 - 参数名称:item

    我的 App Resources MergedDictionary 遇到了一个棘手的问题 每次添加带有来自另一个程序集的源和 XML 命名空间的新字典时 都会产生错误 并且我无法构建我的程序 该错误出现在 App xaml 中 并带有下划线
  • BigQuery 完全外连接生成“左连接”结果

    我有 2 个表 它们都包含不同的 id 值 有些 id 值可能出现在两个表中 有些对于每个表来说是唯一的 表 1 有 10 910 行 表 2 有 11 304 行 运行左连接查询时 SELECT COUNT DISTINCT a id F
  • 多语言集成测试框架

    想象一下 您有一个由不同组件组成的相当复杂的面向服务的体系结构 组件是用不同的语言 Java PHP Ruby 编写的 并以不同的方式相互通信 即 UI REST API 在某些情况下共享一些数据库表等 我正在尝试为一些端到端测试设计一个集