在使用jmeter进行性能测试的时候,有可能会需要通过一些脚本去测试性能,(比如通过sokeeper的api去测试sokeeper的读写性能)。这时,我们可以通过Java Request实现,以下是操作步骤。
首先创建一个maven project。
因Jmeter的Java Request脚本依赖Jmeter的一些核心jar包,所以我们要maven项目的pom文件中添加Jmeter的一些依赖包:ApacheJMeter_core、ApacheJMeter_java:
编写Java Sample,继承AbstractJavaSample,并重写以下方法:
public
Arguments getDefaultParameters();可选,定义可用参数及默认值;
·
public
void
setupTest(JavaSamplerContext arg0):可选,测试前执行,做一些初始化工作;
·
public
SampleResult runTest(JavaSamplerContext arg0);必选,实现自定义请求;
·
public
void
teardownTest(JavaSamplerContext arg0):可选,测试结束时调用;
|
示例代码:
import
org.apache.curator.RetryPolicy;
import
org.apache.curator.framework.CuratorFramework;
import
org.apache.curator.framework.CuratorFrameworkFactory;
import
org.apache.curator.retry.ExponentialBackoffRetry;
import
org.apache.curator.utils.EnsurePath;
import
org.apache.jmeter.config.Arguments;
import
org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import
org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import
org.apache.jmeter.samplers.SampleResult;
public
class
CuratorRequestSample
extends
AbstractJavaSamplerClient {
protected
CuratorFramework client =
null
;
protected
long
subCount = 1l;
protected
long
TOTAL_SUB_COUNT = 100000l;
/**
* 定义可用参数及默认值
*/
public
Arguments getDefaultParameters() {
Arguments params =
new
Arguments();
params.addArgument(
"connect_str"
,
"192.168.103.136:2181,192.168.103.154:2181"
);
// 设置参数,并赋予默认值0
return
params;
}
/**
* 可选,测试前执行,做一些初始化工作,在Jmeter执行的时候,一个Thread只执行一次setupTest方法
*/
public
void
setupTest(JavaSamplerContext context) {
String connect_str = context.getParameter(
"connect_str"
);
RetryPolicy retryPolicy =
new
ExponentialBackoffRetry(
1000
,
4
);
client =
CuratorFrameworkFactory.builder().connectString(connect_str)
|