JMeter 内置函数、Jmeter 访问 MySQL 数据库、Jmeter测试 Java 程序

1、JMeter 内置函数

 以两个下划线开头。  区分大小写。

ResponseMessage="${__char(97,98,99,100)}";
//ResponseMessage="abcd";
ResponseMessage="${__machineIP()}"; ResponseMessage="${__machineIP(CIP)}"; ${__threadNum()}; ${__time(y/MM/dd)}; ResponseMessage="${__UUID}"; ResponseMessage="${__Random(1,10)}"; ResponseMessage="${__RandomString(6,abcdefgh12345678)}"; ResponseMessage="${__RandomString(6,abcdefgh12345678,ran)}";

Jmeter 访问 MySQL 数据库

1) 加载数据库驱动包 

点击测试计划-->点击中间底部"浏览"-->选中 mysql 驱动 jar 包-->打开

 2)配置数据库连接参数  配置元件→JDBC Connection Configuration

 3)添加 JDBC Request

 

 

 

测试 Java 程序

 Eclipse 导入包

 被测程序

package com;

public class Add {

    public int sum(int a,int b)
    {
        return a+b; 
    }
    public static void main(String args[]){
        Add math = new Add();
        System.out.println(math.sum(1, 2));
    }
}

测试程序

package com;

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;

public class JavaTest extends AbstractJavaSamplerClient {

    private Add test = null;
    private String a;
    private String b;
    private String result;

    // 定义参数
    public Arguments getDefaultParameters() {
        Arguments params = new Arguments();
        params.addArgument("num1", "");// 参数 num1,初值为空,jmeter 可更改此值
        params.addArgument("num2", "");
        return params;
    }

    // 每个线程测试前执行一次,做一些初始化工作,取参数值
    public void setupTest(JavaSamplerContext arg0) {
        test = new Add();
        a = arg0.getParameter("num1");// 获取参数值
        b = arg0.getParameter("num2");
    }

    // 开始测试,从 arg0 参数可以获得参数值
    public SampleResult runTest(JavaSamplerContext arg0) {
        SampleResult sr = new SampleResult();// 取样器
        sr.setSamplerData("请求参数 num1:" + a + "
 请求参数 num2:" + b);// 发送请求
        try {
            sr.sampleStart();// 类似于事务,开始统计响应时间
            result = String.valueOf(test.sum(Integer.parseInt(a), Integer.parseInt(b)));
            if (result != null && result.length() > 0) {
                // 下面的操作将响应数据输出到 Jmeter 的察看结果树中
                sr.setResponseData("结果是:" + result, "utf-8");
                sr.setDataType(SampleResult.TEXT);
                sr.setResponseCode("200");
                sr.setResponseOK();
            }
            sr.setSuccessful(true);
        } catch (Throwable e) {
            sr.setSuccessful(false);
            e.printStackTrace();
        } finally {
            sr.sampleEnd(); // 结束统计响应时间标记
        }
        return sr;
    }

    // 测试结束时调用,只执行一次
    // public void teardownTest(JavaSamplerContext arg0) {
    // }
    // 必须加入下面的 main 方法编译,导出代码时,必须禁用 main
//    public static void main(String[] args) {
//        Arguments pms = new Arguments();
//        pms.addArgument("num1", "1");// 设置参数,赋值 1
//        pms.addArgument("num2", "2");// 设置参数,赋值 2
//        JavaSamplerContext arg0 = new JavaSamplerContext(pms);
//        JavaTest test = new JavaTest();
//        test.setupTest(arg0);
//        test.runTest(arg0);
//        test.teardownTest(arg0);
//    }

}

导出包

  • 右击项目→导出→Java→可运行的 JAR 文件(忽略错误,找不到 main 方法)
  • 导出目标 ,必须放在apache-jmeter-3.0libext 目录中,名字可与类名不同

Jmeter导入包 

-->测试计划→Add directory or jar to classpath 处:浏览

-->添加线程组 ,添加-- Java 请求

 

 -->添加查看结果树并运行

 测试 BeanShell 请求

1)添加 BeanShell Sample

2)添加BeanShell Sample获取参数 

 3)添加 Debug Sampler

4)添加结果树看结果

原文地址:https://www.cnblogs.com/ychun/p/14318454.html