加算処理を実行するJavaクラスを以下のように定義します。
public class MathCalculator {
public int addNumbers(int x, int y){
int result = x + y;
return result;
}
}
JMeter Javaリクエスト用のテストクラスは次の通りです。
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 JMeterJavaTest extends AbstractJavaSamplerClient{
private SampleResult result;
private String input1;
private String input2;
private String output;
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("value1","");
params.addArgument("value2","");
return params;
}
public void setupTest(JavaSamplerContext context) {
result = new SampleResult();
}
public SampleResult runTest(JavaSamplerContext context) {
input1 = context.getParameter("value1");
input2 = context.getParameter("value2");
result.sampleStart();
try{
MathCalculator calc = new MathCalculator();
output = String.valueOf(calc.addNumbers(Integer.parseInt(input1), Integer.parseInt(input2)));
if (output != null && !output.isEmpty()) {
result.setResponseData("計算結果:"+output, null);
result.setDataType(SampleResult.TEXT);
}
System.out.println(output);
result.setSuccessful(true);
}catch(Throwable e){
result.setSuccessful(false);
e.printStackTrace();
}finally{
result.sampleEnd();
}
return result;
}
public void teardownTest(JavaSamplerContext context) {
}
public static void main(String[] args) {
Arguments parameters = new Arguments();
parameters.addArgument("value1", "3");
parameters.addArgument("value2", "4");
JavaSamplerContext context = new JavaSamplerContext(parameters);
JMeterJavaTest test = new JMeterJavaTest();
test.setupTest(context);
test.runTest(context);
test.teardownTest(context);
}
}
mainメソッドを使用したローカルテストコードの例です。
public static void main(String[] args) {
Arguments parameters = new Arguments();
parameters.addArgument("value1", "5");
parameters.addArgument("value2", "6");
JavaSamplerContext context = new JavaSamplerContext(parameters);
JMeterJavaTest test = new JMeterJavaTest();
test.setupTest(context);
test.runTest(context);
test.teardownTest(context);
}