Jmeter二次开发入门

实现目的:
1、java方法打成jar包
2、jmeter二次开发调用该jar包方法
3、响应结果保存为jmete参数,供别的请求使用

使用工具:idea+maven

环境搭建略过。。。。

1、idea创建maven,写个简单加法:add,两个参数,运行成功

package com.gmrz.test;

public class TestAdd {

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

    public static void main(String[] args) {
        TestAdd testAdd = new TestAdd();
        System.out.println(testAdd.add(1,7));
    }
}

Jmeter二次开发入门_第1张图片
2、打个jar包,用于被jmeter调用
File -->Project Structure -->Artifacts --> Jar --> From module with dependencies.
Jmeter二次开发入门_第2张图片
选择自己的class,点击ok
Jmeter二次开发入门_第3张图片
点击菜单中“Build” -> “Build Artifacts”
Jmeter二次开发入门_第4张图片
Jmeter二次开发入门_第5张图片
点击build,jar包打好了
Jmeter二次开发入门_第6张图片
3、jmeter调用该jar包,传入加法需要的参数

新建个maven,用于二次开发:test_jmeter
Jmeter二次开发入门_第7张图片

导入jmeter二次开发核心jar包和加法jar包:File -->Project Structure–modulesJmeter二次开发入门_第8张图片
写个简单类,调用加法方法:JmeterSend1

package com.gmrz.jmeter;

import com.gmrz.test.TestAdd;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.threads.JMeterContextService;
import org.apache.jmeter.threads.JMeterVariables;

public class JmeterSend1 extends AbstractJavaSamplerClient{

    public void setupTest(JavaSamplerContext context){
        System.out.println("start");
    }
    public void teardownTest(JavaSamplerContext context) {
        System.out.println("end");
    }

    public SampleResult runTest(JavaSamplerContext context) {
        TestAdd t = new TestAdd();
        SampleResult s = new SampleResult();
        s.sampleStart(); // 开始统计响应时间,取样器开始运行
        s.setSampleLabel("client"); //聚合报告里的lable名称
        JMeterVariables vars = JMeterContextService.getContext().getVariables();
        String first = context.getParameter("a"); //获取jmeter传递的参数
        String second = context.getParameter("b");
        Integer a = Integer.parseInt(first);
        Integer b = Integer.parseInt(second);
        try {
            vars.put("result", String.valueOf(t.add(a,b))); //jmeter参数变量名称
            s.setSamplerData("参数a:"+first+"\t参数b:"+second); //设置请求的数据,在查看结果树中可以看到
            s.setResponseCode("200"); 
            s.setResponseMessage("Success"); //没这个请求会变红
            s.setSuccessful(true);
            s.sampleEnd();
            return s;
        }catch (Exception e){
            e.printStackTrace();
        }
        s.setResponseCode("500");
        s.setResponseMessage("fail");
        return s;
    }

    public Arguments getDefaultParameters() {
        //提取jmeter传递的参数
        Arguments args = new Arguments();
        args.addArgument("a", "");
        args.addArgument("b", "");
        System.out.println("get Arguments");
        return args;
    }
}

都有注释,自己研究吧,这是最基础的一个,根据需要可以在此基础上继续扩展

按打包步骤再打成jar包

4、打好的jar包放入jmeter:/lib/ext 下
Jmeter二次开发入门_第9张图片
打开jmeter,添加线程组–添加java请求–选择:JmeterSend1方法
Jmeter二次开发入门_第10张图片
有两个参数:a和b
Jmeter二次开发入门_第11张图片
代码里把加法的结果设为了jmeter变量:result
Jmeter二次开发入门_第12张图片
加个beanshell打印一下
Jmeter二次开发入门_第13张图片
参数传了一个3和1200

运行并查看结果

Jmeter二次开发入门_第14张图片
简单的jmeter二次开发,搞定收工
Jmeter二次开发入门_第15张图片
Jmeter二次开发入门_第16张图片

我java也是个半桶水,有问题的地方欢迎指正

你可能感兴趣的:(jmeter,java,intellij-idea)