目录
4.执行机安装启动JDK8并配置环境变量(以Linux为例)
最近在学习Jmeter分布式压测实战,看老师讲解的内容,也就是对Controller和Agent进行简单的文件配置,结果等到我实际操作时,几乎每一步都会出现错误,写下这个学习笔记,算是对这两天的一个总结!
在使用Jmeter进行性能测试时,如果并发数比较大(比如项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能。
1.什么是分布式?
由多台电脑共同完成同一个任务(请求)部署,我们称这种部署为分布式部署。
2.Jmeter分布式执行原理
- 一台电脑作为控制机(Controller),其它电脑做为执行机(Agent);
- 执行时,控制机会把脚本发送到每台执行机上,执行机拿到脚本后就开始执行
- 执行机执行时不需要启动Jmeter界面,可以理解它是通过命令行模式执行的
- 执行完成后,执行机会把结果回传给控制机,控制机会收集所有执行机的信息并汇总
3.什么情况下采用分布式测试?
- 在进行压测的过程中如果出现Jmeter未响应,卡住,反应慢等现象。随即启动任务管理器进行查看,如果cup和内存都特别大。就可以说明现在的负载机出现了瓶颈,需要进行分布式测试。
- 随着并发数的增长,TPS不再增长,即出现瓶颈(排除服务器瓶颈及其他)。可能是现在的负载机出现了瓶颈,需要进行分布式测试。
- 在进行压测的过程中出现错误,如Unrecognized Windows Sockets error: 0: recv failed。可能是现在的负载机出现了瓶颈,需要进行分布式测试。
4.执行机安装启动JDK8并配置环境变量(以Linux为例)
参考文章:使用SecureCRT将本地JDK安装包远程上传到Linux并配置环境变量
5.执行机安装Jmeter3.3(以Linux为例)
安装方法与安装jdk类似,可以参考上面的文章进行安装!
6.Jmeter3.3分布式压测准备工作
6.1.执行机的配置
6.1.1.自定义执行机端口号
在执行机的Jmeter的bin目录下,找到jmeter.properties文件,修改如下两个配置项,比如修改成8899
- server_port=8899,表示Controller要远程连接的端口,即remote_hosts=xxx.xxx.xxx.xxx:8899
- server.rmi.localport=8899,表示执行机启动时显示的端口,即endpoint:[xxx.xxx.xxx.xxx:8899]
6.1.2.启动jmeter-server
标注1,启动bin目录下的jmeter-server
标注2,执行机的的IP地址和端口号