jmeter 測試java request 腳本


Jmeter 利用AbstractJavaSamplerClient 作為基類識別被測代碼。

被測類需要繼承AbstractJavaSamplerClient類,然后倒入jmeter安裝路徑下,進行測試。以下是詳細步驟: 

創建工程,導入以下兩個依賴:

		<!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_core -->
		<dependency>
			<groupId>org.apache.jmeter</groupId>
			<artifactId>ApacheJMeter_core</artifactId>
			<version>5.1.1</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_java -->
		<dependency>
			<groupId>org.apache.jmeter</groupId>
			<artifactId>ApacheJMeter_java</artifactId>
			<version>5.1.1</version>
		</dependency>

 創建MyJavaRequest 類,繼承AbstractJavaSamplerClient類,重寫其中一些方法:

getDefaultParameters方法:定義了線程參數。該方法中定義的參數會在Jmeter GUI頁面出現,要求填寫。
setupTest方法:test的准備工作。
runTest方法:被測試的java代碼寫在sampleStart和sampleEnd中間。執行時間會被系統計時。
teardownTest方法:測試之后的回收工作。
以下是一個簡單的被測試類。

package el.testRequest;
import java.util.Random;

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 MyJavaRequest extends AbstractJavaSamplerClient {
    private String a;
    private int b;
    
    @Override
    public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument("String1", "hello");
        params.addArgument("number2", "1234");
        return params;
    }

    @Override
    public void setupTest(JavaSamplerContext arg0) {
        a = arg0.getParameter("String1");
        b = arg0.getIntParameter("number2");
    }

    public SampleResult runTest(JavaSamplerContext context) {
        SampleResult results = new SampleResult();
        results.setSampleLabel("test speed of print something");
        Random r = new Random();
        try {
            results.sampleStart();
            System.out.println(a + " " + b);
            Thread.sleep(r.nextInt(100));
            results.setSuccessful(true);
        }catch(Exception e) {
                results.setSuccessful(false);
                e.printStackTrace();
        }finally {
            results.sampleEnd();
        }
        results.setResponseData("a is " + a + " and b is " + b,null);
        return results;
    }

    @Override
    public void teardownTest(JavaSamplerContext arg0) {
        System.out.println("test is over");
    }

}
將該類導出成Jar文件,既可以是runable的也可以是一般的。如果被測試類還依賴了別的類,要將被依賴類也一起導出成一個jar文件。

 放在Jmeter的安裝路徑中:C:xxxxxxxxxxx\apache-jmeter-5.1.1\lib\ext

 

重啟Jmeter,添加Java request 測試元件:

 被測試類被成功識別到。線程參數出現在頁面上,有默認值。

 

添加一個結果樹,可以運行了:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM