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. 实现 Emlog 最新评论列表不显示博主的评论回复

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 实现 Emlog 最新评论列表不显示博主的评论回复 日期: ...

  2. vue.config.js配置优化

    vue.config.js完整代码如下: 'use strict'; // Template version: 1.3.1 // see http://vuejs-templates.github.i ...

  3. Java常用的十大开源工具类库总结

    以下是个人总结的Java常用的十大开源工具类库,根据具体需求和项目,可以选择合适的工具类库来提高开发效率.1. Apache Commons:Apache Commons是一个开源的工具类库,提供了大 ...

  4. ASP.NET Core使用Hangfire定时发布文章

    ASP.NET Core使用Hangfire实现定时任务 前言 也是上了5天班,终于迎来了休息,抽空更新下博客,然后就是下周一公司会对我进行考核,希望考核能通过吧!!! 然后我想给博客添加一个定时发布 ...

  5. fseek在 fopen 带有'a'模式下不起作用

    关于 fseek 在 追加写模式的注意事项 结论:fseek在 fopen 带有'a'模式的文件指针偏移不起作用. int main(int argc, char *argv[]) { FILE * ...

  6. PHP转Go系列 | GET 和 POST 请求的使用姿势

    大家好,我是码农先森. 说到 HTTP 请求工具想必对我们做 Web 开发的程序员都不陌生,只要涉及到网络请求都必须使用.对于我们 PHP 程序员来说,最熟悉不过的就是 CURL 扩展,只要安装的这个 ...

  7. 【Hadoop报错】The directory item limit is exceeded: limit=1048576 items=1048576

    问题描述: 调度系统执行hive任务失败,一直执行失败,报错如下: java.io.IOException: java.net.ConnectException: Call From #HostNam ...

  8. win10 搭建 npm 环境

    前言 最近,根据CSDN和博客园等文章的帮助下,搭建了一个npm的环境,现在将搭建过程记录下来,留作参考. 搭建过程 下载nodejs,我是使用的zip包安装的,安装包官网地址https://node ...

  9. SpringBoot实现RequestBodyAdvice和ResponseBodyAdvice接口

    Spring Boot 提供了一种机制,允许开发者在请求体(RequestBody)和响应体(ResponseBody)被处理之前和之后执行自定义逻辑.这通过 RequestBodyAdvice 和 ...

  10. Mac VMware Fusion 11.5 虚拟机带密钥

    虚拟机 链接: https://pan.baidu.com/s/19V20p5ZV-1U5lFNHrotLgw 密码: rdun CentOS 6.5 链接: https://pan.baidu.co ...