jmeter二次开发java请求

3 篇文章 0 订阅

1.创建一个Java工程: idea操作步骤:file——new——project——java——next——create project from templete[java hello word]——next

2.引入依赖jar包,idea操作步骤: file——project struct——libiraries—— + —— java——选择对应的jar包,其中ApacheJMeter_core.jar(必须)、ApacheJMeter_java.jar(必须)其他的根据实际情况添加

3.打可执行jar包,idea操作步骤:file——project struct——artifacts—— + —— jar——from modules with dependences——copy to the output directory and link via manifest —— ok

build——buildAtifacts

此步骤注意:类里面不能有main方法

4、将打出来的jar包与依赖jar包放到jmeter的lib/ext下面,重新启动jmeter,新建java请求,选择刚刚你写的类如下图:

 

源码如下

package com.ghw.jmeter;

import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.*;
import java.security.MessageDigest;
import java.sql.DriverManager;

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;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;


/**
 *
 * @author Alex
 */

public class GetRedisValues extends AbstractJavaSamplerClient {
    /* 声明全局变量 取样器结果集  和默认参数 */
    private SampleResult results;
    private String defautargs;
    private String ipANdPort;
    private String orderNo;
    private String merchantId;

    /* Implements JavaSamplerClient.setupTest(JavaSamplerContext) */
    public void setupTest(JavaSamplerContext arg0) {
        results = new SampleResult();
        results.setSamplerData(toString());
        results.setDataType("text");
        results.setContentType("text/plain");
        results.setDataEncoding("UTF-8");

        results.setSuccessful(true);
        results.setResponseMessageOK();
        results.setResponseCodeOK();

        defautargs = arg0.getParameter("defautargs", "");
        if (defautargs != null && defautargs.length() > 0) {
            results.setSamplerData(defautargs);
        }
    }

    /* Implements JavaSamplerClient.teardownTest(JavaSamplerContext) */
    public void teardownTest(JavaSamplerContext arg0) {
        System.out.println("treaddown");
    }

    /* Implements JavaSamplerClient.getDefaultParameters() */
    public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument("ipANdPort", "10.1.10.185:16379,10.1.10.185:16380,10.1.10.185:16381,10.1.10.185:16382,10.1.10.185:16383,10.1.10.185:16384"); // 定义一个参数,显示到Jmeter的参数列表中,第一个参数为参数默认的显示名称,第二个参数为默认值
        params.addArgument("orderNo", "16");
        params.addArgument("merchantId", "11");
        return params;
    }


    @Override
    public SampleResult runTest(JavaSamplerContext context) {
        int len = 0;
        results.sampleStart(); // 定义一个事务,表示这是事务的起始点,类似于LoadRunner的
        // lr.start_transaction
        //arg1 = context.getParameter("arg1");
        ipANdPort = context.getParameter("ipANdPort");
        orderNo = context.getParameter("orderNo");
        merchantId = context.getParameter("merchantId");
        doSign();
        results.sampleEnd(); // 定义一个事务,表示这是事务的结束点,类似于LoadRunner的
        // lr.end_transaction
        return results;
    }

    public void doSign(){
				//此处实现你想要实现的功能

        String result = "myresult";



        try {
            results.setResponseCode("testStr:" + defautargs);
            results.setResponseMessage("Do Sign");

            results.setResponseCode("UTF-8");
            results.setResponseCodeOK();
            results.setResponseData(result);
        } catch (Exception e) {
            results.setSamplerData(e.getMessage());
            results.setSuccessful(false); // 用于设置运行结果的成功或失败,如果是"false"则表示结果失败,否则则表示成功
        }

    }

    



}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值