JMeter Javaリクエストのmainメソッド内での実行方法

加算処理を実行する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);  
    } 

タグ: JMeter Java パフォーマンステスト

7月5日 18:25 投稿