1.定义一个controller,里面写个测试方法,用于postman测试

 1     @GetMapping("/toTestThread")
2 public void demosendThread() {
3
4 try {
5 startTime = System.currentTimeMillis();
6 System.out.println("CountDownLatch started at: " + startTime);
7 // 初始化计数器为1
8 CountDownLatch countDownLatch = new CountDownLatch(1);
9 for (int i = 0; i < THREAD_NUM; i++) {
10 new Thread(new Run(countDownLatch)).start();
11 }
12 // 启动多个线程
13 countDownLatch.countDown();
14 } catch (Exception e) {
15 System.out.println("Exception: " + e);
16 }
17
18 }

2.书写多线程

    /**
* 线程类
*/
private class Run implements Runnable {
private final CountDownLatch startLatch; public Run(CountDownLatch startLatch) {
this.startLatch = startLatch;
} @Override
public void run() {
try {
// 线程等待
startLatch.await();
// 执行操作
/** 这里调用你要测试的接口 */ String msg = "{\n" +
" \"name\":\"终端1\",\n" +
" \"id\":\"202303110001xl\",\n" +
" \"terminal\":\"COL\",\n" +
" \"mtype\":\"MSGE\",\n" +
" \"t\":\"2023-05-05 09:28:47.475\",\n" +
" \"params\":[\n" +
" {\n" +
" \"kks\":\"发变811层/机组1.电压1\",\n" +
" \"ref\":\"发变811层/机组1.电压1\",\n" +
" \"val\":\"0.56-kV\",\n" +
" \"vtype\":\"电压\",\n" +
" \"t\":\"2023-05-05 09:28:47.872\"\n" +
" }\n" +
" ]\n" +
"}"; JSONObject jsonObject = JSONObject.parseObject(msg);
HelloSpringMsg helloReq = new HelloSpringMsg();
helloReq.setJson(String.valueOf(jsonObject)); //具体接口
demoSpringAction.here(helloReq); long endTime = System.currentTimeMillis();
System.out.println(Thread.currentThread().getName() + " ended at: " + endTime + ", cost: " + (endTime - startTime) + " ms.");
} catch (Exception e) {
e.printStackTrace();
}
} }

  3.两个静态变量定义

    /** * 定义并发线程数量 */
public static final int THREAD_NUM = 100;
/** * 开始时间 */
private static long startTime = 0L;

  4.查看控制台调用情况

java多线程压力测试接口的更多相关文章

  1. Java多线程(五) Lock接口,ReentranctLock,ReentrantReadWriteLock

    在JDK5里面,提供了一个Lock接口.该接口通过底层框架的形式为设计更面向对象.可更加细粒度控制线程代码.更灵活控制线程通信提供了基础.实现Lock接口且使用得比较多的是可重入锁(Reentrant ...

  2. 记一次完整的java项目压力测试

    总结:通过这次压力测试,增加了对程序的理解:假定正常情况下方法执行时间为2秒,吞吐量为100/s,则并发为200/s:假设用户可接受范围为10s,那么并发量可以继续增加到1000/s,到这个时候一切还 ...

  3. java 多线程:Callable接口;FutureTask类实现对象【Thread、Runnable、Callable三种方式实现多线程的区别】

    Callable接口介绍: Java5开始,Java提供了Callable接口,像是Runnable接口的增强版,Callable接口提供了一个 call()方法可以作为线执行体. call()方法比 ...

  4. Java多线程的~~~Lock接口和ReentrantLock使用

    在多线程开发.除了synchronized这个keyword外,我们还通过Lock接口来实现这样的效果.由Lock接口来实现 这样的多线程加锁效果的优点是非常的灵活,我们不在须要对整个函数加锁,并且能 ...

  5. java多线程--实现Runnable接口方式

    因为java类只能继承一个类可以实现多个接口的特性,所以一般情况下不推荐使用继承Thread类实现多线程,下面是实现Runnable接口方式的简单多线程代码 package text; /** * 多 ...

  6. java多线程--实现Runnable接口

    package unit8; import java.applet.Applet; import java.awt.Label; import java.awt.TextField; public c ...

  7. java使用Test测试接口类

    package com.jy.demo.web; import java.util.Map; import org.junit.BeforeClass; import org.junit.Test; ...

  8. Java实现压力测试---可输出请求信息、error信息

    import java.io.; import java.net.; import java.util.; import java.util.concurrent.; public class Tes ...

  9. Java项目压力测试(待补)

    JVM监控使用ava自带jvisualvm,在java安装目录jdk1.*/bin下(有很多更高级的东西 线程2000以下,太多切换太消耗.CPU使用率30%以下,更健壮

  10. (转)学习使用Jmeter做压力测试(一)--压力测试基本概念

    一.性能测试的概念 性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试.负载测试和压力测试都属于性能测试,两者可以结合进行. 通过负载测试,确定在各种工作负载下 ...

随机推荐

  1. JMeter 自定义的respCode不是0就报异常

    在实际使用中,后台其实已经对异常的进行了处理,response body 返回来的,都是正常的请求响应: 这个时候,则需要通过 respCode 进行判断该请求是否是有效响应. 如响应报文如下: { ...

  2. MySQL REPLACE INTO语句

    介绍 在向表中插入数据时,我们经常会:首先判断数据是否存在:如果不存在,则插入:如果存在,则更新. 但在 MySQL 中有更简单的方法,replace into(insert into 的增强版),当 ...

  3. Go语言修改字符串

    Go 语言的字符串无法直接修改每一个字符元素,只能通过重新构造新的字符串并赋值给原来的字符串变量实现.请参考下面的代码: angel := "Heros never die" an ...

  4. vue浏览器插件及安装

    vue浏览器插件及安装 插件下载: 链接:https://pan.baidu.com/s/1Wu4a4skkJ-i5ccydRnn8qg 提取码:dwux 然后打开浏览器,F12,有这个vue就成功了

  5. Linux下Oracle client(sqlplus)安装和配置

    分类专栏: Linux 数据库 文章标签: Linux Oracle Client sqlplus 方向键版权1.下载rpm包http://www.oracle.com/technetwork/top ...

  6. StringBuilder的介绍、构造方法及成员方法

    1.StringBuilder的介绍 1.StringBuilder是字符串缓冲区,可以认为是一种容器,能装任何类型的数据,但被装入的数据都会变为字符串 如图 无论是什么类型的数据,被装入字符串缓冲区 ...

  7. 【Linux】1.1 Linux课程介绍

    Linux课程介绍 1. 学习方向 linux运维工程师: 维护linux的服务器(一般大型企业) linux嵌入式工程师: linux做驱动开发,或者linux的嵌入式 linux下开发项目 2. ...

  8. 【Python】import模块和包

    模块和包 一. 模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块能定义函数,类和变量,模块里也能包含可执 ...

  9. 【Python】基础操作

    指定解释器的运行环境 有时候我们会遇见报错 SyntaxError: Non-ASCII character '\xe4' in file E:/PycharmProjects/LEDdisplay2 ...

  10. 谷歌SRE的7条原则

    谷歌SRE的7条原则 拥抱合理的风险 最大化系统的稳定性不仅毫无意义,而且会适得其反.不切实际的可靠性目标限制了新功能交付给用户的速度,而且用户通常不会注意到极端的可用性(比如99.99999%),因 ...