jmeter的拓展开发之JAVA请求开发

jmeter的java请求拓展开发方法需要实现JavaSamplerClient接口,此接口下面有4个方法:

setupTest(初始化方法)
runTest(实现具体的业务)
teardownTest(收尾工作)
Arguments(显示在jmeter上的属性)

打包完成后把jar报放在jmeter的lib目录下
1.MAVEN工程下需要引入一下3个依赖:

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

1.具体的代码如下:

import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;


public class Secord implements JavaSamplerClient {
    public static final String URLNAME="URL";
    public static final String DEFAULTURL="http://www.baidu.com";
    private String inputUrl;
    /**
     *初始化方法
     * @param javaSamplerContext
     */
    public void setupTest(JavaSamplerContext javaSamplerContext) {
       //jmeter上接受用户输入的变量
        inputUrl=javaSamplerContext.getParameter(URLNAME,DEFAULTURL);
        System.out.println("用户输入的地址是:"+inputUrl);
        System.out.println("start");
    }

    /**
     * 实现你功能具体的逻辑
     * @param javaSamplerContext
     * @return
     */
    //放在查看结果树当中

    String resultDate;
    public SampleResult runTest  (JavaSamplerContext javaSamplerContext) {
       SampleResult result =new SampleResult();
        StringBuffer sb=new StringBuffer();
//        HttpGet httpGet=new HttpGet("https://www.baidu.com");
//        DefaultHttpClient defaultHttpClient=new DefaultHttpClient();
//
//            HttpResponse response;
//        try {
//            HttpPost httpPost=new HttpPost();
//            response = defaultHttpClient.execute(httpGet);
//
//            String data= EntityUtils.toString(response.getEntity(),"UTF-8");
//            System.out.println("test");
//            resultDate="响应结果";
//
//            result.setSuccessful(true);
//            result.setResponseData(data, "utf-8");
//            result.setDataType(SampleResult.TEXT);
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
        try {
            URL url=new URL(inputUrl);
            URLConnection connection=url.openConnection();

            byte[]buffer=new byte[1024];
            int len;

            result.sampleStart();//标记事务开始
            InputStream in=connection.getInputStream();
            while ((len=in.read(buffer))!=-1){
                resultDate=new String(buffer,"UTF-8");
                sb.append(resultDate);
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        resultDate=sb.toString();
        result.setSampleLabel("sss");
        result.setSuccessful(true);
        System.out.println(resultDate);
        result.setResponseData(resultDate,null);
        result.setDataType(SampleResult.TEXT);
        result.sampleEnd();

        return result;
    }

    /**
     * 收尾工作
     * @param javaSamplerContext
     */
    public void teardownTest(JavaSamplerContext javaSamplerContext) {
        System.out.println("end");
    }

    /**
     * 决定显示在jmeter上的属性
     * 一选择属性就会显示
     * @return
     */
    public Arguments getDefaultParameters() {
        System.out.println("getDefaultParameters");
        Arguments arguments=new Arguments();
        arguments.addArgument(URLNAME,DEFAULTURL);
        return arguments;
    }
}
3.运行maven打包命令maven  clean package将jar报放在jmeter的lib下
4.一选择这个类,在控制台就输出了:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190629224204470.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNDQ3NTMz,size_16,color_FFFFFF,t_70)

`
    5.点击运行结果如下:
    
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190629224616838.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwNDQ3NTMz,size_16,color_FFFFFF,t_70)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值