jmeter随记1:压测
- 简述
- 一、压测步骤
- 二、观察cpu和内存占用情况
- 三、查看磁盘占用情况
简述
关于压测,jmeter更直观的作用是用来编写压测脚本【请求和压测策略】,然后在linux服务器上执行,也可以在本地执行,压测执行脚本在启动jmeter服务的时候,会打印出执行压测的命令
一、压测步骤
-
step1: 编写jmeter脚本,以及压测策略
a、若想压的接口很多 且都是相同域名,可以创建http默认请求:
在jmeter线程组右键,add -> config Element -> HTTP Request Defaults
主要用于填写域名和传输协议。
好处:其他接口请求就不用再写这两项了。
b、在jmeter线程组创建请求和断言
创建请求:右击add ->Sampler -> HTTP Request
添加响应断言:Add ->. Assertions -> Response Assertion
c、在jmeter线程组添加结果树和聚合报告
结果树:右击add -> Listener ->View Result Tree
聚合报告:右击add -> Listener ->Summary Report
d、保存并保存为 xx.jmx -
step2: 执行脚本
a、上传xx.jmx 到服务器【jmeter安装目录的bin目录下】
b、jmeter保持启动状态
c、执行脚本
jmeter -n -t test.jmx -r -l test.jtl -e -o /software/jmeter安装目录/bin/datestr/resultReport
脚本关键内容的含义:
test.jmx :jmeter
编辑好的脚本,包括请求,压测脚本。
test.jtl :
包含测试运行结果的文本文件
resultReport:
最后输出一个可读性较高的压测报告到这里,存储压测报告的路径可以自行定义
d、压测过程中,解读linux会打印压测的一些基本情况 :
粗略的解读:summary、11502 :均为请求数
11502 个请求,消耗 14s,qps:802.3/s ,平均值:334 ,最小值64,最大值:3163 ,错误率0(0%),活跃线程数300个【基本含义就是设置压测300个并发】,结束:0
需要关注的点:一般你会有一个压测指标,eg:以接口平均响应时间控制在500ms内,进行压测,压测并发数要参照线上qps流量设置,比如线上100,那你可以按正式环境qps 的3倍或者10倍去压。然后观察打印的结果如果平均响应时间为超过500ms太多,不必等着压完,可以停止jmeter压测进程,减少并发数,直到平均响应时间接近500ms -
step3、压测完成后,会输出压测报告
压测报告会记录压测中的报错,吞吐率,qps等。主要有这3部分:
主要分3部分,dashboard(粗略看) ,Charts(详细看),Customs Graphs(粗略看)
抱歉,时间有限 详细怎么看我后面追加整理
二、观察cpu和内存占用情况
压测过程中,需要观察
查看cpu 里应用占用情况:top
命令来显示所有用户的所有进程。该命令将显示进程ID(PID)、CPU使用率、内存使用率等信息:ps aux
直观易读的格式打印分区类型和分区大小。此命令将显示每个部分的总可用空间、已用空间和可用空间: df -TH
三、查看磁盘占用情况
如果以上参数值都正常,还是运行的很慢,可以看看磁盘的占用情况
查看磁盘占用情况:du -sh /*|grep G
查到的占用磁盘比较大的路径,可以 将/* 替换指定的路径 eg:/xxfile/*