Java代码模拟并发请求对接口进行压测

本文通过Java代码详细展示了如何模拟并发请求,对特定接口进行压力测试,以评估其性能和稳定性。通过实例代码,读者可以了解如何利用Java进行接口压测的基本步骤和关键点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例:编写一段代码,模拟并发请求为20,且总的请求数为1000,当1000个请求完成之后,打印“请求完成”。

实现代码:

/**
 * 目标:编写一段代码,模拟并发请求为20,且总的请求数为1000,当1000个请求完成后,打印“请求完成”
 */
@Slf4j
public class TestConcurrentRequest {

    // 总的请求个数
    public static final int requestTotal = 1000;

    // 同一时刻最大的并发线程的个数
    public static final int concurrentThreadNum = 20;

    public static void main(String[] args) throws InterruptedException {
        ExecutorService executorService = Executors.newCachedThreadPool();
        CountDownLatch countDownLatch = new CountDownLatch(requestTotal);
        Semaphore semaphore = new Semaphore(concurrentThreadNum);
        for (int i = 0; i< requestTotal; i++) {
            executorService.execute(()->{
                try {
                    semaphore.acquire();
                    String result = testRequestUri();
                    log.info("result:{}.", result);
                    semaphore.release();
                } catch (InterruptedException e) {
                    log.error("exception", e);
                }
                countDownLatch.countDown();
            });
        }
        countDownLatch.await();
        executorService.shutdown();
        log.info("请求完成");
    }

    private static String testRequestUri() {
        return HttpClientUtil.get("http://localhost:8080/test");
    }
}
注意:上述代码中, countDow
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值