Jmeter Java Sampler最简使用指南

2,213 阅读2分钟

1.Jmeter 介绍

Jmeter是Java开发者做性能测试的非常好用的工具,本文记录下第一次使用Jmeter时,maven和相关配置示例。

2.maven 依赖

引用Jmeter的maven依赖,注意scope一定要是provided,以保证打包时,jmeter的包不会被打入。

<dependency>
   <groupId>org.apache.jmeter</groupId>
   <artifactId>ApacheJMeter_java</artifactId>
   <version>5.0</version>
   <scope>provided</scope>
</dependency>

maven build中的配置,把整个项目,打包至一个jar包,即所有的dependency都放在里面。

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-assembly-plugin</artifactId>
   <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
       </descriptorRefs>
    </configuration>
    <executions>
        <execution>
            <id>assemble-all</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

3.性能测试类

public class HelloSampler extends AbstractJavaSamplerClient implements Serializable {

    @Override
    public void setupTest(JavaSamplerContext context) {
        super.setupTest(context);
    }

    @Override
    public void teardownTest(JavaSamplerContext context) {
        super.teardownTest(context);
    }

    @Override
    public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
        SampleResult sampleResult = new SampleResult();
        sampleResult.sampleStart();

        try {
            //TODO run test
            sampleResult.setSuccessful(true);
        } catch (Exception e) {
            e.printStackTrace();
            sampleResult.setSuccessful(false);
        }
        sampleResult.sampleEnd();
        return sampleResult;
    }
}

1.继承自AbstractJavaSamplerClient,并重写runTest方法

2.SampleResult.sampleStart(), sampleEnd()用于统计调用时间

3.SampleResult.setSuccessful(...)标示该次调用是否出错

4.编写测试配置文件

1.将项目工程使用maven打包

比如打包后名称为jmeter-test-1.0.0-jar-with-dependencies.jar,将该jar包,拷贝至jmeter目录的apache-jmeter-5.0/lib/ext

2.启动Jmeter

选择添加-> 线程 -> 线程组

3.添加Java请求

线程组中选择添加-> 取样器-> Java请求

4.添加Java测试类

Jmeter会自动扫描到已经添加的Java类,直接选择即可

5.添加汇总报告

只有添加汇总报告后,运行结束后才会显示汇总信息 按图选择添加汇总报告即可

6.命令行运行

./jmeter.sh -n -t hello-jmeter.jmx 便可生成如下的汇总报告:

Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary + 15476 in 00:00:11 = 1900.3/s Avg: 72 Min: 9 Max: 792 Err: 0 (0.00%) Active: 128 Started: 128 Finished: 0
summary + 63500 in 00:00:30 = 1904.2/s Avg: 60 Min: 8 Max: 398 Err: 0 (0.00%) Active: 128 Started: 128 Finished: 0
summary = 78976 in 00:00:41 = 1924.1/s Avg: 62 Min: 8 Max: 792 Err: 0 (0.00%)

1900.3/s 表示截止到该次的QPS

Avg表示接口平均响应时间

Min表示接口最小响应时间

Max表示接口最大响应时间

Err表示接口返回错误的个数