JMetter使用文档

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JMetter是什么?

JMetter不仅仅可以测试HTTP,HTTPs还能测试SOAP,FTP,数据库JDBC,JMS,SMTP,POP等等,更重要的一点,JMetter支持分布式测试。

下面我主要介绍如何使用JMetter来进行WebService性能测试

JMeter官方下载地址:

/download_jmeter.cgi

下载后解压:

JMetter启动界面:

JMetter里一个测试被称之为一个测试计划,在测试计划下首先需要new一个线程组,JMetter是用一个线程模拟一个客户端用户的,所以多个线程就相当于多个用户。

线程组添加方法如图:

在测试计划节点上右键,添加 线程组

然后再在线程组节点下添加测试样本,即告诉每个线程执行什么测试样本

线程组节点上右键,添加-->Sampler,

我们会看到JMetter提供了很多类型的测试样本,看名称就一目了然了,进行WebService性能测试需要添加SOAP/XML-RPC Request

我们需要着重关注上图标注的几个配置参数:

其中URL就是我们WSDL的URL路径,比如:

localhost:8080/myservice?wsdl

Use KeepAlive是HTTP1.1版本中新添加的请求头信息,它的作用就是当前后两个连续的HTTP请求之间的时间间隔小于某个限定值的时候,HTTP服务器端就会为这两个请求共用一个HTTP连接,从而提高服务器性能,我们知道服务器建立TCP连接是很耗性能的。最好是启用这个扩展功能,前提是你使用的HTTP1.1版本的协议。

SOAP/XML-RPC Data是SOAP消息体数据,这个数据需要我们借助TCPMon工具来获取,

至于TCPMon如何使用请查看《TCPMon监听SOAP消息》文档,

打开TCPMon工具进行一些监听配置

TCPMon监听添加完后,通过Eclipse启动我们的Server

客户端的xxxxImplService类里的8080端口号需要修改成TCPMon监听的555

然后我们通过Eclipse运行我们的Client端调用代码,这样TCPMon就能截获我们需要的SOAP消息啦,

xmlns:S="/soap/envelope/">

xmlns:ns2="cxf.test./">STUDENT

把它copy到JMEtter的SOAP/XML-RPC Data里,如图:

然后我们为测试样本添加监听器,这里的所谓监听器就是各种数据统计

在Sampler节点上右键,添加 监听器

这里提供了很多监听器,自己添加玩玩就知道了。比如这样:

最后启动我们的测试计划,点击工具条里的这个按钮

点击启动后可能会提示你这个

意思是你还没有保存你的测试计划,点“是“

JMX其实就是一个XML文件

这里如果是个绿色标志,说明测试计划没有出现错误,所有测试样本全部执行成功,点击我们添加的监听器查看测试的统计结果

根据监听器生成的各种测试报告就可以大致分析出WebService的性能情况。下面介绍如何使用JMetter进行WebService的分布式测试:

首先说下JMetter实现分布式测试的大致思路是:

首先有一台测试总控服务器,在总控服务器安装JMetter,并启动它,然后其他子服务器注册到主控服务器,然后主控服务器把测试计划(你也可以理解为测试任务)通过RMI(远程方法调用)传递给子服务器上安装的JMetter,然后主控服务器可以控制启动哪台子服务器上的JMetter并启动它执行测试计划。

这里的JMetter主控服务器是不干活的,是布置任务的角色。

下面说说具体的操作步骤:

首先需要在JMetter主控服务器的jmeter.properties配置文件中对各子服务器进行注册,

打开jmetter.properties配置文件

162行注释写的很清楚,comma delimited 逗号分隔,意思就是各个子服务器的IP用逗号分隔,164行注释介绍了带上端口号的配置方法,不加端口号默认就是80端口

然后你的其他子服务器都需要启动jmetter-server.bat,这样主控服务器才能跟jmetter.properties里注册的子服务器进行通信。

Jmetter-server启动后界面:

然后就是在你的主控服务器的JMetter里添加测试计划,添加线程组,添加测

试样本,添加监听器等等,上面已经介绍了。

最后远程启动子服务器上的JMetter,如图:

因为我没有多台子服务器,我在jmetter.properties的remote.hosts里只配置了一个我本机的ip,所以这里显示一个127.0.01机器,如果你jmetter.properties里注册了多个子服务器,那这里就会显示多个ip。在我的这种一台机器的情况下,我的机器既充当了主控服务器的角色又充当了子服务器的角色。

点击127.0.0.1启动子服务器,当然你也可以选择下面的远程全部启动。

这样就可以远程控制我们的子服务器进行样本测试了。OK,分布式测试就介绍完毕了!

相关文档
最新文档