Jmeter外部函数引用

1、Beanshell引用Jmeter变量

添加用户自定义变量,输入变量名称和变量值,添加Debug sampler,用于输出初始变量值。

 

添加Beanshell sampler,修改username变量值,添加Debug sampler用户输出修改后username变量值。Beanshell 内容如下:

vars.put("username","AutoLoadTest");

var a = vars.get("username");

log.info(a);

return a;

 

运行察看结果树,username变量值被修改。

 

2、Java请求调用外部jar

步骤:

1)创建java工程;

2)将{Jmeter_home}/lib/ext下的jar包导入Build path;

3)创建一个Test类并继承AbstractJavaSamplerClient接口;

4)Test调用实际被测方法Add;

5)Export为JAR file,并将jar包放入{Jmeter_home}/lib/ext

6)打开Jmeter创建线程组,新建java请求,引用jar包中的类。

被测方法Add代码如下:

package com.test.jmeter;

 

public class Add {

    public int sum(int a,int b)

    {

        return a+b;

    }

}

Test类方法如下:

package com.test.jmeter;

 

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.jmeter.Add;

 

public class Test extends AbstractJavaSamplerClient {

    private String a;

    private String b;

    private String resultData;

    // 自定义jmeter输入参数,设置默认值。

    public Arguments getDefaultParameters() {

        Arguments params = new Arguments();

        params.addArgument("num1", "");

        params.addArgument("num2", "");

        return params;

    }

    //每个线程测试前执行一次,做一些初始化工作;

    public void setupTest(JavaSamplerContext arg0) {

    }

    //开始测试,从arg0参数可以获得参数值;

    public SampleResult runTest(JavaSamplerContext arg0) {

        a = arg0.getParameter("num1");

        b = arg0.getParameter("num2");

        SampleResult sr = new SampleResult();

        sr.setSampleLabel( "Java请求名称");

        try {

                 // jmeter 开始统计响应时间标记

            sr.sampleStart();

            Add test = new Add();

            // 调用sum方法,保存结果。

            resultData = String.valueOf(test.sum(Integer.parseInt(a), Integer

                    .parseInt(b)));

            //将结果显示在jmeter察看结果树响应数据中。

            if (resultData != null && resultData.length() > 0) {

                sr.setResponseData("结果是:"+resultData, null);

                sr.setDataType(SampleResult.TEXT);

            }

            sr.setSuccessful(true);

        } catch (Throwable e) {

            sr.setSuccessful(false);

            e.printStackTrace();

        } finally {

                 // jmeter 结束统计响应时间标记

            sr.sampleEnd();

        }

        return sr;

    }

    //测试结束时调用;

    public void teardownTest(JavaSamplerContext arg0) {

 

    }

}

Jmeter中调用Test类如下:

 

运行结果:

 

3、Beanshell调用java文件

在D盘目录下创建.java文件,代码内容如下:

package com.test.jmeter;

 

public class Add {

    public int sum(int a,int b)

    {

        return a+b;

    }

}

Jmeter中新建Beanshell sampler,内容如下:

 

source("D:\\Add.java");用于引用外部java文件。

运行结果:

 

4、Beanshell调用jar

步骤:

1)创建java工程;

2)创建一个idNum类用于随机生成身份证号;

3)Export为JAR file,并将jar包放入{Jmeter_home}/lib/ext

4)打开Jmeter创建线程组,新建Beanshell sampler请求,import引用jar包中的类。

 

运行结果:

 

 

posted on 2016-08-17 15:17  TestWorld  阅读(1986)  评论(0编辑  收藏  举报