5.并发模拟

2019-11-22  本文已影响0人  JarvisTH

工具
一、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++;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读