jmeter分布式测试

 

场景:单台测试机做压力测试,不能满足服务器的上限,本机就已经到达瓶颈了。所以需要多台机器同时压测服务器

1. 环境

Java 10 + 2台win10 + jmeter5.0

一台 win 作为调度机和负载机,另外一台单独作为负载机

2. 安装

2.1 两台都安装 Java 环境

注意jmeter4.0开始就要求至少 java8,当然这里的 jmeter5.0也是要求 java8及以上

(略)

2.2 安装 jmeter

先到 jmeter 官网下载软件包 https://jmeter.apache.org/download_jmeter.cgijmeter5.0下载链接

下载到本地后,解压如下图

主要使用到的目录就是 bin 目录, 下面包含了所有的启动脚本。

2.3 接下来需要配置一个环境变量(远程主机也需要这一步)

win10:右键【此电脑】-> 【属性】-> 左边栏【高级系统设置】-> 上边栏【高级】-> 【环境变量】 -> 下方【系统变量】 -> 【新建】

注意:这里的变量值需要换成自己的目录

win7:右键计算机,其他步骤大致同 win10

 

上面的步骤做完后,进入到 apache-jmeter-5.0/bin 目录下,找到 jmeter.bat 运行

脚本运行完后,会出现图形化界面

到这里就算是安装成功了

3. 配置分布式环境

3.1 配置

在两台主机上操作:

找到 apache-jmeter-5.0\bin 目录下的 jmeter.properties 文件。通过文本方式打开后,找到 server_port 和 server.rmi.localport 两项,去掉注释修改为 

server_port=1099
server.rmi.localport=1099
 
找到 server.rmi.ssl.disable 项,去掉注释修改为
server.rmi.ssl.disable=true
 
解释:这两个端口默认就是 1099,防止可能出现端口绑定出错的情况,直接显式指定了。后面的 server.rmi.ssl.disable 是指定不使用加密通信
这里需要注意的是,1099 也可以换成其他端口,注意防火墙需要放行
 
在在主机(调度机)上配置:
同样是在 jmeter.properties 文件,找到 remote_hosts 字段,增加远程主机的地址
在本文中,本机也作为调度机,所以添加两个地址,分别为两台主机的地址,端口为上面配置的端口
remote_hosts=192.168.56.1:1099,192.168.56.2:1099

3.2 启动

启动远程主机:在 apache-jmeter-5.0\bin 目录下,启动 jmeter-server.bat 

这里的 192.168.56.1:1099 表示远程节点的监听绑定地址,检查是否正确

注意:如果此处的地址不正确,请停止其他虚拟网卡。建议禁用所有虚拟网卡

启动本机:
本地需要启动两个脚本。一个是作为压力测试机的 jmeter-server.bat (同上),一个是 jmeter.bat 脚本(用来管理所有的远程节点)

3.3 测试

创建一个简单的访问测试
step 1:添加一个线程组

step 2:在线程组下添加 http 请求

step 3:编辑 http 请求,填写下面参数。

ps: 请求的地址为气象局网站 http://www.cma.gov.cn,因为这个网站支持 http 让演示简单

step 4:添加查看结果报告

step 5:启动远程测试,选择远程主机

检查结果:请求成功。如果选择远程启动所有的话,这里会出现两条结果

3.4 安装插件

如果需要看更多的东西,比如 rps,tps 等结果,jmeter 原生是不支持的。需要安装插件,此处以 tps 插件为例

插件网站 https://jmeter-plugins.org/wiki/Start/,找到 tps 插件

点击下载

跳转到插件页面:

下载地址 2.0

下载后是一个 lib 包,直接拷贝到 jmeter 目录下即可。然后重新打开 jmeter.bat,就能看见插件

其他插件按照需要执行上述安装步骤即可

4. 测试用例编写

下面简单介绍常用的组件含义

线程组中用来添加请求的并发数,和请求次数

断言中用来判断请求结果

简单的测试可以如下图,将常用的变量放在用户自定义变量中,使用的格式为 ${变量名},聚合报告可以查看所有请求的结果,及相关信息

 

posted @ 2018-10-27 10:25  busman  阅读(1097)  评论(1编辑  收藏  举报