JMeter 測試 JAVA 接口


使用JMeter測試JAVA接口,需要編寫一個java類,繼承AbstractJavaSampleClient,實現具體接口的調用,然后將此工程打包為一個jar包,放置在JMETER_HOME\lib\ext目錄下,然后在JMeter里配置調用。

  • 編寫Java類,繼承AbstractJavaSampleClient
  • 打包 jar
  • 將jar包放置至 JMETER_HOME\lib\ext 目錄
  • JMeter里配置調用

1. 添加依賴

<dependency>
    <groupId>org.apache.jmeter</groupId>
    <artifactId>ApacheJMeter_java</artifactId>
    <version>2.7</version>
</dependency>

2. 編寫Java類

public class AdSearchServiceTest extends AbstractJavaSamplerClient {

    private static AdSearchService adSearchService;

    static {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        adSearchService = applicationContext.getBean("adSearchService", AdSearchService.class);
    }

    //
    @Override
    public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
        SampleResult sampleResult = new SampleResult();
        String keyword = javaSamplerContext.getParameter("keyword");
        AdSearchService.Param param = new AdSearchService.Param();
        param.setKeyword(keyword);
        param.setStart(1);
        param.setLimit(10);
        long start = System.currentTimeMillis();
        sampleResult.sampleStart();
        try {
            SearchApiResult kievResult = adSearchService.search(param);
            sampleResult.setResponseData(kievResult.getJson(), "utf-8");
            sampleResult.setLatency(System.currentTimeMillis() - start);
            sampleResult.setDataType(SampleResult.TEXT);
            sampleResult.setSuccessful(true);
        } catch (Exception e) {
            sampleResult.setSuccessful(false);
        }
        sampleResult.sampleEnd();
        return sampleResult;
    }


    public static void main(String[] args) {
        AdSearchServiceTest kiev = new AdSearchServiceTest();
        Arguments arguments = new Arguments();
        arguments.addArgument("keyword", "微信");
        JavaSamplerContext context = new JavaSamplerContext(arguments);
        SampleResult result = kiev.runTest(context);
        System.out.println(new String(result.getResponseData()));
    }
}

注意以下參數:

sampleResult.sampleStart();
sampleResult.setSuccessful(true/false);
sampleResult.sampleEnd();
由於需要統計耗時以及請求成功與否的判斷,需要設置以上參數,方便監聽器統計測試信息

3. 打包

  • 打包時需將相關依賴的包一同打包,否則會出現類找不到錯誤。(沒試成功)
  • 分開打包。打包時,將依賴 copy 至指定目錄,然后將 jar 添加至 JMeter 的 ex t目錄,最后在 JMeter 界面上指定依賴的 jar 包的目錄。
    • maven 插件配置
<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>3.0.1</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/lib</outputDirectory>
                            <excludeArtifactIds>
                                junit
                            </excludeArtifactIds>
                            <overWriteSnapshots>true</overWriteSnapshots>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

 其中,<outputDirectory>target/lib</outputDirectory> 指明了依賴的 jar 輸出的目錄;

JMeter 配置依賴:

 

 

4. 將jar包放置在JMeter_home\lib\ext 目錄下

5. 配置JMeter


免責聲明!

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



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