10

是否有任何工具或框架能够更轻松地测试用 Java 编写的分布式软件?我的被​​测系统是一个点对点软件,我想使用类似PNUnit的东西进行测试,但使用 Java 而不是 .Net。

被测系统是我正在开发的用于构建 P2P 应用程序的框架。它使用JXTA作为较低的子系统,试图隐藏它的一些复杂性。它目前是一个学术项目,所以我现在追求简单。

在我的测试中,我想证明一个节点(在自己的进程中运行,可能有多个线程)可以发现另一个节点(在另一个进程甚至另一台机器中运行)并且它们可以交换一些消息。我没有使用模拟或存根,因为我需要看到双方同时工作。我意识到需要某种协调机制,而 PNUnit 似乎能够做到这一点。

我遇到了一些像Pisces这样的计划,它“旨在提供一个扩展 JUnit 的分布式测试环境,使开发人员/测试人员能够运行远程 JUnit 并创建由多个并行运行的远程 JUnit 测试组成的复杂测试套件或连续”,但这个项目和我发现的其他一些项目似乎早已死去。

4

2 回答 2

2

测试分布式软件很大程度上取决于它是什么类型的软件,所以要获得完整的答案,我需要知道你的软件是做什么的。然而,从 PNUnit 来看,它的大部分工作是允许同步、排序和并行执行测试。TestNG也支持这一点,例如,你可以这样做:

@Test(threadPoolSize = 3, invocationCount = 10,  timeOut = 10000)
public void testServer() {
   :
}

这将从三个不同的线程调用函数testServer十次。TestNG 4.5 的更改日志也暗示了运行远程测试的可能性,更多信息可在这篇博文中找到。

或者,您可以查看 IBM 的ConTest软件来测试并行和分布式软件(这里有关于如何使用它的详细说明。我在使用它来暴露并发应用程序中的错误方面取得了巨大的成功。

于 2010-04-20T10:24:09.277 回答
0

嗯,有一种方法非常简单,不需要学习任何新的框架。您可以使用 grep4j 在分布式环境中测试应用程序生成的日志。看看这里这里了解更多信息。

于 2013-02-16T19:57:02.430 回答