__BeanShell

  • 入参:BeanShell语法的程序语句或者Bean Shell脚本文件
  • 示例:
${__BeanShell(123*456,)}:返回56088;
${__BeanShell(source("function.bsh",))}:执行在function.bsh中的脚本;
 

__changeCase

  • 作用:修改字符串大小写
  • 入参:字符串
  • 示例:
${__changeCase(test,UPPER,upper_test)}
 

__char

  • 作用:把一组数字转化成Unicode字符
  • 入参:数字
  • 示例:
${__char(65,66)},变成AB

__counter

  • 作用:作为一个计数器使用,支持多线程(多用户)
  • 入参:计数变量i,是否为线程计数器True/False
  • 示例
${__counter(FALSE,i)}; 全局计数器
${__counter(TRUE,i)}; 每个用户有自己的计数器

__CSVRead

  • 作用:从文件读取指定列的值(读取固定值/读取动态值/使用文件别名)
  • 入参:文件路径;读取方式;
  • 示例
${__CSVRead(E:\user_info.csv,0)};读取第一列的值

${__CSVRead(E:\user_info.csv,next())}; 每次读取下一次的值,配合第一条使用,否则不知道从哪里开始

${__CSVRead(E:\user_info.csv,*user_info)};使用别名,然后通过以下方法获取数据
${__CSVRead(*user_info, 1)}
 

__dataTimeConvert

  • 作用:格式化日期
  • 入参:日期/时间
  • 示例:
${__dateTimeConvert(01212018,MMddyyyy,dd/MM/yyyy,)}

${__dateTimeConvert(1526574881000,,dd/MM/yyyy HH:mm,)}; 官方例子,但是本地没试出来
 

__digest

  • 作用:加密
  • 入参:
    • 加密算法:MD2, MD5, SHA-1, SHA224, SHA256, SHA384, SHA512
    • 需要加密的值
    • 撒盐加密
    • 是否要转成大写
    • 变量名称

关于撒盐加密(salt)

使用salt加密,它的基本想法是这样的:



1.用户注册时,在密码上撒一些盐。生成一种味道,记住味道。

2.用户再次登陆时,在输入的密码上撒盐,闻一闻,判断是否和原来的味道相同,相同就让你吃饭。

 
 
  • 示例:
${__digest(MD5,test,1,,)}
 

__escapeHtml

  • 作用:字符转成Html格式的字符,这样编码后传给浏览器,浏览器就能识别了
  • 入参:字符
  • 示例:
