TPS WebSocket压力测试


TPS WebSocket压力测试

渠道方要求提供压力测试报告,所以收集整理如下:

  1. 下载安装Jmeter

  2. 下载Jmeter插件

websocket插件和TSP图表插件

lib\jmeter-plugins-cmn-jmeter-0.4.jar
lib\ext\jmeter-plugins-manager-0.20.jar
lib\ext\jmeter-plugins-graphs-basic-2.0.jar
lib\ext\jmeter-websocket-samplers-1.1.jar

  1. 在windows中启动bin目录中的jmeter.bat
  • 线程组
1
2
3
Number of Threads (users): 1000 #总共启动的线程,玩家数
Ramp-Up Period(in seconds): 0 #启动全部线程所需的时间,0表示一次全部启动
Loop Count:10 #循环启动次数
  • 计数器
1
2
3
4
Start Value:1  #开始值
Increment:1 #每次增加值
Maximum value:999999999 #最大值
Reference Name:id #参数名称,为后面其他组件中使用此参数起个名称
  • WebSocket Open Connection
1
2
3
4
5
server url:ws或wss     
server name or ip:
port:
path:
Connection timeout(ms):
  • WebSocket request-response Sampler
1
2
3
4
connection:use existing connection
Data:
Request data:
Response timeout:
  • Loop Controller
1
Loop Count: 100    #其下绑定的组件循环次数,主要用于需要给服务器增加事务量的操作
  • jp@gc - Transactions per Second

用于查看

  1. 在linux上安装jmeter和插件
1
2
3
4
5
6
# 安装java环境
sudo mkdir -p /usr/lib/jvm
sudo tar -zxvf jdk-8u191-linux-x64.tar.gz -C /usr/lib/jvm
sudo vim /etc/profile
source /etc/profile
java -version

在profile文件最前面增加如下内容

1
2
3
4
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
  1. 执行压测
  • 拷贝windows平台建立的jmx测试项目文件到linux

  • 执行压测命令

其中tps.jmx是测试项目文件;tps.jtl是测试结果

1
sudo sh jmeter.sh -n -t tps.jmx -l tps.jtl

  1. 压测结果
1
2
3
4
5
6
16 CPU
32G RAM
100G DISK
12 服务

5000 TPS