【问题标题】:How to test Service Contracts implemented as OSGi Bundles?如何测试作为 OSGi Bundles 实现的服务合同?
【发布时间】:2017-02-04 21:58:42
【问题描述】:

我们正在向 SOA 过渡。

我们当前的目标是尝试并确保将更多应用程序开发为“服务”(主要是提高功能的可见性、重用和降低变更风险)。其中一些服务将公开为 Web 服务,但许多(可能是大多数)不会公开,并且仅用于“内部”使用,以帮助获得 SOA 的一些好处。

对于那些“内部”服务,我们目前打算将它们实现为 OSGi 包;但是,我们正在努力了解如何最好地测试它们。我们的目标是让当前的系统测试团队能够测试所有类型的服务,我们一直在研究 SoapUI 和 SOA 测试等工具;然而,越来越清楚的是,在使用这些工具测试我们作为 OSGi 包实现的服务时,我们可能会面临一些挑战;并且确实要求测试团队这样做。

因此,我们正在寻找一些建议,以最好地测试我们设计为“服务”的能力的各个方面,但以 OSGi 包而不是 Web 服务的形式实现。

人们会推荐什么工具,这是一种传统上由开发人员在单元测试期间完成的测试,还是可以由技术含量较低的测试人员完成,采用与测试接口相同的基本原则(即输入、处理, 输出)?

【问题讨论】:

    标签: testing osgi


    【解决方案1】:

    理论上,您可以使用远程服务管理实现(如Aries RSAEclipse ECF)在测试期间向外部公开您的内部服务,以便使用外部系统测试工具访问它们。

    不过,我不建议让外部团队测试您的 OSGi 服务。使用像 pax exam 这样的集成测试工具在您自己的构建中测试服务要好得多。它允许定义要安装的包和其他配置。然后它使用您的设置启动一个 OSGi 框架,并针对它运行修改后的 junit 测试。优点是这样的测试非常现实并且仍然非常简单。 有关aries rsaapache karaf 中的一些pax 考试测试,请参见此处。 第一个示例使用 pax Exam fork 容器进行非常快的测试(每次测试

    因此,与始终落后于您当前开发的外部系统测试团队相比,您获得的反馈要快得多。它还允许您建立每个团队成员在提交之前在本地运行测试的策略。

    【讨论】:

    • 我同意 Christian 的观点:测试捆绑包是构建捆绑包的开发人员的任务。有许多测试工具,但它们都涉及将包放入真正的 OSGi 框架中,然后对它们进行测试。 Christian 提到了 PAX 考试... bnd with Gradle 也有一个用于此目的的测试运行器,可以与 Bndtools IDE 一起使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 2010-10-29
    • 1970-01-01
    相关资源
    最近更新 更多