Jmeter分布式压测实现过程

Jemter分布式压测
jmeter分布式压测前提条件
1.关闭防火墙
2.所有的客户端都在同一个子网内
3.server也必须在同一子网内如果使用192.x.x.x或者10.x.x.x这样的IP地址,如果server没有使用192或者10这样的IP地址,(server同client不在同一子网内)将不会有任何问题
4.确保Jmeter可以访问到server
5.确保各系统的Jmeter版本保持一致,不同版本的Jmeter将不能很好的工作
server:远程执行机 client:控制机.
Windows作为Controller,Linux作为Jmeter-Slave
如果是HTTPS与控制机通信,需要有控制机上生成的rmi_keystore.jks证书文件,如果采用HTTP方式,则直接在配置文件中将server.rmi.ssl.disable置为true即可。这里使用HTTPS的方式通信。
GUI界面(windows)最为控制级,然后由这台控制机发送本地脚本到远程的每台执行机上,然后本地控制机收集远程执行机的执行结果 。
Jmeter分布式压测实现过程_第1张图片
controller(windows)配置步骤
第一步:Controller上配置好jdk和jmeter(jmeter解压就行)
第二步:修改jemter属性文件:jmeter.properties。远程执行机ip(10.0.74.180:10999),端口号自己定义,和执行机端口号一致,执行机就是Linux系统的远程服务器。如果有多个中间用逗号间隔。当然,前提是window系统能ping通执行机。
Jmeter分布式压测实现过程_第2张图片
当然,前提是window系统能ping通执行机。
Jmeter分布式压测实现过程_第3张图片
第三步: 如图所示,双击create-rmi-keystore.bat。根据提示输入信息一路yes。最后生成一个 rmi_keystore.jks文件,类似密钥的东西,用于关联执行机。
Jmeter分布式压测实现过程_第4张图片
第四步:复制rmi_keystore.jks文件到每一个Linux执行机的jmeter/bin文件夹下。如下图:Jmeter分布式压测实现过程_第5张图片

注意:第一次应该会上传不成功,需要修改jmeter的文件权限: chmod 777 bin

Slave(Linux)执行机配置
第一步:Linux执行机下修改jmeter属性文件jmeter.properties端口号(同控制机的配置端口号)。如下图

Jmeter分布式压测实现过程_第6张图片

第二步:进入bin下启动Linux下jmeter服务
Jmeter分布式压测实现过程_第7张图片
这里可以看到我远程发送了两次压测脚本,并且完成压测。

gui模式下执行脚本
Jmeter分布式压测实现过程_第8张图片
Jmeter分布式压测实现过程_第9张图片

问题一:csv文件路径怎么解决。
如果脚本涉及到读取csv文件,而路径又不正确,(jmeter/bin/jmeter-server.log文件)错误如下:
Jmeter分布式压测实现过程_第10张图片
解决办法一:jemter脚本的cvs文件路径只需要写文件名就行,默认从jmeter/bin目录下加载csv文件(当然需要提前把csv文件上传到jmeter/bin 目录下)。如下截图:
Jmeter分布式压测实现过程_第11张图片
Jmeter分布式压测实现过程_第12张图片

问题二:如何生成jtl文件以及如何生成可视化报告。
这种windows作为controller控制机 多台Linux作为执行机可以完成高并发压测,但是有一个小问题就是,没有压测报告生成.
解决方法如下:
1、我们可以添加监听器(Summary Report)用于生成jtl文件,非GUI模式下使用命令让jtl文件生成可视化的文件。
Jmeter分布式压测实现过程_第13张图片

2、指定目录下生成jtl文件。

Jmeter分布式压测实现过程_第14张图片
3、通过非GUI命令行使jtl文件生成可视化的报告文件夹。
Jmeter分布式压测实现过程_第15张图片

Jmeter分布式压测实现过程_第16张图片

Jmeter分布式压测实现过程_第17张图片
默认情况下,JMeter远程服务器的RMI使用动态端口号。这样就会为防火墙配置带来麻烦,因此JMeter 2.3.2及其以后的版本,会检查JMeter属性server.rmi.localport。如果该值非零,JMeter远程服务器就会用它来作为本地端口号。

你可能感兴趣的:(性能测试)