记一次真实的压测

一、首先看需求

  (1)web端首页查看5千用户响应时间小于3秒

  (2)app端页面查看1万用户响应时间小于3秒

二、GUI模式

1、明确需求后直接准备脚本,根据提供的网址去浏览器访问并F12开发管理工具大概看下请求

 

  分析:这里可以看到首页查看只有一个请求,剩下的就只有css和js,图片的请求,并发现一些图片的请求地址是和网站域名不一致,所以这些

图片的请求可以不做考虑,因为域名变了所以对真实服务器也造成不了压力

  (1)录制脚本,这里是使用的fiddler抓包工具,如下图:

   这里通过抓包可以看到访问的一些请求

 

  (2)然后导出jmx文件的脚本,导出后使用jmeter打开录制的脚本

 

  (3)针对抓到的请求进行过滤,先把css和js进行注释,然后把png格式的也注释掉只留第一个请求,如下图:

  (4)调试脚本:因为要模拟用户真实访问所以要请求页面上的全部资源,这里勾选下图的从HTML文件获取所有内含的资源,

然后运行,在结果数中查看发送的请求成功与否

 

  运行后可以发现页面访问了好多和网站域名不一致的请求,这些请求是压测过程中不需要的,所以要过滤掉

  还是在请求的高级里面去过滤不需要的请求,过滤后就是本网站的请求,如下图:

经过过滤后的请求就是本网站的请求资源

 

  (5)在请求里面添加检查点,就此脚本开发完毕

  2、设置压测用户数和持续压测时间,并添加聚合报告

 

 

 

   3、经过压测后发发现由于需要用户量较大,一台机器无法对服务器造成足够的压力,所以这时候要使用多台机器共同进行压测

  (1)首先准备足够的压测机器,然后在每台机器上安装相同版本的jdk和jmeter环境,然后保证这些机器IP在同一网段下,安装成功后的slave机

器在jmeter的bin目录下启动jmeter-server.bat(windows环境下),如在启动后出现如下图错误,需要修改下jmeter.properties文件中的server.rmi.ssl.disable值为true,

并把注释“#”去掉即可

 

 

   正常启动后如下图:

 

  (2)在controller机器jmeter中的jmeter.properties文件中修改remote_hosts参数,添加slave机器的IP,多个IP用逗号隔开

 

 

  (3)配置完成后打开jmeter设置好线程数和持续时间后,在运行选项中可以选择执行的机器,也可以启动所有,这里如果线程组中线程数为10,那么执行

所有机器后对服务器的压力为20用户

 

三、非GUI模式

  1、因为有时候压测机器配置不是特别好,jmeter又是java开发的压测工具,所以在持续压测过程中占用cpu资源较高,可能会对机器造成卡顿,所有通过命

令执行脚本的形式会相对好一些,简单来说就是通过命令执行开发好的脚本,不废话直接上操作

  (1)首先输入执行脚本命令并生成压测报告,命令格式:jmeter -n -t 压测脚本 -r -l 生成压测文件的路径 -j 生成日志的路径 -e -o 生成压测报告的路径

  其中-r为执行全部远程机器,-R IP:端口号为选择指定的压测机器,若没有使用负载机器删掉-r参数

 

  (2)生成的压测报告文件夹文件如下图,index.html为报告文件

 

 

 

 

此次分享到这里,有描述不足的各位可以评论或者联系本人邮箱itheike@163.com进行补充,谢谢观看!

 

posted on 2020-11-15 16:48  幸运的吉克  阅读(165)  评论(0)    收藏  举报