美文网首页
jmeter 转载 亲测可用

jmeter 转载 亲测可用

作者: 夏树的宝马 | 来源:发表于2017-06-03 17:41 被阅读77次

比较重要的文档
http://jmeter.apache.org/api/org/apache/jmeter/protocol/java/sampler/JavaSamplerContext.html
http://jmeter.apache.org/api/org/apache/jmeter/config/Argument.html

首先我们需要查看某个类的方法可以访问官网去查看对应的方法,
也可以想在 elipse ctrl+shift+T 参考到某个类应该是在那个包里面,
比如 jmeter 的javasample请求 中的 SampleResult

package com.test.webservice;

public class Hello {
    public String sayHello() {
        return "Hello";
    }

    public String sayHelloToPerson(String s) {
        if (s == null || s.equals(""))
            s = "nobody";
        return (new StringBuilder()).append("Hello").append(s).toString();

    }

    public int sum(int a, int b) {
        return a + b;
    }
}

package com.test.webservice;

import java.util.logging.Logger;

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 com.test.webservice.Hello;

public class perftest extends AbstractJavaSamplerClient {
    private String a;
    private String b;
    // resultdata 会返回在结果数中
    private String resultData;
    
    //这个方法是用来自定义java方法的入参的。
    //params.addArgument("num1",""),表示入参名字为num1,默认值为空。
    //设置可用参数及默认值      这个是从界面获取参数的东西 
    //JavaSamplerClient类的方法,我们从AbstractJavaSamplerClient继承,详细可以查看
    //http://jmeter.apache.org/api/org/apache/jmeter/protocol/java/sampler/AbstractJavaSamplerClient.html
    public Arguments getDefaultParameters(){
        Arguments params=new Arguments();
        params.addArgument("num1","1");
        params.addArgument("num2", "2");
        return params;
    }
    
    
    //每个线程测试前执行一次,做一些初始化工作;
    public void setupTest(JavaSamplerContext arg0){

    }
    //开始测试,从arg0参数可以获取参数值;
    @Override
    public SampleResult runTest(JavaSamplerContext arg0) {
        a=arg0.getParameter("num1");
        b=arg0.getParameter("num2");
        SampleResult sr=new SampleResult();
        //这个是在查看结果树中显示,表示的是那个运行后名称,可以不用设置
        sr.setSampleLabel("java请求哦");
        try{
            //jmeter 开始统计响应时间标记
            sr.sampleStart();
            Hello test =new Hello();
            //通過下面的操作就可以將被测方法的响应暑促到jmeter的查看结果数中的响应数据里面了。
            resultData=String.valueOf(test.sum(Integer.parseInt(a), Integer.parseInt(b)));
            if (resultData !=null && resultData.length()>0){
                sr.setResponseData("结果是: "+resultData, null);
                sr.setDataType(SampleResult.TEXT);   
                System.out.println(sr.getResponseDataAsString());
                this.getLogger().info("ssssss");;
            }
            sr.setSuccessful(true);
        }catch(Throwable e){
            sr.setSuccessful(false);
            e.printStackTrace();
        }finally{
            //jmeter 结束统计响应时间标记
            sr.sampleEnd();
        }
        return sr;
    }
    
    
    //测试结束时调用;teardown
    public void teardownTest(JavaSamplerContext arg0){

    }
    
//  mian方法  主要需要自己设置参数   参数类  arguments    java请求上下文管理,如果导入java需要把main方法注释
    public static void main(String[] args) {
        //初始一个参数参数的类,然后把东西传入
        Arguments params=new Arguments();
        params.addArgument("num1", "3");
        params.addArgument("num2", "4");
        //初始一个java请求的上下文管理
        JavaSamplerContext arg0=new JavaSamplerContext(params);
        perftest test=new perftest();
        test.setupTest(arg0);
        test.runTest(arg0);
        test.teardownTest(arg0);
    }
}

你的博客虽好但是下一秒就是我的了

相关文章

网友评论

      本文标题:jmeter 转载 亲测可用

      本文链接:https://www.haomeiwen.com/subject/ixqmfxtx.html