Jmeter压力测试Java API

平时我们会使用Jmeter测试我们的http接口,但如果使用它测试一个Java API呢?比如工具类。
相比http接口,会稍微复杂些,需要我们写一个测试程序,具体如下:

实现Jmeter的Java Request接口

在Jmeter安装目录下面,我们能找到需要的jar,添加到工程的classpath下面:

Jmeter_home/lib/ext目录下,如果Jmeter已经启动了,这里要重启一下
				\_ApacheJMeter_core.jar
				\_ApacheJMeter_java.jar

如果我们想建maven工程,则添加如下依赖:

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

实现接口,或者继承类:

import java.util.Iterator;
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;

/**
 * Jmeter测试程序.
 * 或继承AbstractJavaSamplerClient
 */
public class MyTest extends AbstractJavaSamplerClient {

    @Override
    public void setupTest(JavaSamplerContext javaSamplerContext) {
        // 当前测试之前要做工作,相当于junit的before
    }

    @Override
    public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
        SampleResult sr = new SampleResult();
        sr.sampleStart();
        try {
        	// 测试代码
        	sr.setSuccessful(true);
        } catch(Exception e) {
            sr.setSuccessful(false);
            getLogger().error("Occur error", e)
        }
        sr.sampleEnd();
        return sr;
    }

    @Override
    public void teardownTest(JavaSamplerContext javaSamplerContext) {
		//相当于junit的after
    }

    @Override
    public Arguments getDefaultParameters() {
    	// 设置一些默认的固定参数
        Arguments arguments = new Arguments();
        arguments.addArgument("name","zhangsan");
        return arguments;
    }
}

测试准备完毕,打成jar包,放到Jmeter_home/lib/ext目录下,然后去配置Jmeter测试。

如果Jmeter已经启动了,这里要重启一下
在这里插入图片描述

发布了36 篇原创文章 · 获赞 23 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Cmainlove/article/details/88854206