目录

JMeter是Apache托管的一款用于进行接口测试的工具。功能比较丰富,还有插件可以进行拓展。

安装

  1. 前置安装JDK(配置好JAVA_HOME、CLASSPATH)
  2. 去官网下载二进制包传送门
  3. 解压缩,windows下运行bin/jmeter.bat

测试计划示例

  1. 配置测试相关变量
    配置变量
  2. 创建线程组
  3. 创建控制器(可选)
  4. 配置登录请求(可选)
    • 某些测试可能需要先获取token,需要先发一些其他请求并处理
      创建登录请求
    • 从登录请求中获取access_token(可选)
      正则提取token
      将token设置为全局变量auth
  5. 测试请求token填充
    使用全局变量auth
  6. 发送待测试请求
  7. 创建响应断言
  8. 查看结果树

BeanShell

  • 概述:BeanShell是JMeter所使用的脚本语言,BeanShell也支持了很多其他项目,具体可查看BeanShell的Github主页
  • 主要特点:
    1. 可以在${}内用符号_拼接数字,来访问一批变量。也有些特殊单词如_matchNr代表此类变量的数量。
    2. 支持对象,对象也基本支持Java语法
    3. 内置:
      • 使用${__P},${__setProperty}等内置函数读取/设置JMeter变量
      • 使用${__threadNum}等内置变量
  • 一段JMeter后处理代码示例:
    //log.info("stationCodes: ${stationCodes_2}");
    int i=${stationCodes_matchNr};
    
    log.info("station Count: " + String.valueOf(i));
    
    //${__setProperty(stationCodesOutput,${stationCodes},)}
    String s="";
    for(int j=1;j<=i;j++){
        s += vars.get("stationCodes_"+j)+",";
    }
    //String str = Arrays.toString(a);
    //vars.put("test",str);
    //log.info("????"+str);
    //${__setProperty(stationCodesOutput,str,)}
    props.put("test",s);
    //log.info("????: ${__P(stationCodesOutput,)}");
    String value = props.get("test");
    log.info("value : "+value);
    String trimValue = value.substring(0,value.length()-1);
    log.info("trimValue : "+trimValue);
    String[] stationCodesArray = trimValue.split(",");
    for(int i=0;i!=stationCodesArray.length;++i){
        vars.put("stationCodes_"+(i+1),stationCodesArray[i]);
    }
    
  • 参考:

插件

  • JMeter对插件的支持很好,可以根据自己的需求找一些开源的第三方测试插件,主要步骤如下
    • 去jmeter插件官网下载jmeter-plugins-manager.jar
    • 将该jar抱放入jmeter内,/lib/ext目录下
    • 在jmeter内的菜单options->plugins manager菜单项,打开插件管理器
    • 安装你喜欢的插件
  • WebSocket插件:websocketsamplers by peter doornbosch
    • 在取样器中和其他测试工具一样
  • 参考: