用JUNIT4,GroboUtils进行多线程测试
多线程编程和测试一直是比较难搞的事情,特别是多线程测试。只用充分的测试,才可以发现多线程编码的潜在BUG。下面就介绍一下我自己在测试多线程并发程序时用的一个比较简单好用的测试工具类库。即JUNIT4和GroboUtils。
废话不多说,把代码贴出来,大家一看就明白了。
package com.junittest.threadtest;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Set;
import net.sourceforge.groboutils.junit.v1.MultiThreadedTestRunner;
import net.sourceforge.groboutils.junit.v1.TestRunnable;
import org.junit.Test;
public class MutiThreadTest {
static String[] path = new String[] { "" };
static Map<String, String> countMap = new Hashtable<String, String>();
static Map<String, String> countMap2 = new Hashtable<String, String>();
static Set<String> countSet = new HashSet<String>();
static List<String> list = new ArrayList<String>();
@Test
public void testThreadJunit() throws Throwable {
TestRunnable[] trs = new TestRunnable [10];
for(int i=0;i<10;i++){
trs[i]=new ThreadA();
}
MultiThreadedTestRunner mttr = new MultiThreadedTestRunner(trs);
mttr.runTestRunnables();
}
private class ThreadA extends TestRunnable {
@Override
public void runTest() throws Throwable {
myCommMethod2();
}
}
public void myCommMethod2() throws Exception {
System.out.println("===" + Thread.currentThread().getId() + "begin to execute myCommMethod2");
for (int i = 0; i <10; i++) {
int a = i*5;
System.out.println(a);
}
System.out.println("===" + Thread.currentThread().getId() + "end to execute myCommMethod2");
}
}
附件是GroboUtils的jar包,运行时还需依赖log4j的jar文件。
参考文章
[/url]http://www.cnblogs.com/shwen99/archive/2010/03/22/1691280.html[url]
该文章也介绍了ConTest测试工具,比GroboUtils更强大的多线程测试工具,但好像不是免费的。有兴趣的可以深入了解一下。
分享到:
相关推荐
在多线程环境中使用JUnit进行测试会面临一些挑战,比如如何确保测试的线程安全,避免测试结果的不确定性,以及如何有效地模拟并发情况。GroboUtils-5可能就是为了解决这些问题而设计的工具集,它可能包含了用于创建...
首先,GroboUtils为JUnit提供了一种名为`ThreadControl`的接口,它允许开发者暂停、恢复或终止测试线程。这样,我们可以在特定时刻检查测试对象的状态,确保它们在预期的时间点完成了预期的操作,避免了由于线程间的...
本篇将深入探讨如何在JUnit中进行多线程测试,以及它的重要性。 首先,理解为什么需要进行多线程测试。在多线程环境中,不同的线程可能同时访问共享资源,这可能导致竞态条件、死锁或数据不一致等问题。因此,我们...
它能够与JUnit、TestNG等主流的测试框架无缝对接,让多线程测试成为现有测试流程的一部分,而不是孤立的存在。 在实际使用中,groboutils的文档详尽且易懂,提供了丰富的示例代码,帮助开发者快速上手。同时,其...
总之,GroboUtils-5-core.jar是Java开发者进行多线程测试时的得力助手,它以丰富的功能、简洁的API和深度的Junit集成,降低了多线程测试的复杂性和难度,提高了测试的覆盖率和可靠性。无论你是经验丰富的测试工程师...
在Eclipse中使用JUnit4进行单元测试是一种常见的Java开发实践,它可以帮助开发者确保代码的正确性和稳定性。单元测试是软件开发中的重要环节,通过编写针对代码各个独立模块的测试用例,可以验证代码功能是否按预期...
单元测试之道(Java):使用JUnit进行单元测试。单元测试是提高代码质量的有效手段,但大部分开发人员由于种种原因都不乐意进行单元测试。
6. **测试多线程应用**:在Junit4.8中,我们可以使用`@Rule`注解配合`org.junit.rules.ExternalResource`或`org.junit.rules.TestWatcher`来监控线程行为。此外,`org.junit.concurrent`包中的`Timeout`规则可以在...
总的来说,groboutils是一个专注于多线程和测试的Java工具集,它提供了高级的多线程管理功能,并且集成了JUnit,增强了测试能力。通过这个单一的JAR文件,开发者可以轻松地在其项目中引入这些实用工具,提高代码的...
接下来,我们将深入探讨如何使用Ant结合JUnit进行单元测试。 首先,我们需要了解Ant的基本概念。Ant是一个由Apache基金会开发的任务驱动的构建系统,它的核心是build.xml文件,这是一个XML格式的脚本,定义了构建...
在实际开发中,使用JUnit4进行单元测试能够帮助我们确保代码的质量,发现并修复bug,提高软件的稳定性。正确地利用JUnit4提供的功能,可以有效地提高测试效率,并使测试代码更加整洁和易于维护。
JUnit 测试框架的使用 JUnit 是一个流行的单元测试框架,广泛应用于 Java 项目中,本文将详细介绍 JUnit 测试框架的使用,并提供了两个示例来帮助读者更好地理解和掌握 JUnit 的使用。 一、JUnit 测试框架的使用 ...
【使用JUnit进行单元测试】 单元测试是软件开发过程中的重要环节,它主要目的是验证程序的各个独立组件(如方法或类)是否按照预期工作。JUnit是Java编程语言中最常用的单元测试框架,它允许开发者创建和运行针对...
6. **性能测试**:除了基本的功能测试,GroboUtils 还支持进行性能测试,衡量在多线程环境下代码的运行效率,帮助优化代码性能。 7. **定制化测试**:GroboUtils 允许用户根据自己的需求定义测试规则和逻辑,提供...
Junit作为Java领域最常用的单元测试框架,为开发者提供了简单易用的API来进行测试。本案例涵盖了Spring和Struts两大框架的单元测试,旨在帮助开发者掌握如何对这两个流行的Java Web框架进行有效的测试。 一、Junit...
使用 Eclipse 进行 Junit 测试可以大大提高测试效率和质量。 一、Junit 简介 Junit 是一个基于面向对象构建的 Java 单元测试框架,用于组织测试用例。Junit 更易于对测试用例进行管理,以往的测试做法——写一个...