${__escapeHtml(")}
 

__escapeOroRegexChars

  • 作用:把正则表达式转换成Java正则引擎能识别的表达式
  • 入参:正则表达式
  • 示例:
${__escapeOroRegexpChars([^"].+?,test)}
 

__escapeXml

  • 作用:字符转成xml格式的字符
  • 入参:字符
  • 示例:
${__escapeXml("bread" & 'butter')}
 

__eval

  • 作用:返回一个表达式的值,可以用此函数表达式来嵌套引用表达式
  • 入参:字符
  • 示例:
name=Smith
column=age
table=birthdays
SQL=select ${column} from ${table} where name='${name}'
${__eval(${SQL})}; 引用SQL变量
 

__evalVar

  • 作用:返回一个表达式的结果,存到一个变量中,供使用
  • 入参:字符
  • 示例:
QUERY = select ${column} from ${table}; column=name, table=customers
${__evalVar(QUERY)} = select name from customers

__fileToString

  • 作用:读取文件保存至变量中
  • 入参:文件路径;编码格式;变量名
  • 示例:
${__FileToString(E:\user_info.csv,utf-8,user_info)}
 

__groovy

  • 作用:执行Apache Groovy脚本,并返回结果
  • 入参:表达式;变量名
  • 示例:
${__groovy(123*456,test)}
 

__intSum

  • 作用:整数求和,多个数字之间用逗号分隔
  • 入参:第一个整数;第二个及之后的整数;变量名
  • 示例:
${__intSum(1,2,3,4,5,6,7,8,test)}
 

__isPropDefined

  • 作用:判断属性是否存在
  • 入参:属性名称
  • 示例:
${__isPropDefined(START.HMS)}
 

__isVarDefined

  • 作用:判断变量是否存在
  • 入参:变量名称
  • 示例:
${__isVarDefined(JMeterThread.last_sample_ok)}
 

__javaScript

  • 作用:返回js脚本执行结果
  • 入参:js表达式;变量名
  • 示例:
${__javaScript(new Date(),date)}
 

__jexl2

  • 作用:返回jexl表达式执行结果,使用JEXL2
  • 入参:jexl表达式;变量名
  • 示例:
${__jexl2(vars.get("START.YMD"),test)}
 

__jexl3

  • 作用:返回jexl表达式执行结果,JEXL3
  • 入参:jexl表达式;变量名
  • 示例:
${__jexl3(vars.get("START.YMD"),test)}
 
image.png

__log

  • 作用:日志方法,返回输入的字符串信息
  • 入参:字符串;日志级别;抛出的异常信息;附加信息
    • OUT:控制台打印
    • ERR:控制台输出,同时打印到标准输出
    • DEBUG:控制台输出,DEBUG级别以上的都打印
    • INFO:控制台打印INFO及ERROR级别的日志
    • WARN:控制台打印WARN,INFO,ERROR级别的日志
    • ERROR:控制台打印ERROR级别的日志
  • 示例:
${__log(testing,ERR,error throw test,error test)}
 

__logn

与__log类似,不过它只记录一条日志,不返回值。

${__logn(testing,,)}
 

__longSum

  • 作用:计算长整型的和
  • 入参:整数
  • 示例:
${__longSum(1,2,3,4,sum)}
 

__machineIP

  • 作用:引用返回本机IP
  • 入参:变量名
  • 示例:
${__machineIP(ip)}
 

__machineName

  • 作用:引用返回本机Name
  • 入参:变量名
  • 示例:
${__machineName(name)}
 

__P

  • 作用:获取命令行中定义的属性,非GUI方式运行测试计划时这个函数可用来做参数化,由运行命令动态指定参数值,方便与Jenkins等集成完成性能测试工作
  • 入参:属性名称;默认值
  • 示例:
${__P(group1.threads,)}
 

__property

  • 作用:获取Jmeter的属性,%JMETER_HOME%\bin\jmeter.properties
  • 入参:属性名称;变量名;默认值
  • 示例:
${__property(log_level.jmeter,log_Level,)}
 

__Random

  • 作用:生成指定范围内的随机数
  • 入参:左右范围;变量名
  • 示例:
${__Random(1,20,random_num)}
 

__RandomDate

  • 作用:生成指定范围内的日期
  • 入参:日期格式;左右范围;语言;变量名
  • 示例:
${__RandomDate(,,2050-07-08,,)}
 

__RandomFromMultipleVars

  • 作用:给定的多个值中随机取值
  • 入参:多个值,使用|分隔;变量名
  • 示例:
${__RandomFromMultipleVars(a|b|c|d|e,select)}
 

__RandomString

  • 作用:生成指定长度的字符串
  • 入参:字符串长度;可选字符串;变量名
  • 示例:
${__RandomString(5,a3fxis,random_char)}
 

__regexFunction

  • 作用:提取正则表达式
  • 入参:
    • 用于解析服务器响应数据的正则表达式
    • 模板字符串(
    • 告诉JMeter使用第几次匹配
      • 整数n:使用第n个匹配项;
      • RAND:随机选择一个匹配项;
      • ALL:使用所有匹配项,为每个匹配项创建一个模板字符串,并将它们连接在一起
      • 浮点值0到1之间:根据公式(找到的总匹配数目*指定浮点值)计算使用第几个匹配项,计算值向最近的整数取整
    • 如果在上一个参数中选择了“ALL”,那么这第4个参数会被插入到重复的模板值之间
    • 如果没有找到匹配项返回的默认值
    • 重用函数解析值的引用名
    • 变量名称
  • 示例:
${__regexFunction(road(.*)test,$1$,1,,,,)}
 

__samplerName

  • 作用:获取当前按sampler的名称
  • 入参:变量名
  • 示例:
${__samplerName(sample_name)}
 

__setProperty

  • 作用:动态设置jmeter属性
  • 入参:属性名称;属性值;是否返回函数结果
  • 示例:
${__setProperty(log_level.jmeter,Debug,true)}
 

__split

  • 作用:拆分字符串
  • 入参:待拆分字符串;变量名(使用变量名_x来访问第x个拆分结果);分隔符
  • 示例:
${__split(test|is|intresting,para,|)}
 

__StringFromFile

  • 作用:从文件中读取内容,一行一行的读取,读完再从头开始
  • 入参:文件全路径,变量名,多文件读取起止
  • 示例:
${__StringFromFile(D:\user_info.txt,info,,)}
 

__TestPlanName

  • 作用:获取测试计划名称
  • 入参:无
  • 示例:
${__TestPlanName}
 

__threadNum

  • 作用:返回当前线程号
  • 入参:无
  • 示例:
${__threadNum}
 

__time

  • 作用:返回当前时间,可指定返回格式,由SimpleDateFormat类处理函数格式

    • 年:yyyy
    • 月:MM
    • 日:dd
    • 时:hh
    • 分:mm
    • 秒:ss
  • 入参:返回格式;变量名
  • 示例:
${__time(yyyy-MM-dd hh:mm:ss,)}
 

__timeShift

  • 作用:
  • 入参:
    • 格式:创建日期的格式。如果该值未被传递,则以毫秒为单位创建日期。
    • 日期:日期值
    • 移位:从日期参数的值中添加或减去多少天,几小时或几分钟
      • “PT20.345S”解析为“20.345秒”
      • “PT15M”解析为“15分钟”
      • “PT10H”解析为“10小时”
      • “P2D”解析为“2天”
      • “P2DT3H4M”解析为“2天,3小时和4分钟”
      • “P-6H3M”解析为“-6小时+3分钟”
      • “-P6H3M”解析为“-6小时-3分钟”
      • “-P-6H + 3M”解析为“+6小时和-3分钟”
    • 区域设置:设置创建日期的显示语言
    • 变量名
  • 示例:
${__timeShift(yyyy-MM-dd HH:mm:ss,PT20.345S,,,c)}
 

__unescape

  • 作用:反转escape字符
  • 入参:字符
  • 示例:
${__unescape(\r\n)}
 

__unescapeHtml

  • 作用:反转URL连接中的Unicode编码字符
  • 入参:字符
  • 示例:
${__unescapeHtml( )}
 

__urldecode

  • 作用:decode application/x-www-form-urlencoded字符串
  • 入参:待decode字符串
  • 示例:
${__urldecode(Word+%22school%22+is+%22%C3%A9cole%22+in+french)}
 

__urlencode

  • 作用:与urldecode
  • 入参:待encode字符串
  • 示例:
${__urlencode(Word "school" is "école" in french)}
 

__UUID

  • 作用:获取UUID
  • 入参:无
  • 示例:
${__UUID}
 

__V

  • 作用:获取含变量名的表达式
  • 入参:含变量名的表达式
  • 示例:
${A1} - 可以正确访问
${A${N}} - 无法访问,嵌套变量
${__V(A${N})} - 可以访问。A${N}变成A1,__V函数返回A1的值
 

__XPath

  • 作用:根据xpath获取xml节点内容,没有匹配到,则返回空字符串
  • 入参:待解析的xml文件;xpath表达式匹配xml节点
  • 示例:
${__XPath(/path/to/build.xml,//target/@name)}
 

可直接访问变量

  • log:直接调用logger函数
  • ctx:获取JMeterContent对象
  • vars:获取JMeter定义的变量
  • props:获取JMeter配置属性
  • threadName:获取Jmeter线程名
  • sampler:获取Sampler实例
  • sampleResult:获取SamplerResult实例
  • OUT:类似System.out.println, OUT.println()

原文链接:https://www.jianshu.com/p/c66b846e2ada

Jmeter函数助手大全的更多相关文章

  1. 关于使用jmeter函数助手生成随机数的使用方法

    记录自己的生活!   1.使用jmeter函数助手的生成随机数的方法,主要包含以下几个函数:     [_Random]     [_RandomString]   2.关于[_Random]函数的说 ...

  2. jmeter函数助手(_random、_time)

    jmeter函数助手 __random __time yyyyMMddHHmmdd  时间格式(年月日时分秒) 1.打开函数助手对话框,选项->函数助手对话框 2.生成函数字符串 (1)选择功能 ...

  3. 『动善时』JMeter基础 — 27、通过JMeter函数助手实现参数化

    目录 1.测试计划中的元件 2.数据文件内容 3.函数助手配置 (1)函数助手的打开方式 (2)函数助手界面介绍 (3)编辑后的函数助手界面 4.HTTP请求组件内容 5.线程组元件内容 6.脚本运行 ...

  4. Jmeter函数助手中添加自定义函数

    最近,群里的牛肉面大神有个需求,是将每个post请求的body部分做一个加密操作,其实这个需求不算难,用beanshell引入加密函数的包,然后调用就行了.只是,如果请求多了,每次都要调用一下自己加密 ...

  5. jmeter 函数助手

    1.选项,函数助手对话框,打开函数助手 2.使用方法 输入参数,点击生成,可以直接使用(Name of variable in which to store the result (optional) ...

  6. jmeter函数 助手

    Jmeter(一)——函数助手 __char:把一组数字转化成Unicode __counter:计数器,支持多线程(可以理解为多用户) 线程组设置为2个用户,循环两次${__counter(true ...

  7. Jmeter 函数助手对话框简单使用

    第一步 打开Jmeter,Tools > 函数助手对话框  下拉框选择_CSVRead ,如下图所示: 第二步: 准备一份测试数据,保存在本地盘符里,数据如下图所示: 第三步,填数据,  (1) ...

  8. 『动善时』JMeter基础 — 28、JMeter函数助手详解

    目录 1.函数助手介绍 2.函数助手中的函数分类 3.常用函数介绍 (1)__Random函数 (2)__counter函数 (3)__time函数 (4)__property函数 (5)__setP ...

  9. Jmeter函数助手

    1.__Random:产生0-10之间的随机数[__RadomString:随机生成字符函数同__Random]

随机推荐

  1. .NET Core 3.0或3.1 类库项目中引用 Microsoft.AspNetCore.App

    本文为原创文章.首发:http://www.zyiz.net/ 在 ASP.NET Core 3.0+ web 项目中已经不需要在 .csproj 中添加对 Microsoft.AspNetCore. ...

  2. jQuery中live()使用报错,TypeError: $(...).live is not a function

    原博文 https://blog.csdn.net/sdfdyubo/article/details/59536781 使用 原写法 /*为选项卡绑定右键*/ $(".tabs li&quo ...

  3. 【命令】man命令帮助文档详解

    前言:Linux命令分为内建命令和外部命令:内建命令是shell本身自带的,外部命令是是一个可执行程序 我们在使用命令帮助的时候需要钱哦区分命令是内建命令还是外部命令 一.查看一个命令是内建命令还是外 ...

  4. 深入理解Spring Security授权机制原理

    原创/朱季谦 在Spring Security权限框架里,若要对后端http接口实现权限授权控制,有两种实现方式. 一.一种是基于注解方法级的鉴权,其中,注解方式又有@Secured和@PreAuth ...

  5. 关于线程池(ThreadPoolExecutor)参数的浅析

    引子 线程池在项目中很常用,需要多个任务异步执行的地方我们都会去创建一个线程池. 我们看到 ThreadPoolExecutor源码中提供了更方便的工厂方法(Executors)使用. 提供方便应该是 ...

  6. 【代码周边】MongoDB与Mysql对比以及插入稳定性分析(指定主键的影响)

    在数据库存放的数据中,有一种特殊的键值叫做主键,它用于惟一地标识表中的某一条记录.也就是说,一个表不能有多个主键,并且主键不能为空值. 无论是MongoDB还是MySQL,都存在着主键的定义. 对于M ...

  7. Ubuntu安装最新的SlickEdit软件--破解教程

    最近主要工作系统转到LInux上面来了,Slickedit的安装破解也费了些事,今天将过程整理一下做个记录. 说明:SlickEdit pro V21.03 Linux 64位实测可用,MAC实测可用 ...

  8. Mysql 实战关于date,datetime,timestamp类型使用

    最近在做一个项目 项目中 不同的小伙伴同时在不同的业务模块中用到了date,datetime,timestamp这三个类型 特别是datetime,timestamp这两个 如果不能理解到位  其实很 ...

  9. LVS之2---基于LVS负载均衡集群架构

    LVS之2---基于LVS负载均衡集群架构实现 目录 LVS之2---基于LVS负载均衡集群架构实现 ipvsadm software package Options 常用命令 保存及重载规则 内存映 ...

  10. 强化学习 1 --- 马尔科夫决策过程详解(MDP)

    强化学习 --- 马尔科夫决策过程(MDP) 1.强化学习介绍 ​ 强化学习任务通常使用马尔可夫决策过程(Markov Decision Process,简称MDP)来描述,具体而言:机器处在一个环境 ...