JMeter36个内置函数及11个新增函数介绍
JMeter内置了36个函数,这些函数可以通过函数助手进行编辑和测试。了解这些函数,不仅能提高JMeter的使用熟练度,也有助于知晓测试工具或测试框架通用的函数有哪些,在自主设计时,作为参考借鉴。
JMeter函数调用的写法是${__function()},注意函数名前面需要添加双下划线前缀。
__BeanShell脚本语言
执行BeanShell脚本。BeanShell是Java编写的Java源码解释器,小型、免费、可嵌入,可以像写脚本语言一样写Java,无需编译,立即运行。
示例,字符串拼接:

输入表达式后,点击Generate & Copy to clipboard按钮,会生成函数语法并复制到粘贴板,同时输出函数运行结果。
__char
把数字转化成Unicode字符。
示例,数字65转化成字符A:

__counter
统计线程的迭代次数。它有两个参数:
- 第一个参数,如果为true,那么每个线程单独统计;如果为false,那么所有线程合在一起统计。
- 第二个参数,变量名。
示例:

__CSVRead
从CSV文件中读取数据。
固定取值
始终取第n列第一行的值。
示例:

动态取值
使用next每次迭代取下一行数据。注意必须先取列,再取行。
示例:

文件别名
给文件名起个别名。
示例:

__escapeHtml
HTML转义。
示例:

__escapeOroRegrexChars
把一些Java正则表达式引擎不识别的正则表达式转换一下,这样就可以识别了。转换过程中使用了ORO正则表达式库。
示例:

__eval
计算表达式。
示例:

__evalVar
把表达式的结果存入变量。
示例:


__FileToString
读取文件全部内容,以字符串形式保存到变量中。
示例:

__intSum
int型求和。
示例:

__longSum
跟上个一样,只是换成了long型。
__javaScript
执行JavaScript脚本。
示例:

__jexl
JEXL全称是Jakarta Commons Jexl,它是一种表达式语言解释器。jexl能直接访问JMeter中的部分变量:
- log:直接调用logger函数
- ctx:获取JMeterContent对象
- vars:获取JMeter定义的变量
- props:获取JMeter配置属性
- threadName:获取JMeter线程名
- sampler:获取Sampler实例
- sampleResult:获取SamplerResult实例
- OUT:OUT.println(),类似System.out.println
示例:

__log
记录日志,并返回输入的字符串。
日志级别包括:
控制台指JMeter GUI的感叹号打开的控制台;标准输出窗口指打开JMeter时的CMD窗口。
- OUT:打印到控制台和标准输出窗口,相当于System.out.print()
- ERR:打印到控制台和标准输出窗口,相当于System.err
- DEBUG:打印到控制台,DEBUG级别以上
- INFO:打印到控制台,INFO及ERROR级别
- WARN:打印到控制台,WARN、INFO、ERROR级别
- ERROR:打印到控制台,仅ERROR级别
后四种级别DEBUG、INFO、WARN、ERROR是否写入JMeter的运行时日志,需要通过jmeter.property文件进行配置。
示例:

__logn
与上一个类似,区别是它只记录日志,不返回值。
__machineIP
本机的IP。
__machineName
本机的计算机名。
__P
获取命令行中定义的属性,默认值为1。
示例:

在非GUI方式运行测试计划时,可以用这个函数来做参数化,由运行命令动态指定参数值,方便跟Jenkins、Maven或者Ant集成。
__property
获取jmeter.properties文件中设置的JMeter属性。
示例:

__Random
随机值。
示例:

__RandomString
随机字符串。
示例:

__regexFunction
跟后置处理器的正则表达式提取器用法一样。
示例:


__samplerName
获取当前sampler名称。
__setProperty
动态设置JMeter属性。
示例:

__split
拆分字符串。

__StringFromFile
不如使用CSV Data Set Config。
__TestPlanName
获取测试计划的名字。
__threadNum
返回当前线程号,从1开始递增。
示例:

__time
返回当前时间,由SimpleDateFormat类来处理函数格式。
- 年:yyyy
- 月:MM
- 日:dd
- 时:hh
- 分:mm
- 秒:ss
示例:

