springboot 项目 jmeter简单测试流程

测试内容为 主机地址+随机数

复制代码
package com.hainiu.example;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Random;

import static java.net.InetAddress.getLocalHost;


@RestController
@RequestMapping(value = "example")
@Slf4j
public class Example {

    private static Long num = 1L;

    private static String ipAddress = "";

    static{
        InetAddress inetAddress = null;
        try {
            inetAddress = getLocalHost();
        } catch (UnknownHostException e) {
            throw new RuntimeException(e);
        }
        ipAddress = inetAddress.getHostAddress();
    }

    @RequestMapping(value = "test",method = RequestMethod.GET)
    public String test(@RequestParam(name="count",required = false,defaultValue = "0")Integer count){
        if(count == 0){
            count = 10;
        }
        Random r = new Random();
        int rInt = r.nextInt(100000);
        num++;
        if(num % count == 0){
            log.info("call me");
            num = 1L;
        }
        return ipAddress+"_success_"+rInt;
    }
}

1.idea中打包项目(直接在idea中运行项目也可以,这里尝试另一种运行方式,模拟上线情况)

  1. 后台运行项目(windows)

    <jdk/bin目录> java -jar jar包地址

    C:\Program Files\Java\OpenJDK8U-jdk_x64_windows_hotspot_8u432b06\jdk8u432-b06\bin>
    java -jar "C:\test\springboot\target\springboot-1.0.0-SNAPSHOT.jar"

  1. 准备测试

1)限制内存 -Xmx128M -Xms128M

复制代码
<jdk/bin目录> java -jar jvm参数设置 jar包地址

C:\Program Files\Java\OpenJDK8U-jdk_x64_windows_hotspot_8u432b06\jdk8u432-b06\bin> java -jar -Xmx128M -Xms128M  "C:\test\springboot\target\springboot-1.0.0-SNAPSHOT.jar"
  1. 检查jvm参数 是否生效

如果有多个进程,把idea关闭就只会剩下一个后端的进程 pid 9204

复制代码
jcmd <PID> VM.flags

//查看jvm参数

3)启动jmeter 直接双击bat, (可临时设置成中文使用)

4)访问网址,确认无误

复制代码
http://主机名:8080/example/test

查看主机地址 ipconfig

连的wife就是:无线网连接的ipv4 或者运行开头的程序可以看到自己的主机地址

5) 填写 jmeter 计划

在浏览器打开网址,右键点击检查,复制请求头的部分内容 ,没有请求就刷新一下,重新请求

(如果你要测有登录验证的接口/网址,请求头带上验证信息(比如token)即可)

粘贴,没用的删掉

拼起来就是网址

请求结果里面有success就算成功记为1次

手动启动测试 每次1个请求,这里我代码里写错了,写的sucess,就把断言也改成sucess,成功

改成永远,发现后台一直在刷,说明成功测试

参数自己设置,下次测试前要清除上一次的结果树,不累积到这次

用户为5000 观察结果出现较多异常,吞吐量下降,大量http请求没有通过

相关推荐
AC赳赳老秦4 分钟前
公开 CSV 数据集批量处理实战:用 OpenClaw 高效完成下载、清洗与标准化分析样本生成
java·开发语言·汇编·c++·python·deepseek·openclaw
孟健14 分钟前
Stripe出海收款架构设计:水星银行与香港账户实测对比与资金流闭环
后端·架构
ym hyd 11118 分钟前
慢性病精细化管理平台源码 Java+SpringBoot+Vue3 前后分离
java·vue.js·spring boot·毕设
程序猿乐锅23 分钟前
【黑马点评 | 第七篇】Redis 分布式锁的两种实现
java·数据库·redis·分布式·spring·缓存
SL_staff28 分钟前
JVS私有化交付为何敢承诺100%源码开放与无兜底风险?
java·低代码·全栈
RuoyiOffice28 分钟前
SpringBoot3+Vue3 低代码业务表单:从拖拽设计、独立建表到审批与数据查询
spring boot·vue3·数据建模·flowable·版本管理·低代码表单·ruoyi office
j7~33 分钟前
【Python】(篇七)《使用Python库》 -- 详解
开发语言·后端·python·编程学习·python标准库·python第三方库·python拓展
需要82640 分钟前
MySQL MVCC 与事务隔离级别:从一条 update 看版本链
java·数据库·spring boot·mysql·spring cloud
Memory_荒年40 分钟前
订单超时未支付?从“定时扫库”一步步到最终形态
java·后端
RuoyiOffice1 小时前
SpringBoot3 企业薪酬核算:考勤、绩效与薪资规则如何算出一张可解释的工资单
spring boot·vue3·规则引擎·hrm·ruoyi office·薪酬核算·薪资试算