1.背景

  实际生产中,我们开发好接口后可能会简单的压力测试一下,也就是说模拟并发测试,测试工具类如下:

2.工具类

package tentative.normal.other;

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import cn.hutool.http.Method;
import com.alibaba.fastjson.JSON; import java.util.Map;
import java.util.concurrent.CountDownLatch; /**
* @Copyright (C) 四川XXXXXX有限公司
* @Author: LI DONG PING
* @Date: 2020-09-24 10:21
* @Description: <p>
* 并发请求工具类
* </p>
*/
public class HttpConcurrentUtil { //默认并发数
private static int num = 10; private static CountDownLatch cdl = new CountDownLatch(num); /**
* 执行并发请求
*
* @param url 请求url
* @param paramMap 请求参数
* @param n 并发数
*/
public static void doPost(String url, Map<String, Object> paramMap, Integer n) {
if (n != null) {
num = n;
}
for (int i = 0; i < num; i++) {
new Thread(new HttpConcurrentUtil.UserRequest(url, paramMap)).start();
cdl.countDown();
}
} public static class UserRequest implements Runnable {
private String url;
private Map<String, Object> paramMap; public UserRequest(String url, Map<String, Object> paramMap) {
this.url = url;
this.paramMap = paramMap;
} @Override
public void run() {
try {
cdl.await();
} catch (Exception e) {
e.printStackTrace();
}
//使用工具类发送http请求
doPost(url, paramMap); } /**
* 这里可以根据自己的实际情况修改具体请求方式
*
* @param url
* @param paramMap
*/
public void doPost(String url, Map<String, Object> paramMap) {
System.out.println("当前线程名称:" + Thread.currentThread().getName());
System.out.println("请求地址:" + url);
HttpRequest request = HttpUtil.createRequest(Method.POST, url); String jsonString = JSON.toJSONString(paramMap);
//json参数格式
request.body(jsonString);
//表单请求
//request.form(paramMap); System.out.println("请求参数:" + jsonString);
request.setConnectionTimeout(60 * 1000);
String response = request.execute().body();
System.out.println("响应结果:" + response);
}
} }

完美!

java模拟并发请求工具类(测试专用)的更多相关文章

  1. Java模仿http请求工具类

    package ln; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea ...

  2. Java 发送 Https 请求工具类 (兼容http)

    依赖 jsoup-1.11.3.jar <dependency> <groupId>org.jsoup</groupId> <artifactId>js ...

  3. 基于JAVA原生HTTP请求工具类 httphelper

    原文地址;http://lushuifa.iteye.com/blog/2313896 import java.io.BufferedReader; import java.io.BufferedWr ...

  4. Java之网络请求工具类(依赖:org.apache.http;注:HttpClient 4.4,HttpCore 4.4)

    到此处可以去下载依赖包:http://hc.apache.org/downloads.cgi import java.util.List; import org.apache.http.HttpSta ...

  5. Java 实现 Http 请求工具类

    package com.demo.util; import java.io.BufferedReader; import java.io.IOException; import java.io.Inp ...

  6. Java进行http请求工具类代码(支持https)

    package com.guyezhai.modules.utils; import java.io.BufferedReader; import java.io.DataOutputStream; ...

  7. Java 发送 Http请求工具类

    HttpClient.java package util; import java.io.BufferedReader; import java.io.IOException; import java ...

  8. Http请求工具类(Java原生Form+Json)

    package com.tzx.cc.common.constant.util; import java.io.IOException; import java.io.InputStream; imp ...

  9. java模板模式项目中使用--封装一个http请求工具类

    需要调用http接口的代码继承FundHttpTemplate类,重写getParamData方法,在getParamDate里写调用逻辑. 模板: package com.crb.ocms.fund ...

  10. java jdk原生的http请求工具类

    package com.base; import java.io.IOException; import java.io.InputStream; import java.io.InputStream ...

随机推荐

  1. 构建SaaS能力,加速数字化转型!猪齿鱼将在华为云快成长直播间开讲!

    时代的浪潮驱动着企业数字化转型.伴随着新基建.云计算成为国家战略的重要环节之一,"千行百业"开始专注于数字化转型,企业纷纷使用软件提升研发.销售.市场.消费者等不同场景下的效率,S ...

  2. mybatis sqlmap sql in 查询

    <select id="selectBlogs" parameterType="map"> SELECT * FROM blog WHERE use ...

  3. 可以把 FolkMQ 内嵌到 SpringBoot3 项目里(可内嵌的消息中间件,纯血国产)

    之前发了<把 FolkMQ 内嵌到 SpringBoot2 项目里(比如 "诺依" 啊)>.有人说都淘态了,有什么好内嵌的...所以再发个 SpringBoot3 Fo ...

  4. Linux修改dmesg 显示大小

    背景 由于在调试的时候没有串口,而通过dmesg打印的内容发现其中有截断的现象. 因此为了方便调试.将有关的缓冲区加大. 原理 Linux内核中打印内核消息时用到了一个环形缓冲区. 这个缓冲区的大小由 ...

  5. Android 8.0 开机时间优化

    Android 8.0 开机时间优化 背景 在嵌入式行业中,有些搭载 了Android系统的设备由于 开机时间 过长而导致无法被接受. 介绍 启动时间是系统性能的重要组成部分,因为用户必须等待启动完成 ...

  6. 3568F-Linux应用开发手册

       

  7. [UG 二次开发 python] 导出BOM表(包含图片)

    只导出最底层的零件,零件的属性已经设置好,零件的截图生成后,放在零件的同一个文件夹下 用到了 xlsxwriter # nx: threaded # 导出BOM表 __version__ = &quo ...

  8. 2024UIUCTF - OSINT - Night

    2024UIUCTF - OSINT - Night 题目描述 Author: CBCicada That was quite a pretty night view, can you find wh ...

  9. MYSQL DQL in 到底会不会走索引&in 范围查询引发的思考。

    前情引子 in 会不会走索引?很多人肯定会回答.废话.如果命中了索引.那肯定会走. 其实我和大多数人一样.一开始也是这么想的.直至有一个血淋淋的案子让我有所改观.有所思考. 背景介绍 业务的工单表.我 ...

  10. manim边学边做--Matrix

    在代数问题中,矩阵是必不可少的工具,manim中提供了一套展示矩阵(Matrix)的模块,专门用于在动画中显示矩阵格式的数据.关于矩阵的类主要有4个: Matrix:通用的矩阵 IntegerMatr ...