__unescape
返转escape字符,如\r\n转成CRLF。
__unescapeHtml
反转HTML,如 转成空格。
__urldecode
反转URL中的Unicode编码字符,如word%22school%22转成word"school"。
__urlencode
转成Unicode编码字符,如word"school"转成word%22school%22。
__UUID
生成唯一字符串。
__V
执行变量表达式并返回结果,如果需要嵌套的使用变量时,就可以用到它。
比如定义变量a1=2, b1=1,${a1}``${b1}都可以调用成功。
但是如果想通过${a${b1}}来调用${a1}就不能成功。
使用${__V(a${b1})}等价于${__V(a1)}等价于${a1}就可以了。
__XPath
匹配XML文件内容。
示例:
<?xml version="1.0" encoding="utf-8"?>
<company>
<name>
<address>
shanghai
</address>
</name>
</company>
XPath表达式/company/name/address/text()取值shanghai。
XPath可以参考https://www.w3school.com.cn/xpath/index.asp
最近新增
除了上述36个内置函数,JMeter最近还新增了以下函数:
changeCase
改变大小写
dateTimeConvert
日期格式转换
digest
加密算法,如SHA-1, SHA-256, MD5等
escapeXml
转义XML
groovy
groovy表达式
isPropDefined
属性是否定义
isVarDefined
变量是否定义
RandomDate
随机日期
RandomFromMultipleVars
从多个变量中取随机值
StringToFile
把字符串写入文件中
timeShift
时间偏移,比如计算某一天的前三天
小结
本文对36个内置函数,以及11个新增函数进行了介绍,灵活选择使用这些函数,能起到事半功倍的效果。函数助手可以很方便的对函数进行预览和测试。最新最全的函数及其使用介绍可以到官网查阅:https://jmeter.apache.org/usermanual/functions.html
参考资料:
《全栈性能测试修炼宝典JMeter实战》
JMeter36个内置函数及11个新增函数介绍的更多相关文章
- php 内置的 html 格式化/美化tidy函数 -- 让你的HTML更美观
php 内置的 html 格式化/美化tidy函数 https://github.com/htacg/tidy-html5 # HTML 格式化 function beautify_html($htm ...
- 数据库——mysql内置功能(11)
1.视图 视图是一个虚拟表(非真实存在),其本质是(根据SQL语句获取动态的数据集,并未其命名),用户使用时只需使用(名称)即可获取结果集,可以将该结果集当做表来使用 使用视图我们可以把查询过程中的临 ...
- jsp详解(3个指令、6个动作、9个内置对象、11个隐式对象)
jsp概述SP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP实际上就是Servlet. jsp=html+jav ...
- Mysql 常用函数(11)- trim 函数
Mysql常用函数的汇总,可看下面系列文章 https://www.cnblogs.com/poloyy/category/1765164.html trim 的作用 删除字符串左右两侧的空格 tri ...
- python内置函数,匿名函数
一.匿名函数 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数 def calc(n): return n**n print(calc(10)) #换成匿名函数 calc = lambda n ...
- python成长之路八 -- 内置函数
1,python内置函数 内置函数 abs() dict() help() min() setattr() all() dir() hex() next() slice() a ...
- Python3中的内置函数
内置函数 我们一起来看看python里的内置函数.什么是内置函数?就是Python给你提供的,拿来直接用的函数,比如print,input等等.截止到python版本3.6.2,现在python一共为 ...
- 总结day13 ----内置函数
内置函数 我们一起来看看python里的内置函数.什么是内置函数?就是Python给你提供的,拿来直接用的函数,比如print,input等等.截止到python版本3.6.2,现在python一共为 ...
- python学习笔记:第14天 内置函数补充和递归
一.匿名函数 匿名函数主要是为了解决一些简单需求而设计的一种函数,匿名函数的语法为: lambda 形参: 返回值 先来看一个例子: # 计算n的n次方 In[2]: lst = lambda n: ...
随机推荐
- 一次死锁导致CPU异常飘高的整个故障排查过程
目录 一.问题详情 top 命令截图 联系腾讯云排查 检查系统日志发现异常 二. 问题解析 三.问题原因 最终结论 四.扩展 进程的几种状态 马后炮 如何快速清理僵尸进程(Z) 内核参数相关 如何查看 ...
- .NET RulesEngine(规则引擎)
一次偶然的机会,让我拿出RulesEngine去完成一个业务,对于业务来说主要是完成一个可伸缩性(不确定的类型,以及不确定的条件,条件的变动可能是持续增加修改的)的业务判断.比如说完成一个成就系统,管 ...
- 支持rotate和大小限制的golang log库
支持大小限制和rotate的log库,还是很有必要的,前者让你不再操心磁盘被吃光,后者让查日志更方便. 但是在golang中没有太好的实现,看过一些开源的和自行实现的,都有几个不满意的地方,比如: 没 ...
- 11- client测试
client是客户端,软件分为客户端与服务端,客户端就是我们使用的软件,比如浏览器,QQ,抖音等.服务端就是客户端使用操作,服务端给你响应的请求.
- Python小游戏 -- 猜数字
Python初学者小游戏:猜数字 游戏逻辑:电脑随机生成一个数字,然后玩家猜数字,电脑提示猜的数字大了还是小了,供玩家缩小数字范围,达到既定次数后,玩家失败.若在次数内猜对,玩家获胜. 涉及知识点:r ...
- CString,string,char数组的转换
来源:http://ticktick.blog.51cto.com/823160/317550 //----------------ANSI字符串转换为UNICODE字符串-------------- ...
- canvas绘制虚线图表
最近有读者加我微信咨询这个问题,如下图所示: 要实现的效果如下: 其实难度不大,但是考虑一些人员对于canvas不熟悉,还是简单的介绍下. 其实该图表,就是一个圆圈外面在套一个圆弧的效果, 主要的难点 ...
- 【Linux】在centos中使用命令安装redis
1.前提centos能够上网 测试方式输入命令,有数据返回即可.如果则先配置centos网络连接. ping www.baidu.com 2.安装gcc 输入命令进行安装 yum install gc ...
- 0902-用GAN生成动漫头像
0902-用GAN生成动漫头像 目录 一.概述 二.代码结构 三.model.py 3.1 生成器 3.2 判别器 四.参数配置 五.数据处理 六.训练 七.随机生成图片 八.训练模型并测试 pyto ...
- 从0开始fastjson漏洞分析2
从0开始fastjson漏洞分析https://www.cnblogs.com/piaomiaohongchen/p/14777856.html 有了前文铺垫,可以说对fastjson内部机制和fas ...