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); 表示一旦出错,请求即是失败的
在方法最后要设置统计结束,否则是无法获得请求响应时间的
相关推荐: