使用JMeter3.0实战之分布式并发测试以及web API接口测试
简介:
该文档是以Apche JMeter-3.0为例进行编写的,通过网上的学习资料和官方文档的说明手册学习后,进行项目操作实践,将测试的过程记录下提供给大家学习。
本博文的内容主要是进行配置JMeter的测试参数,进行并发测试,分布式测试和收集服务器端的性能参数以及如何去测试web api接口的方法。
本博文以工作的项目作为并发测试的实验案例。如果有错误,请大家指出。
1.使用Badboy录制Web性能测试脚本
1.1使用Badboy工具进行录制Web性能测试脚本
(1)启动Badboy。首次启动Badboy时,录制按钮默认处于选中状态,如图所示中的红色小圆点。
(2)在Badboy工具地址栏中输入测试网址,然后按回车键。Badboy工具会使用内置的浏览器访问对应的网址,如图所示。
(3)在Badboy工具打开的页面中完成登录所需的各项操作,接下来可以在左上角的脚本框中看到录制产生的测试脚本,如图所示。
1.2 导出Badboy测试脚本
(1)在Badboy中完成脚本录制后,可以将测试脚本导出成JMX格式,以便后续供JMeter使用,如图所示。
2.创建Web测试计划
2.1 导入Badboy录制的测试脚本
(1)打开Jmeter->File->Open,选择保存的Badboy录制的测试脚本后,点击打开按钮。
2.2 配置属性和参数
(1)选中HTTP Header Manager后,根据测试的需求,可以修改Headers Stored in the Header Manager中的信息,以本案例为主,添加Content-Type键值对。
设置HTTP Header的信息
设置HTTP Request的配置信息
设置HTTP Request的配置信息,并设置发送的参数内容
2.3 参数化
(1)函数助手可以用过ctrl-F打开,通过函数助手找到_CSVRrad方法,输入参数文件的路径,CSV文件列号是从0开始的,第一列0、第二列1、第三列2、依次类推。
然后点击【生成】按钮,则会自动生成我们需要的参数化函数。
打开参数化窗口
设置参数化文件和取得参数化的列
(2)复制生成的参数化函数,打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对用户名和密码做参数化,第一列是用户名,列号为0;
第二列是密码,列号为1;修改函数中对应的参数化字段列号就可以啦。
2.4 正则表达式
(1)由于项目为了防止CSRF攻击,所以页面上会添加了令牌,在页面中可找到该信息串,如果当前页面要获取到该字符串,必须要在上一个页面中发送http请求后,
从该请求的响应中提取出该字符串,提取时使用的是正则表达的方式。
(2)正则表达式提取数据
创建正则表达式
(3)填写正则表达式信息
参考地址:http://book.51cto.com/art/201204/327425.htm
2.5 添加测试结果监听器
2.6 设置远程服务器监控
(1)在做负载测试时,我们要时刻关注服务器的CPU,MEM……的使用情况,但是JMeter本身对这些信息是不做收集的,这个时候PerfMon就应运而生了。
他就是用来收集被压服务器的各种性能指标,例如: CPU, Memory, Swap, Disks I/O and Networks I/O ……
环境搭建
下载地址:http://jmeter-plugins.org/downloads/all/
解压zip包,将JMeterPlugins-Standard.jar放到jmeter客户端的jmeter/lib/ext下
启动jmeter,添加Listener时你就看到PerfMon Metrics Collectors
(2)配置被监控的服务器
下载地址:http://jmeter-plugins.org/downloads/file/ServerAgent-2.2.1.zip
解压zip包,将ServerAgent-2.2.1放到被监控的服务器下,必须启动startAgent.bat,并且测试的时候不能关闭该窗口,启动成功后,得默认端口是4444
(3)添加被监控的服务器指标
3.运行测试计划
3.1.设定并发用户数
进行编辑,如果没有在文件中没有找到JmeterPlugin.perfmon.interval ,在文档的末尾最加进去。
例如设置每5秒收集一次:jmeterPlugin.perfmon.interval=5000
• jmeterPlugin.perfmon.interval - metrics collection interval in milliseconds
• jmeterPlugin.perfmon.useUDP - true/false, enabling UDP connection try after failed TCP connection attempt
• jmeterPlugin.perfmon.label.useHostname - true/false, enable using "short" hostnames, default pattern is ([\w\-]+)\..*
• jmeterPlugin.perfmon.label.useHostname.pattern - string (escaped), regular expression to extract hostname (first group is matched)
• e.g. Default pattern would
• be: jmeterPlugin.perfmon.label.useHostname.pattern=([\w\-]+)\..*
• e.g. Pattern for EC2 us-east/west subdomain
• matching: jmeterPlugin.perfmon.label.useHostname.pattern=([\w\-]+\.us-(east|west)-[0-9]).*
• forcePerfmonFile - true/false, enabling it makes JMeter to write JTL file with perfmon metrics in the current directory
需要更多的配置设置,请参考:http://jmeter-plugins.org/wiki/PerfMon/
4.2.配置采样批次
(1)进行分布式测试后,在在Control端中,查看View Results Tree时,点击选项卡Response data后,没有显示返回的响应数据。这时需要在Jmeter的目录
下..\apache-jmeter\bin\下找到jmeter.properties文件,进行编辑,找到mode=Standard,并将#去掉并且进行保存。
在jmeter.properties文件Remote batching configuration板块中找到mode=Standard配置
去掉mode=Standard前面的#号,这样分布式测试的控制台中的view result tree查看结果时就可以看到response data中的数据了。
其它参数配置:
测试计划中的监听器会把它们的结果返回到JMeter客户端,而JMeter客户端默认情况下会将这些结果写入到指定文件中,采样结果会在产生后立即发回JMeter客户端。
这样就会对网络和JMeter客户端产生很大的压力。用户可以通过设置一些属性,来改变默认操作。
模式(Mode)(采样结果发送模式)默认是Standard。
Standard:在采样结果产生后立即发送。
Hold:将采样结果保存在一个数组中,直到测试结束。这可能会占用远程服务器的大量内存。
Batch:当计数器或者时间超过阈值之后,发送保存的采样结果。
Statistical:当计数器或者时间超过阈值之后,以概要的形式发送采样结果;采样结果以线程组(Thread Group)名称和采样标签(Sample Label)进行概要统计。
积累的数据域包括:elapsed time、latency、bytes、sample count、error count,其他数据域将会被丢弃。
Stripped:将成功采样的响应数据移除。
StrippedBatch:将成功采样的响应数据移除,并批次发送。
Custom implementation:将模式参数设置为测试人员的客户化采样发送器的类名。该类必须实现接口SampleSender,并且类的构造函数只有一个
RemoteSampleListener型的参数。
如下属性会影响Batch和Statistical模式。
num_sample_threshold:一个批次中的采样数目(默认为100)。
time_threshold:等待的毫秒数(默认为60秒)。
参考地址:http://jmeter-plugins.org/wiki/PerfMon/
5.分布式压力测试
Jmeter 是Java 应用,对于CPU和内存的消耗比较大,因此,当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心,甚至会引起
JAVA内存溢出错误。为了让jmeter工具提供更大的负载能力,jmeter短小精悍一有了使用多台机器同时产生负载的机制。
如果运行JMeter客户端的机器性能不能满足测试需要,那么测试人员可以通过单个JMeter GUI客户端来控制多个远程JMeter服务器,以便对服务器进行压力测试,
模拟足够多的并发用户。通过远程运行JMeter,测试人员可以跨越多台低端计算机复制测试,这样就可以模拟一个比较大的服务器压力。一个JMeter GUI客户端实例,
理论上可以控制任意多的远程JMeter实例,并通过它们收集测试数据
通过远程运行jmeter,测试人员可以跨越多台低端计算机复制测试,这样就可以模拟一个比较大的服务器压力,一个jmeter客户端实例,理论上可以控制任意多的远程
jmeter实例,并通过他们收集测试数据。这样一样,就有了如下特性:
* 保存测试采样数据到本地机器* 通过单台机器管理多个jmeter执行引擎。
* 没有必要将测试计划复制到每一台机器,jmeter GUI客户端会将它发往每一台jmeter服务器。
* 每一台jmeter远程服务器都执行相同的测试计划,jmeter不会在执行期间做负载均衡,每一台服务器都会完整地运行测试计划。
分布式测架构
Terminology
Before we dive into the step-by-step instructions, it's a good idea to define the terms and make sure
the definition is clear.
Master – the system running Jmeter GUI, which controls the test
Slave – the system running jmeter-server, which takes commands from the GUI and send requests tothe target system(s)
Target – the webserver we plan to stress test
步骤:
1.Slave:在Slave服务器上中,进入到jmeter/bin目录并执行在widnwos系统上的jmeter-server.bat(jmeter-server 在Unix)。
2.Master:在Master服务器作为控制台时,在Master系统中,进入到jmeter/bin目录。
2.1.使用文本编辑打开jmeter.properties文件
2.2.编辑remote_hosts=127.0.0.1
2.3.在remote_hosts=Slave服务器地址,Slave2服务器地址,......
2.4.打开jmeter.properties文件,设置将mode=Standard(默认)注视后,设置mode=Batch,如果不修改mode模式,可能出现并发后result view tree无法收集到响应数据。(配置位于Remote batching configuration板块)
2.5启动jmeter
5.1.Windows下分布式测试
服务器环境:Linux Slave:192.168.238.128,192.168.238.131
Win10 Master:192.168.238.103
5.1.1.配置远程服务器Slave(Jmeter-server)
(1)将Jmeter解压后,拷贝到远程服务器(Linux/Window)中,打开jmeter-server.后,弹出命令窗口,并且不能关闭该窗口。在默认情况下远程服务器中的端口是1099,
如果该端口被占用了,那么可以设置其它端口。在Jmeter的目录下..\apache-jmeter\bin\下找到jmeter.properties文件。
默认端口为1099,不用再修改配置,如果选择修改成为其他端口,可在编辑文件后,找到server_port=1099,根据需求,更改为未被使用的端口。
.
5.1.2.远程服务器的IP地址添加到控制端Master属性文件中
步骤:1.修改jmeter.properties文件
2.修改remote_hosts配置
3.修改mode=Standard配置
详细步骤如下:
(1)在Jmeter的目录下..\apache-jmeter\bin\下找到jmeter.properties文件。
编辑文件后,在Remote hosts and RMI configuration板块中找到remote-host,根据需求,添加远程服务器的ip和端口号,可以添加多个远程服务器。例如:remote_hosts=localhost:1099,localhost:2010
(2)在 Remote batching configuration板块中将mode=Standard前面的#去掉或者修改成为mode=Batch,如果不修改mode前面的#,可能无法收集到Slave服务器
并发的数据。
Batch:当计数器或者时间超过阈值之后,发送保存的采样结果。
5.1.3.运行控制台
(2)在Jmeter中,点击Run-Remote Start All菜单,执行远程服务器任务(3)查看并发后,查看结果树中的Sample Result数据。
(4)查看结果树中的Response Data数据
以上是在window平台下,进行分布式测试的实践过程,在最后View Result Tree中查看到响应数据,表明已经并发成功。
5.2.Linux下分布式测试
前置要求:1.必须在Linux(Centos7)服务器下安装JDK。
2.关闭firewalld。
3.Linux和window网络必须能通行,并且在同一个局域网内。
服务器环境:
Linux Slave:192.168.238.128,192.168.238.131
Win10 Master:192.168.238.103
5.2.1.配置远程服务器Slave(Jmeter-server)
Linux作为服务端,运行jmeter-server之前,需要安装jdk,安装成后将jmeter的整个文件拷贝到服务器上,本案例是将apache-jmeter-3.0文件拷贝到var/ftp/pub目录下。
在/var/ftp/pub/apache-jmeter-3.0/bin/目录下输入./jmeter-server命令,运行jmeter服务时,出现错误,
提示:Server failed to start:java.rmi.RemoteException: Cannot start. localhost is a loopback address。
输入命令cd /etc进入到目录下,再输入vi hosts进行编辑hosts文件,将里面的IP地址修改成本机地址,然后进行保存。
需要在bin目录下输入命令:./jmeter-server-Djava.rmi.server.hostname=本机IP地址。才能启动成功过,需要输入ps -qa | grep jmeter-server命令或
输入netstat -ntlp命令查看确认是否运行成功。或者修改jmeter-server中的配置,配置如下:
输入vi jmeter-server命令编辑文件,在文件中添加
RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.238.131 #IP地址是本机的地址.
5.2.2.远程服务器的IP地址添加到控制端Master属性文件中
(1)在apache-jmeter-3.0目录下打开jmeter.properties文件,进行编辑。在配置文件中找到remote_hosts,然后添加远程的服务端ip地址和端口好,
例如:remote_hosts=192.168.238.131,192.168.238.128如果需要添加多个服务端,可用都用逗号隔开来配置。配置完成后,打开客户端ApacheJmeter控制台。
(2)在 Remote batching configuration板块中将mode=Standard前面的#去掉或者修改成为mode=Batch,如果不修改mode前面的#,可能无法收集到Slave服务器
并发的数据。
打开控制台后,查看运行-.远程启动-可看到远程的服务端机器的IP地址。
5.2.3.运行控制台
(3)在Jmeter中,点击Run-Remote Start All菜单,执行远程服务器任务
(4)执行任务完成后,查看服务端(Slave)的日志。服务端程序产生一条Starting和Finished记录。
(5)查看并发后,查看结果树中的Sample Result数据。
(6)查看结果树中的Response Data数据
以上是在Linux平台下,进行分布式测试的实践过程,在最后View Result Tree中查看到响应数据,表明已经并发成功。
注意事项:
In some cases, the firewall may still beblocking RMI traffic.
Symantec Anti Virus and Firewall
In some cases, Symantec firewall needs tobe stopped from windows services.
1. open control panel
2. open administrative tools
3. double click services
4. Go to down to symantec anti virus, rightclick and select stop
Windows firewall
1. open network connections
2. select the network connection
3. right click and select properties
4. select advanced tab
5. uncheck internet connection firewall
Linux
On Suse linux, ipchains is turned on bydefault. For instructions, please refer to the “remote testing”
in the user manual.
On RedHat (or derivatives), iptables(netfilter) is turned on by default. Execute “service iptables
stop” to stop the Linux netfilter firewall.
参考地址:
http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.pdf
http://book.51cto.com/art/201204/327427.htm
6.接口测试
6.1.WCF 测试
测试背景:气站中有一个WCF的接口,通过待用该接口的PutNetworkStatus的方法,可修改气站的状态信息。而PutNetworkStatus方法有两个参数一个是MCUMapID,另外一个参数是Status。如果调用接口的方法成功后,会返回true信息。
测试步骤:
测试wcf之前需要获取到wcf的地址,例如:http://10.190.130.70:8072/ServiceForEXS.svc?wsdl
该wcf的协议是SOAP协议,所以可用SOAP UI工具进行生成XML脚本。
6.1.1.SOAP UI生成XML
打开SOAP UI工具,新建一个SOAP项目,在Initial WSDL输入中输入
http://10.190.130.70:8072/ServiceForEXS.svc?wsdl点击OK按钮。
点击OK按钮后,可看到WCF接口的全部方法名称。
双击PutNetworkStatus后打开右边的窗口公开。
6.1.2.SOAP UI测试接口
将?替换成测试参数,MCUMapID参数日为气站的MCUID,而Status为气站的状态,1为断开,0为正常。
测试之前MCUID为1000122的气站的状态为断开。
点击运行按钮后,运行成功后,在右边框可看到服务器的响应数据,查看预期的返回值。
在页面上查看气站的状态,显示正常。
6.1.3.JMeter测试
除了可使用SOAP UI工具进行接口测试外,当然也可以使用Apache JMETER 的SOAP/XML –RPC Request的进行接口测试和并发测试。
打开Jmeter界面后,新建一个ThreadGroup。
选择Thread Group后,右键弹出菜单->Add->Sampler->SOAP/XML-RPCRequest。
复制相应的数据。
将对应的数据拷贝 到SOAP/XML-RPC Request界面中。
选择Thread Group后,右键菜单->Add->Listener->ViewResults Tree
点击运行按钮。
在View Results Tree中查看SamplerResult信息。
查看View Result Tree中的Request信息。
响应数据是期望返回的结果。
以上是WCF的接口测试,而并发测试可参数http的参数化和并发设置去测试。
6.2.Web API测试
测试案例:1.客户端调用web API时,发送参数请求后,web API进行接收到请求后,根据发送过来的参数进行查询到订单数据,让后将订单数据返回到客户端。
调用web api处理流程
6.2.1.测试准备
注意:测试之前需要跟开发人员确认好,测试哪个接口的方法,该方法的参数是什么,并且数据有没有涉及到加密,请求的头部有没有附加其它数据。6.2.2.创建JMeter脚本
本次测试接口的方法
测试的方法地址是:api/values/GetEnquiry而发送的参数主要是存放在header中。那么我们下面进行简单测试web API的接口调用。
打开JMeter后,创建在TestPlan下创建一个Thrad Group后,让后在Thread Group下分别创建HTTP Header Manager,HTTP Reqeust,View Results Tree等元素。
6.2.2.1.Thread Group
6.2.2.2.HTTP Header Manger
6.2.2.4 View Results Tree
点击Start按钮运行测试,运行结果后,点击ViewResults Tree查看结果。
6.2.2.6.查看测试结果
在View Results Tree中,选择一个结果后,查看Responsedata的数据,检查返回数结果是否正确和期望的结果。注意:虽然显示是正确的标记,但不代表数据正确。
也就是说测试过程状态和步骤是正确的,但不代表数据就正确。除了查看Responsedata之外,也可以查看Sampler Result和Result的数据。
在Response Timer VS Threads中查看用户的响应时间。该功能是需要安装插件才可以。如果需要更详细的测试结果,可以根据需求,添加更多的元素组件来进行测试。
7.Web API传送JSON数据格式
传送json格式的数据到Web API端,在Jmeter中有两种方法,一种是在Parameters中直接输入json的数据,另外一种是在body中输入json数据。下面进行一个Web API项目进行实现两种不同的方式来传送json格式的数据。另外需要说明的是,
7.1.方法1
在HTTP Request的Parameters选项中输入json数据。7.1.1.添加Thread Group
添加一个线程组,可根据需求,设置并发数量。
7.1.2.设置HTTP Header Manager
7.1.3.添加HTTP Request
{key:”value”,key2:”value2”,……}
7.1.4.添加View Result Tree
在View Result Tree中查看取样器的数据,检查Reponse Header的数据。
在View Result Tree中查看Request选项卡的POST的json格式数据和请求头信息。
在View Reuslt Tree中查看Response Data选项卡,响应数据正确。以上就是在HTTP Request中输入json格式数据传送到web api的测试方法。
7.2.方法2
7.2.1.添加Thread Group
添加一个线程组,可根据需求,设置并发数量。
7.2.2.设置HTTP Header Manager
由于在web api中需要获取http header中的token认证,所以需要在头部设置token的值,另外传送json格式数据,必须要在头部设置Content-Type=application/json,
否则,会导致传输数据错误。
7.2.3.添加HTTP Request
在HTTP Reuqest的Body Data选项卡中添加传送json格式的数据。数据格式为:
{key:”value”,key2:”value2”,……}
7.2.4.添加View Result Tree监听器
在View Result Tree中查看取样器的数据,检查Reponse Header的数据。
在View Result Tree中查看Request选项卡的POST的json格式数据和请求头信息。
在View Reuslt Tree中查看Response Data选项卡,响应数据正确。
以上就是在HTTP Request中输入json格式数据传送到web api的测试方法。
8..IP欺骗
最近在使用jmeter进行压力测试时需要使用类似于loadrunner的IP欺骗功能,经问津度娘无果后决定再次耐心研究jmeter官方文 档,终于发现在jmeter2.5以上的版本
8.1.准备工作
1、window7一台,安装jdk1.6环境,此处就不再累赘讲述。2、下载最新jmeter 2.11,链接地址:http://jmeter.apache.org/download_jmeter.cgi,下载zip包解压即可,双击bin/jmeter.bat启动jmeter;
3、使用IP欺骗功能必须得本地有多个可用IP,通常普通的PC机只有一个物理网卡,这就需要我们手工设置多IP绑定同一网卡:
a、开始菜单 -> 控制面板 -> 网络共享中心 -> 更改适配器设置 -> 本地链接
b、右键本地链接 -> 属性,选择Internet 协议版本4(双击打开窗口),如果是采用自动获取IP,得通过手工设置IP
c、在属性窗口中选择高级按钮,选择IP设置,点击添加,输入新的IP地址(须要注意在局域网内不要有IP冲突,可以事先ping一下找没有使用的IP),
4、设置好多个IP后就可以开始使用jmeter的IP欺骗功能了,这里要注意的是到目前为止,基于http 请求必须使用httpClient4方可成功。
首先我们把设置好的IP保存在cvs文件中方便我们导入到jmeter参数中:
5、在jmeter测试计划中添加配置元件 并配置IP参数
6、对http 请求进行调整
针对每个http都要设置一遍,jmeter在每个并发线程开始时从文件中取一个IP值;
测试结果:
结果可以从服务端通过日志观察变化,也可以通过jmeter 的察看结果树看到效果:
9.参考附录
9.1.术语说明
(1)Aggregate Graph集合报告
图表含义说明如下:
Label:说明是请求类型,如Http,FTP等请求。
#Samples:也就是图形报表中的样本数目,总共发送到服务器的样本数目。
Average:也就是图形报表中的平均值,是总运行时间除以发送到服务器的请求数。
Median:也就是图形报表中的中间值,是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
90%line:是指90%请求的响应时间比所得数值还要小。
Min:是代表时间的数字,是服务器响应的最短时间。
Max: 是代表时间的数字,是服务器响应的最长时间。
Error%:请求的错误百分比。
Throughput:也就是图形报表中的吞吐量,这里是服务器每单位时间处理的请求数,注意查看是秒或是分钟。
KB/sec:是每秒钟请求的字节数。
使用分析:
在测试过程中,平均响应时间是我们性能测试的一个重要衡量指标,但是在测试中,特别是在聚合报告中,得出的90%Line,我这里参考《《LoadRunner 没有告诉你的》
之一——描述性统计与性能结果分析》,我认为90%Line等同于该文作者提出的90%响应时间,这个数值对我们性能测试分析也很有参考价值。90%响应时间是说在发送
的请求中,90%的用户响应时间都比得到的数值上要短,同时说明,一个系统在应用时,90%的用户响应时间都能达到这个数值,那么就为系统性能分析提供了很好的
参考价值。
参考地址:http://blog.163.com/huo_jintao/blog/static/6152838020090130331286/
9.1.1.监听服务器图像插件下载地址
PerfMon Server Agent插件下载地址:https://jmeter-plugins.org/wiki/PerfMonAgent/
旧版本的插件下载地址:https://jmeter-plugins.org/downloads/old/
9.1.2.使用插件管理方式下载插件
在Jmeter工具中,其实除了工具本身拥有的功能外,还还不能满足测试的需求,可以使用插件功能。要使用插件管理功能,必须要下载Jmeter Plugins Manger.jar包。9.1.2.1.下载插件管理包
Jmeter Plugins Manage.jar包下载地址:https://jmeter-plugins.org/wiki/PluginInstall/
下载成功后,需要将文件拷贝到jmeter的lib/ext目录下。
9.1.2.2.启动插件管理界面
打开JMeter Plugins Manager界面后,显示3个选项卡:
Installed Plugins:显示已经安装的插件。
Available Plugins:显示可以下载的插件。
Upgrades:显示可升级的插件。
9.1.2.3 下载插件
在AvailablePlugins选项卡中,选择KafkaSupport插件后,点击ApplyChanges and Restart JMeter按钮就恶意开始下载。
下载的过程中,网速非常缓慢,需要耐心等待,甚至可能下载不成功,需要耐心等待和重试下载多次。
9.2 在Centos下启动jmeter-server是提示:Server failed to start: java.rmi.RemoteException: Cannot start. localhost.localdomain is a loopback address.
解决方法1:http://stackoverflow.com/questions/3150448/jmeter-loopback-address-error-when-launching-jmeter-server-on-linux
在linux服务器下,设置环境变量:
export RMI_HOST_DEF=-Djava.rmi.server.hostname=XXX.XXX.XXX.XXX
或者运行时,加入参数
./jmeter-server -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
或者在jmeter.server文件中添加:
RMI_HOST_DEF=-Djava.rmi.server.hostname=XXX.XXX.XXX.XXX
可参考以下文章:
http://blog.csdn.net/lcm_up/article/details/17594551
http://gmwen.blog.163.com/blog/static/18800705720116511927749/
https://voidtech.wordpress.com/2012/10/05/jmeter-fix-jmeter-server-server-failed-to-start-java-rmi-remoteexception-cannot-start-hostname-is-a-loopback-address/
9.3.在linux环境下进行分布式测试,查看控制端的jmeter中的view result tree中的response data时,
没有响应数据。
解决方法:在 Remote batching configuration板块中将mode=Standard前面的#去掉或者修改成为mode=Batch,如果不修改mode前面的#,可能无法收集到Slave服务器并发的数据。