【jmeter】对linux服务器使用命令行压测

一、对服务器做压测的前提
jmeter做大并发压力测试的场景下,单机受限内存、CPU、网络IO,会出现服务器压力还没有上去,但是压测服务器已经由于模拟的压力太大死机了,这里需要注意的是即使没有linux系统做压力测试,window系统也要使用命令行非GUI的方式进行压力测试.图形界面消耗很多资源,容易影响测试结果,而且并发量大时,jmeter会崩溃无反应.

二、在服务器上传文件创建任务
第一步:下载jmter到服务器上/usr/local/,下载jdk(这里用的jmter5.4.3,jdk需要1.8以上)
下载好检查jmter版本 jmeter -version 和jdk版本 java -version

第二步:在jmeter上配置好jmx文件,这里的需求是提取seeionid和下一个接口获取上一个接口返回当的入参,并且上传多个文件。200个线程在1秒内同时并发上传。

一、本地jmx文件配置:

1.获取cookie,设置全局---------先写个seeionid的正则,
【jmeter】对linux服务器使用命令行压测_第1张图片

正则表达式:(.*?)
.:匹配任意字符
*:匹配0个或多个字符
?:非贪婪模式,在符合的条件下,尽可能少的匹配(尽可能短的匹配)

线程组添加HTTP Cookie管理器------作用是把cookie设置成全局变量
【jmeter】对linux服务器使用命令行压测_第2张图片

2.每次上传不同的文件-------csv的参数化
【jmeter】对linux服务器使用命令行压测_第3张图片

3.提取上传文件接口返回的参数--------正则表达式
【jmeter】对linux服务器使用命令行压测_第4张图片

4.下一个接口获取上一个接口返回当入参 在json入参请求中变量的数据用${}来代替
【jmeter】对linux服务器使用命令行压测_第5张图片
5.每次请求填入参数不同-----------csv文件参数设置【jmeter】对linux服务器使用命令行压测_第6张图片
6.线程数设置200,ramp-up时间1秒,在要并发的接口下面添加同步定时器,保证在这个接口并发请求

jmx文件配置完毕,先本地测一下。

二、服务器配置:
1.在jemter下建一个file_path的目录,放要上传的文件和jmx文件

2.把csv文件中的文件名都放到放到服务器上安装好的jmeter/bin目录下
这里要放三个csv文件--------上传的文件名(filedata,csv),2个参数的文件名(taskname和custom_version)

sudo vi filedata.csv

3.编辑上传文件路径,使用绝对路径
【jmeter】对linux服务器使用命令行压测_第7张图片

esc 退出编辑
:wq 保存

并发量大的时候取消查看结果树和后置函数的使用,不然会影响性能,只显示聚合报告和图形结果,依据自己的要的测试结果调整

4.在bin目录下执行命令

sectrend@sectrend:/usr/local/apache-jmeter-5.4.3/bin$ ./jmeter -n -t ../mytest/file_concurrent5.jmx -l result.jtl

-n表示无GUI运行;
-t表示要运行的jmx文件;
-l指生成的文件名称;
-r指远程将所有agent启动;
-R表示要远程启动指定的机器;

5.运行成功显示:在这里插入图片描述
)

监测:
录屏:这里使用的是FSCapture.exe,需要评论区私聊取。
命令:htop、dstat

你可能感兴趣的:(压测,服务器,压力测试,运维)