使用JMeter对java程序进行压力测试

问题描述:今天遇到一个问题是需要对java程序进行压力测试,之前的压力测试一般都是针对web应用程序,一时之间没有思路,经过查询原来还是通过JEmeter进行测试,以下是步骤清单。

解决步骤

1.首先在项目中引入jmeter需要的jar包,这里需要注意的是版本要与你本地的JMeter本本保持一致。

        <!-- jmeter压力测试相关,JMeter与本地版本保持一致即可 -->
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_core</artifactId>
            <version>5.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_java</artifactId>
            <version>5.2.1</version>
        </dependency>

2.构建一个测试类,该类必须继承自 AbstractJavaSamplerClient

public class P1SignTest extends AbstractJavaSamplerClient {

    /**
     * 把测试的一些默认数据在程序运行前显示到JMeter客户端,
     * 如果设置类下面的参数则可以再JMeter中赋值。
     * @return
     */
    @Override
    public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument("certId", "");
        params.addArgument("original", "");
        return params;
    }

    /**
     * 测试执行的循环体,根据线程数和循环次数的不同可执行多次,
     * 在这里面调用你的业务代码即可
     * @param context
     * @return
     */
    @Override
    public SampleResult runTest(JavaSamplerContext context) {
        SampleResult sampleResult = new SampleResult();
        // 从JMeter中获取参数
        String certId = context.getParameter("certId");
        String original = context.getParameter("original");      

        // 计时开始
        sampleResult.sampleStart();

        //测试方法
        try {
            // 业务代码在这里面调用,你需要对那个方法进行压力测试就在这里面调用即可。

            //将结果写入结果树:在jmeter的监听器-查看结果树时即可查看返回结果
            sampleResult.setResponseData("执行结果是:" + result, null);
            sampleResult.setDataType(SampleResult.TEXT);
            sampleResult.setSuccessful(true);
        } catch (Exception e) {
            sampleResult.setSuccessful(false);
            e.printStackTrace();
        }
        return sampleResult;
    }

 /**
 * 测试的时候用,打包的时候注释掉即可
 *
 **/
 public static void main(String[] args) {
        Arguments params = new Arguments();
        params.addArgument("certId", "60c895631462c37c35e951bb");
        params.addArgument("original", "签名数据");
      
        JavaSamplerContext context = new JavaSamplerContext(params);
        // 业务类
        P1SignTest p1SignTest = new P1SignTest();
        p1SignTest.setupTest(context);
        p1SignTest.runTest(context);
        p1SignTest.teardownTest(context);*/
    }

}
   

3. 将程序打包,并将jar包导出到JMeter的安装目录中,具体目录为:%JMETER_HOME%/lib/ext中,让后启动JMeter。

在线程组中==》添加==》取样器==》java请求

在这里选择启动类以及填写参数值,红色为需要测试的启动类,蓝色为需要填写的参数。

最后点击启动即可在察看结果树中看到响应结果了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值