有没有任何工具或框架能够更容易地测试用
Java编写的分布式软件?我的被测系统是一个点对点软件,我想使用像
PNUnit这样的测试,但使用Java而不是.Net.
@H_403_2@被测系统是我正在开发的构建P2P应用程序的框架.它使用JXTA作为一个较低的子系统,试图隐藏它的一些复杂性.目前这是一个学术项目,所以我现在追求简单.
@H_403_2@在我的测试中,我想演示一个对等体(在自己的进程中运行,可能有多个线程)可以发现另一个进程(在另一个进程中运行,甚至是另一台机器),并且可以交换一些消息.我没有使用嘲讽或存根,因为我需要看到双方同时工作.我意识到需要某种协调机制,PNUnit似乎能够做到这一点.
@H_403_2@我已经碰到了一些诸如Pisces这样的举措,其目的是提供扩展JUnit的分布式测试环境,让开发人员/测试人员能够运行远程JUnits,并创建由并行运行的多个远程JUnit测试组成的复杂测试套件或者连续地“,但这个项目和其他一些我发现似乎已经很久没死了.
解决方法
测试分布式软件很大程度上依赖于哪种类型的软件,所以为了完整的答案,我需要知道你的软件是什么.然而,看到PNUnit,它的接缝大部分是允许同步,排序和并行执行测试.
TestNG也支持这一点,比如你可以做:
@Test(threadPoolSize = 3,invocationCount = 10,timeOut = 10000) public void testServer() { : }@H_403_2@这将从三个不同的线程调用函数testServer十次. TestNG 4.5的更改日志也暗示了运行远程测试的可能性,更多信息可在this博客上发布. @H_403_2@或者,您可以检查IBM的ConTest软件来测试并行和分布式软件(有一个很好的描述如何使用它here).我已经非常成功地使用它来暴露我的并发应用程序中的错误.