使用junit进行多线程并发测试

Posted 没有梦想-何必远方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用junit进行多线程并发测试相关的知识,希望对你有一定的参考价值。

没使用过junit的,请看上篇博客。
这篇讲一下如何使用junit进行多线程并发测试 ~
实际上junit是不支持多线程的,你可以试试,在test方法里面new个 Thread ~ 会报错 ~
那你会问我在这还扯什么犊子 ~
我当然不是在这扯犊子了
~~
有插件 ~~ 对,有插件!

<!-- 包依赖 -->
 <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>$junit.verion</version>
     <scope>test</scope>
     <optional>true</optional>
 </dependency>
 <!-- junit 多线程测试 -->
 <dependency>
     <groupId>fakepath</groupId>
     <artifactId>groboutils-core</artifactId>
     <version>5</version>
     <scope>test</scope>
 </dependency>

在junit基础上多引入一个包,这个包可以下载不下来,别着急,待会我上传一个 ~ 放到本地仓库就好了 ~ 下载链接
使用方法也是非常之简单:

 @Test
    public void MultiRequestsTest() 
        // 构造一个Runner
        TestRunnable runner = new TestRunnable() 
            @Override
            public void runTest() throws Throwable 

                //你的测试内容
            
        ;
        int runnerCount = 30;
        //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();
        
    

好了,大功告成!

以上是关于使用junit进行多线程并发测试的主要内容,如果未能解决你的问题,请参考以下文章

如何编写测试类来测试多线程?

关于JUnit4无法支持多线程测试的解决方法

Junit测试具有数据库访问权限的多线程应用程序[重复]

junit测试类测试多线程遇到的问题

#yyds干货盘点#JUnit5学习之八:综合进阶(终篇)

JUnit 5 Eclipse Java测试