Jmeter函数助手

 

标签(空格分隔): Jmeter


在性能呢测试过程中为了真实的模拟用户,往往我们需要让提交的表单内容每次都发生变化,这个过程加参数化,Jmeter配置原件与前置处理器都能帮助我们进行参数化,单都有局限性,为了帮助我们进行参数化,Jmeter提供了一组函数来帮助我们生成需要的数据,这些函数助手面板来进行编辑,当然函数助手的功能不仅仅是进行参数化,还可以帮我们进行圆形,字符编码,格式转化,获取运行时参数的功能。 函数都是以${__function()}这种形式开始的,其中“__”是英文的半角下横线,function是函数名,其中参数是不同的函数而定

函数列表

JMeter总计七大类型的函数类型如下:

信息类: 用于读取线程、请求名等 输入类: 用于读取文件等 计算类: 用于计数、求和等 脚本类: 用于运行各类脚本,例如groovy、beanshell等等 属性类: 读取或设置jmeter配置 变量类: 用于对变量进行操作 字符串类: 用于字符串处理

信息类

主要用于获取一些常用的基本信息或是日志输出控制。 |编号|函数名|描述| |--| |1|__threadnum|函数线程数| |2|__samplerName|说起当前请求的名称| |3|__machineIP|获取本机的IP地址| |4|__machineNmae|获取本机的名称| |5|__time|返回指定格式的时间| |6|__log|日志输出,并返回它的输入字符串| |7|__logn|日志输出,并返回空的字符串|

###输入类 |编号|函数名|描述| |--| |1|__StringFromFile|函数线程数| |2|__FileToString|获取当前请求的名称| |3|__CSVRead|读取csv格式文件数据| |4|__XPath|使用xpath读取xml文件中的数据|

计算类

主要用于从外部文件读取数据,进行参数化或是说关联 |编号|函数名|描述| |--| |1|__counter|生成一个自增数| |2|__intSum|整数求和| |3|__logSum|长整数求和| |4|__Random|生成随机数| |5|__RandomFromMultipleVars|从一组数据中提取一个数据| |6|__RandomStrgin|生成随机字符串| |7|__UUID|生成随机的唯一的UUID|

脚本本类

主要用于调用外部脚本或是解析执行脚本

|编号|函数名|描述| |--| |1|__groovy|执行groovy脚本| |2|__BeanShell|执行BeanShell脚本| |3|__javaScript|执行javaScript的脚本| |4|__jexl2|执行jexl2表达式| |5|__jexl3|执行jexl3表达式|

属性类

用于读取和设置jmeter配置 |编号|函数名|描述| |--| |1|__property|读取属性值| |2|__P|读取属性值(__property)的简写| |3|__setProperty|设置属性值|

###变量类 主要用于验证变量表达式引用是否正确 |编号|函数名|描述| |--| |1|__sqlit|拆分字符串| |2|__V|执行变量名表da's达式的返回结果| |3|__eval|执行字符串表达式,并返回结果| |4|__evalVar|执行保存在变量中的表达式,并返回结果|

字符串类

用于字符串操作

|编号|函数名|描述| |--| |1|__regexFunction|使用正则表达式| |2|__escapeOroRegexpChars|用于转义正则表达式中的字符| |3|__char|将一串数字转换成成unciode的字符| |4|__unescape|用于反转义java-escape字符串| |5|__unescapeHtml|解码html-encode字符串| |6|__escapeHtml|使用html coding编码目标字符串| |7|__escapeXml|使用XML codingbiao'ma编码目标字符串| |8|__urldecode|解码urlcode| |9|__urlencode| 编码为urlcode| |10|__TestPlanName|获取当前测试计划|

##常用函数的介绍

__time 函数

获取系统的当前时间 image_1cs6ok13j1ru1nsg1e2t1ormuep9.png-52.6kB

函数参数描述
Format string for SimpleDateFormat (optional)格式 设置时间所采用的格式
Name of variable in which to store the result (optional)变量名 存储结果的变量名称

如果省略了格式字符串,time函数会返回当前时间的毫秒级时间戳。 time函数包含以下时间格式

  • YMD = yyyyMMdd。 image_1cs6p31gv4531l2461pe741k511j.png-16.1kB
  • HMS = HHmmss。 image_1cs6p48d31h8corv1c671gaf1mkk20.png-13.8kB
  • YMDHMS = yyyyMMdd-HHmmss。 image_1cs6p259ffc1624j1ccpq1sv016.png-18.2kB
  • 也可以加入字符修改样式 image_1cs6p7spd19lu1lt31bim1rlkftr2d.png-17.3kB
  • 用户可以通过修改JMeter属性来改变默认格式,例如,time.YMD=yyMMdd。

time毫秒时间戳转秒时间戳 image_1cs6phinrnj31cs91d6k8nabib3a.png-93kB

__Random 函数

生成随机数

函数参数描述
FThe minimum value allowed for a range of value 随机数取值范围的最小值
The maximum value allowed for a range of values 取值范围的最大值
Name of variable in which to store the result (optional) 存储结果的变量名称
  • 在1000-10000之间生成随机数

image_1cs6pv0thi0fdko692rgfqqs3n.png-91.7kB

__RandomString

随机生成字符串

函数参数描述
Random string length 随机字符串的长度
Chars to use for random string generation 用来生成随机字符串的字符
Name of variable in which to store the result (optional) 存储结果的变量名称

__RandomDate

随机生成日期

函数参数描述
Format string for DateTimeFormatter (optional) (default yyyy-MM-dd) 日期格式 默认yyyy-mm-dd
Start date (optional) (default: now) 随机日期的开始日期,默认为现在
End date 结束日期
String format of a locale (ex: fr_FR , en_EN) (optional) 语言区域
Name of variable in which to store the result (optional) 存储结果的变量名称

image_1cs815tao97jpdaut453g12h4p.png-69.1kB

__threadNum

返回当前线程的编号

__log

记录一条日志,并返回输入的字符串

函数参数描述
String to be logged (and returned) 日志信息
Log level (default INFO) or OUT or ERR 日志等级。OUT会在控制台输出,ERR、INFO、DEBUG在日志文件内输出
Throwable text (optional) 可抛弃的文本,如果非空,会创建一个可抛弃的文本传递给记录器
Additional comment (optional) 注释如果存在,注释会在字符串中展示,用于标识日志记录了什么

image_1cs8329lstjq12vm1jlp1ljcadk16.png-173.2kB

__jexl3

函数_jexl可以用于执行通用JEXL表达式,并返回执行结果。

函数参数描述
JEXL expression to evaluate 待执行的表达式
Name of variable in which to store the result (optional) 存储结果的变量名称

image_1ct9smir2jjbvuh9r1156o3t519.png-49.6kB 如下变量可以通过脚本进行访问。

log:函数记录器。

ctx:JMeterContext对象。

vars:JMeterVariables对象。

props:JMeter属性对象。

threadName:字符串包含当前线程名称 (在2.3.2 版本中它被误写为"theadName")。

sampler:当前的采样器对象(如果存在)。

sampleResult:前面的采样结果对象(如果存在)。

OUT - System.out,例如 OUT.println("message")。 是你用vars的例子参考 Sampler 章节的jdbc-request

原文地址:https://www.cnblogs.com/summerxye/p/11004481.html