当前位置:文档之家› Jmeter性能测试之JAVA脚本编写

Jmeter性能测试之JAVA脚本编写

Jmeter性能测试脚本编写
一。

jmeter使用简介
简单点说,使用jmeter就是新建个Test plan 在test plan 下建个Thread
Group ,Thread Group 下新建个simpler来发起请求,然后新建个listener,一般选择View Results Tree和Aggregate Report 来收集请求的结果数据,View Results Tree 侧重于单个请求的具体结果,Aggregate Report 侧重于多次请求后平均计算的数据结果
具体的步骤网上有很多文章,这里不再详细述说了
这里介绍一下同步定时器(Synchronizing Timer):在该定时器处,使线程等待,一直到指定的线程个数达到后,再一起释放。

可以在瞬间制造出很大的压力。

没错,它和loadrunner 的集合点(rendezvous point)差不多的功能。

为什么要用这个组件呢?因为在线程组中设置的线程是依次去访问请求的,不是多个线程一起同步去访问的。

要是想模拟线上的多个用户同时并发访问的情况,
最好使用Synchronizing Timer来设置一下。

Number of Simulated User to Group:模拟用户到组数,即设置组的用户数,达到该用户数后才进行接口的请求
Timeout in milliseconds :超时(毫秒),设置超时时间,即组在超时时间后达不到设置的线程数时,会丢弃继续请求
这些配置完成后,生成的是一个jmx为后缀的文件,里面的内容是xml格式文件,是这样的:
二。

使用jmeter API 来构建自己的请求
一般来说,被压测的接口常用的就是那几种:http, socket,webservice,soap 这些,这些类型请求都可以使用各种不同的sampler来构建,
但也可以完全以java请求来构建,在java语言中以编码来自己构建请求,灵活方便
下面来说说简单的步骤:
首先,构建一个java工程,你通过eclipse构建可以,通过intellij idea 构建可以,通过maven 构建也可以
接着,在构建的java工程的lib里引入有关jmeter API的三个jar包:
ApacheJMeter_core.jar,ApacheJMeter_core.jar,ApacheJMeter_java.jar,
这三个jar包从哪来?在jmeter安装目录的lib/ext目录下
接着,编写java代码来构建请求
1) 创建1个类,要继承AbstractJavaSamplerClient类
2)setUpTest()方法用来接受java Request请求中输入的参数
getDefaultParameters()方法设置万一java Request请求中没有输入参数时,默认调用的参数
runTest()方法发起接口请求以及获取响应结果
注意:这里新建了个 SampleResult result = new SampleResult(); 这个对象是专门用来获取接口请求的响应时间,处理时间这些数据的
在发起请求之前 result.sampleStart(); 表示已经开始统计请求,这一句是必现的
在Catch 块中 result.setSuccessful(false); 表示一旦出错,请求即是失败的
在方法最后要设置统计结束,否则是无法获得请求响应时间的
三。

在jmeter中创建java Request 的sampler
1) 将第二步中编写好的java脚本打成一个upload.jar的jar包(怎么打成jar包这里不再多讲,请自行baidu), 将生成的jar包放入jmeter安装目录下的lib/ext目录里
这里注意,如果java类中有涉及使用其他的第三方类(比如调用的接口类),要把第三方类的jar包也copy到jmeter安装目录下的lib/ext目录里
2)在test plan—Thread group 下新增一个sampler, 选择java Request
在Classname中选择中自己所写java类的类名,选中后就将类文件中所写的默认参数给带过来了
四。

以命令行方式运行jmeter
在压测机器上装好jmeter 后,运行
./jmeter -n -t upload.jmx -l out.jtl >run.log
其中 upload.jmx是jmeter通过图形界面配置后生成的文件,out.jtl是运行后产生的测试报告文件,可以把这种文件在Aggregate Report里打开。

当然,运行时可以直接tail -10f run.log 直接观看日志文件的输出
五。

持续运行jmeter
在压测基本目标达到后,想持续执行一段固定时间,可以直接修改jmx文件
在ThreadGroup 中修改一段
修改下面这部分,将ThreadGroup.scheduler设置为true,将ThreadGroup.duration设置为持续的时间(单位是秒)
附件中java和jmx文件
六。

jmeter运行日志
jmeter运行日志放在jmeter安装目录/bin下的jmeter.log中。

相关主题