现在流行的性能测试工具有大家熟知的LR,还有一个就是越来越火的jmeter,因为它是免费开源的,不像LR那样要想进行商业化压测使用必须花大钱购买使用权限。另外一个是他可以在官方网站下载动态库拓展很多的功能。下面来简单说下jmeter进行压测以及用jmeter进行分布式负载。
一、jmeter进行压测
(1)、首先打开jmeter制作一个简单的脚本,本次就是以压测访问百度为例。
制作脚本的时候注意设置参数化、设置检查点,有需要关联的还要设置关联,本次压测百度就只是一个访问百度首页的请求,在此不需要进行参数化和关联,但是要设置响应断言做检查点。因为在压测的时候必须保证请求业务的正确性,所以在这里设置响应断言判断请求访问百度的业务是否成功。断言内容就是百度的标题“百度一下,你就知道”。制作完脚本后先运行脚本,看脚本有无问题再继续进行后续压测。
(2)、设置压测场景
(3)、压测结果分析:
首先要知道jmeter是java写的,jvm虚拟机内存大小是一定的,不要开太多无关的插件,因为打开的插件越多,生成的对象就会越多,生成的对象越多占用jvm的堆内存和非堆内存空间就越多,就会导致gc和full gc的频次,影响jmeter本省压测机服务器的性能,在压测时建议就把使用聚合报告就可以了,你可以看到tps和平均响应时间这两个性能最关注的点。
二、jmeter的no-gui压测及分布式负载
有些时候可能windows压测机数量不够用,就需要使用linux作为jmeter来进行压测,或者使用linux服务器来做分布式负载压测机来使用。
1、jmeter的no-gui压测:
(1)、首先在windows主控机制作好压测的脚本XXX.jmx;
(2)、把脚本上传至jmeter安装包中,就上传至jmeter压缩包的bin目录下;
(3)、执行命令运行脚本,并生成.jtl的压测结果文件。具体命令是 jmeter -n -t XXX.jmx -l aaa.jtl,这里参数中-n 是指no-gui模式,-t 是指名压测的脚本, -l 是指明生成的文件名;
(4)、结果分析,就是把生成的aaa.jtl文件从linux服务器上拷贝出来,然后打开windows中的jmeter,选择自己想要打开的方式去查看结果,比如想看聚合报告,就打开聚合报告插件,并选择拷贝出来的压测结果文件打开查看;
2、jmeter的分布式负载:
(1)、在主控机制作压测脚本,有需要使用参数化的就先用txt文本准备好参数化文件;
(2)、如果想修改连接jmeter的端口号,就修改jmeter/bin目录下的jmeter.properties配置文件,找到#server_port=1099,这里是设置连接负载机的默认端口。如果不改的话连接端口就是默认的1099,要想修改配置文件就先把注释去掉,然后在设置自己想要的端口;
(3)、启动负载机的jmeter-server服务,jmeter-server -Djava.rmi.server.hostname=192.168.1.110 这里是运行负载机的ip。
来源:oschina
链接:https://my.oschina.net/u/4352420/blog/4042059