【JMeter】实现分布式压力测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【JMeter】实现分布式压力测试相关的知识,希望对你有一定的参考价值。
参考技术A 专业的角度:我们称为分布式负载(压力)测试。表现形式:就是一台控制器,控制多台负载机器(发生器),向服务器发起请求。
采用这种测试形式的原因:一台计算机难以搞垮服务器。为了真实的模拟高压或者大量请求,更多的计算机和请求数会更好。
JMeter中实现方式,首先配置控制器,还要有多台负载机(被控制的)。
先配置负载机。先远程连接到负载机。配置JMeter的一个代理。
首先编辑JMeter的配置文件。
编辑属性文件中的两项内容,以及获取负载机的IP地址。
修改remote_hosts=127.0.0.1,并且去掉开头行的#
修改server_port=1099,并且去掉开头行的#
在控制器中,生成一个控制器密钥。在控制器的JM的bin目录中,找到下面画框的文件。(本身是一个Windows批处理文件,可以直接运行)
在文件中输入相关指示信息。所有地方回复:y;最后可以不输入口令,直接点击回车。
文件运行后,会生成一个密钥文件。
将密钥文件复制到被控计算机的相关目录下。(具体是哪里呢?答:就是被控计算机的JM的bin目录下)
被控计算机启动一个JMeter-Server服务。表明接受被代理。
如果启动成功,则会显示如下:
最后在控制器的JM中,找到配置文件,设置被控计算机的IP地址和端口号。
需要控制多少台计算机,就在remote_hosts后面追加,每一个都用逗号(英文的)隔开即可。
控制器启动JMeter。在run菜单中找remote Start,如果有前面添加的主机,说明配置文件没有问题。
点击被控机器的IP地址。(在被控机上查看服务运行状态)
如果被控机出现如上图所示的内容,(画框的部分),说明代理没有问题,且正在运行。运行结束后,显示Finish。
在控制器上查看运行结果。
注意:此处不是脚本错误。只是因为被控计算机无法联网,导致请求错误。
转化了被控机的IP之后,请求又可以正常发送。
Jmeter 分布式压力测试
JMeter中进行分布式测试
作为一个纯 JAVA 的GUI应用,JMeter对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至还会引起JAVA内存溢出的错误。不过,JMeter也可以像 LoadRunner 一样通过使用多台机器运行所谓的代理来分担负载产生器自身的压力,并借此来获取更大的并发用户数,我们只需手动配置一下即可。 1、在所有期望运行JMeter作为 负载产生器的机器上安装JMeter,并确定其中一台机器作为 控制器,其他的机器作为 代理。然后运行所有 代理 机器上的JMeter-server.bat文件—假定我们使用两台机器172.20.80.47和172.20.80.68作为 代理; 2、在Controller 机器的JMeter安装目录下找到 bin 目录,再找到 jmeter.properties 这个文件,使用记事本或者其他文字编辑工具打开它; 3、在打开的文件中查找“remote_hosts=”这个字符串,你可以找到这样一行“remote_hosts=127.0.0.1”。其中的 127.0..0.1 表示运行JMeter代理的机器,这里需要修改为“remote_hosts=172.20.80.47,172.20.80.68”; 4、保存文件,并重新启动控制器机器上的JMeter,并进入启动 ->远程启动菜单项。就会看到我们刚才添加的两个代理的地址,选中即可运行,如果想同时启动所有代理,选择远程全部启动即可。 要进行分布式测试代理机器上需要添加环境变量,即添加用户变量JMETER_HOME=d:\jmeter,系统变量中的path中添加d:\jmeter\bin(假设jmeter放在d盘根目录下)。
以上是关于【JMeter】实现分布式压力测试的主要内容,如果未能解决你的问题,请参考以下文章