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 测试元件:

 被测试类被成功识别到。线程参数出现在页面上,有默认值。

 

添加一个结果树,可以运行了:

 

转载于:https://www.cnblogs.com/testertry/p/11012804.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值