SSH框架学习(十、Junit+GroboUtils进行多线程测试)

来源:互联网 发布:在线报名表单系统源码 编辑:程序博客网 时间:2024/06/04 18:10

Junit4不能模拟多线程的情况,需要其他支持,我用的是GroboUtils,最新版本5,下载地址:http://groboutils.sourceforge.net/downloads.html


GroboUtils测试的代码是用网上抄来的,来源:http://www.coderli.com/multi-thread-junit-grobountils

UserDAOImplTest的代码

package demo.myssh.dao.impl;import net.sourceforge.groboutils.junit.v1.MultiThreadedTestRunner;import net.sourceforge.groboutils.junit.v1.TestRunnable;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Qualifier;import org.springframework.test.annotation.Repeat;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.*;import demo.myssh.dao.IUserDAO;import demo.myssh.model.User;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({ "file:WebRoot/WEB-INF/applicationContext.xml" })public class UserDAOImplTest {@Autowired@Qualifier("iUserDAO")private IUserDAO userDao;@Test@Repeat(2)public void MultiRequestsTest() {// 构造一个RunnerTestRunnable runner = new TestRunnable() {@Overridepublic void runTest() throws Throwable {// 测试内容// System.out.println("a");userDao.save(new User("aa", "bb", "cc"));}};int runnerCount = 2;// Rnner数组,相当于并发多少个。TestRunnable[] trs = new TestRunnable[runnerCount];for (int i = 0; i < runnerCount; i++) {trs[i] = runner;}// 用于执行多线程测试用例的Runner,将前面定义的单个Runner组成的数组传入MultiThreadedTestRunner mttr = new MultiThreadedTestRunner(trs);try {// 开发并发执行数组里定义的内容mttr.runTestRunnables();} catch (Throwable e) {e.printStackTrace();}}}


原创粉丝点击