1、JMeter 下载地址

下载地址:https://jmeter.apache.org/download_jmeter.cgi

java 项目压力测试内存飙高 java压测请求线程数_jmeter

2、JMeter 压力测试

2.1 英语不好的小伙伴可以先汉化一下

java 项目压力测试内存飙高 java压测请求线程数_java 项目压力测试内存飙高_02

2.2 添加-线程组

java 项目压力测试内存飙高 java压测请求线程数_压测_03

最为关键的三个参数

java 项目压力测试内存飙高 java压测请求线程数_压测_04

2.3 线程组-添加-HTTP请求

java 项目压力测试内存飙高 java压测请求线程数_压测_05

2.4 线程组-添加-察看结果树

java 项目压力测试内存飙高 java压测请求线程数_java 项目压力测试内存飙高_06

java 项目压力测试内存飙高 java压测请求线程数_java_07

2.5 线程组-添加-汇总报告

java 项目压力测试内存飙高 java压测请求线程数_java 项目压力测试内存飙高_08

2.6 线程组-添加-聚合报告

java 项目压力测试内存飙高 java压测请求线程数_java_09

2.7 总结

java 项目压力测试内存飙高 java压测请求线程数_java 项目压力测试内存飙高_10

java 项目压力测试内存飙高 java压测请求线程数_jmeter_11

3、JMeter 压测一个页面完成请求

1、创建线程组-输入线程数

java 项目压力测试内存飙高 java压测请求线程数_jmeter_12

2、创建Http请求-输入压测的网址

java 项目压力测试内存飙高 java压测请求线程数_jvm_13

3、完整的一次请求-高级设置

java 项目压力测试内存飙高 java压测请求线程数_java 项目压力测试内存飙高_14

4 、JMeter 常见问题

1、JMeter Address Already in use 错误解决 (地址占用问题)

java 项目压力测试内存飙高 java压测请求线程数_java_15

java 项目压力测试内存飙高 java压测请求线程数_java_16

起一个名字叫:MaxUserPort 设置值65534

java 项目压力测试内存飙高 java压测请求线程数_jmeter_17

起一个名字叫:TCPTimedWaitDelay 设置值为:30 即TCP回收时间为30秒

java 项目压力测试内存飙高 java压测请求线程数_java 项目压力测试内存飙高_18

5 、JMeter 测试报告

1 要从几个点去优化

  • 1、模板缓存(开发:关,上线:开)
  • 2、数据库优化 (创建索引、show Profile)
  • 3、日志
开发
logging:
  level:
    com.ctra.gulimall: debug
上线
logging:
  level:
    com.ctra.gulimall: error

2、测试报告表

压测内容

压测线程数

吞吐量/s

90%响应时间

99%响应时间

Nginx

Gateway

简单服务

首页一级菜单渲染

首页渲染(开缓存)

首页渲染(开缓存、优化数据库、关日志)

三级分类数据获取

首页全量数据获取

Nginx+Gateway

Gateway+简单服务

全链路

中间件越多,性能损失越大,大多都损失在网络交互了

6、jvisualvm

在使用 JMeter 压测的时候同时使用 jvisualvm 来监控线程、CPU、GC过程等

windows下 cmd输入:jvisualvm

java 项目压力测试内存飙高 java压测请求线程数_java_19

java 项目压力测试内存飙高 java压测请求线程数_压测_20