美文网首页
5.并发模拟

5.并发模拟

作者: JarvisTH | 来源:发表于2019-11-22 20:09 被阅读0次

    工具
    一、postman模拟http测试。
    1.进入Collections
    2.new一个Collection文件夹
    3.save需要测试的接口到文件夹
    4.选中文件夹展开,进入run,配置环境并运行。

    二、Apache Bench(AB)
    命令行工具,根据ab命令可以模拟多个访问者同时对某一个访问者进行访问,可以测试负载压力。
    ab -n 1000 -c 50 加接口

    三、JMeter

    代码
    一、CountDownLatch+Semaphore+线程池

    CountDownLatch
    @Slf4j
    @ThreadUnsafe
    public class ConcurrencyTest {
    
        //请求总数
        public static int CLIENT_TOTAL=5000;
    
        //同时并发执行的线程数
        public static int THREAD_TOTAL=200;
    
        public static int count=0;
    
        public static void main(String[] args)throws Exception{
            ExecutorService executorService= Executors.newCachedThreadPool();
            final Semaphore semaphore=new Semaphore(THREAD_TOTAL);
            final CountDownLatch countDownLatch=new CountDownLatch(CLIENT_TOTAL);
            for(int i=0;i<CLIENT_TOTAL;i++){
                executorService.execute(()->{
                    try{
                        semaphore.acquire();
                        add();
                        semaphore.release();
                    }catch (Exception e){
                        log.error("except",e);
                    }
                    countDownLatch.countDown();
                });
            }
            countDownLatch.await();
            executorService.shutdown();
            log.info("count:"+count);
        }
    
        private static void add(){
            count++;
        }
    }
    

    相关文章

      网友评论

          本文标题:5.并发模拟

          本文链接:https://www.haomeiwen.com/subject/gfoqwctx.html