内置函数
1 内置 MOCK 函数
1.1 基础变量
| 名称 | 变量 | 说明 |
|---|---|---|
| 布尔值 | @bool | 随机生成一个布尔值 |
1.2 字符串
| 名称 | 变量 | 说明 |
|---|---|---|
| 字符池 | @character(pool) | 从字符串池返回随机的字符 |
| 随机小写字符 | @character(pool) | 返回一个随机的小写字符 |
| 随机大写字符 | @character('upper') | 返回一个随机的大写字符 |
| 特殊符号 | @character('upper') | 返回一个随机的特殊符号 |
| 字符串 | @string(1,10) | 从字符串池返回一个随机字符串,字符数1-10 |
1.3 个人信息
| 名称 | 变量 | 说明 |
|---|---|---|
| 身份证号 | @idCard | 随机生成一个身份证号(生成的身份证号码并不一定是真实有效) |
| 随机小写字符 | @idCard(birth) | 指定月份身份证号,例:19990907(生成的身份证号码并不一定是真实有效) |
| 手机号 | @phoneNumber | 随机生成一个手机号(生成的手机号码并不一定是真实有效) |
1.4 日期/时间
| 名称 | 变量 | 说明 |
|---|---|---|
| 日期 | @date('yyyy-MM-dd') | 返回一个随机的日期字符串。例:1983-01-29 |
| 时间 | @time('HH:mm:ss') | 返回一个随机的时间字符串。 例:20:47:37 |
| 日期时间 | @dateTime('yyyy-MM-dd HH:mm:ss') | 返回一个随机的日期和时间字符串。例:1977-11-17 03:50:15 |
| 当前日期时间 | @now('yyyy-MM-dd HH:mm:ss') | 返回当前日期字符串。例:2014-04-29 20:08:38 |
1.5 中文姓名
| 名称 | 变量 | 说明 |
|---|---|---|
| 中文名 | @cfirst | 随机生成一个常见的中文名 |
| 中文姓 | @clast | 随机生成一个常见的中文姓 |
| 中文姓名 | @cname | 随机生成一个常见的中文姓名 |
1.6 英文姓名
| 名称 | 变量 | 说明 |
|---|---|---|
| 英文名 | @first | 随机生成一个常见的英文名 |
| 英文姓 | @last | 随机生成一个常见的英文姓 |
| 英文姓名 | @name | 随机生成一个常见的英文姓名 |
1.7 中文文本
| 名称 | 变量 | 说明 |
|---|---|---|
| 大段文本 | @cparagraph | 随机生成一段中文文本 |
| 句子 | @csentence | 随机生成一个中文句子 |
| 单字 | @cword | 随机生成一个汉字 |
| 标题 | @ctitle | 随机生成一个中文标题 |
1.8 英文文本
| 名称 | 变量 | 说明 |
|---|---|---|
| 大段文本 | @paragraph | 随机生成一段英文文本 |
| 句子 | @sentence | 随机生成一个句子,第一个单词的首字母大写 |
| 单词 | @word | 随机生成一个单词 |
| 标题 | @title | 随机生成一个标题 |
1.9 web 变量
| 名称 | 变量 | 说明 |
|---|---|---|
| 网址 | @url('http') | 随机生成一个http URL |
| 协议 | @protocol | 随机生成一个 URL 协议。例:http ftp |
| 域名 | @domain | 随机生成一个域名 |
| 顶级域名 | @tld | 随机生成一个顶级域名。例:net |
| 邮件地址 | 随机生成一个邮件地址 | |
| IP 地址 | @ip | 随机生成一个IP地址 |
1.10 数字
| 名称 | 变量 | 说明 |
|---|---|---|
| 自然数 | @natural | 返回一个随机的自然数 |
| 1-100自然数 | @natural(1,100) | 返回一个随机的1-100的自然数(大于等于 1 的整数) |
| 整数 | @integer | 返回一个随机的整数 |
| 1-100整数 | @integer(1,100) | 返回随机的1-100的整数 |
| 浮点数 | @floatNumber( 1, 10, 2, 5 ) | 返回一个随机的浮点数,整数1-10,小数部分位数的最小值2,最大值5 |
| 整型数组 | @range(1,100,1) | 返回一个整型数组,参数分别:start:起始值,stop:结束值,step:步长 |
1.11 地区
| 名称 | 变量 | 说明 |
|---|---|---|
| 区域 | @region | 随机生成一个(中国)大区。例:华北 |
| 省份 | @province | 随机生成一个(中国)省(或直辖市、自治区、特别行政区) |
| 城市 | @city | 随机生成一个(中国)市 |
| 地区 | @county | 随机生成一个(中国)县 |
| 省份/市/县 | @county(true) | 随机生成一个(中国)县(带省市)。例:甘肃省 白银市 会宁县 |
| 邮编 | @zip | 随机生成一个邮政编码 |
1.12 颜色
| 名称 | 变量 | 说明 |
|---|---|---|
| 颜色 | @color | 随机生成颜色,格式为 '#RRGGBB' |
| RGB | @rgb | 随机生成颜色,格式为 'rgb(r, g, b)' |
| RGBA | @rgba | 随机生成颜色,格式为 'rgba(r, g, b, a)' |
| HSL | @hsl | 随机生成颜色,格式为 'hsl(h, s, l)' |
1.13 正则表达式
| 名称 | 变量 | 说明 |
|---|---|---|
| 正则表达式 | @regexp | 根据正则表达式返回结果 |
1.14 函数
函数基于 MOCK 类型添加函数,例:@email|md5。
| 名称 | 函数含义 | 是否需要输入 |
|---|---|---|
| md5 | md5加密 | |
| base64 | base64加密 | |
| unbase64 | base64解密 | |
| substr | 起止 | 以此开始截取一定长度的字符串 |
| concat | 结尾字符串 | 以此结尾的字符串 |
| lconcat | 开头字符串 | 以此开头的字符串 |
| sha1 | sha1加密 | |
| sha224 | sha224加密 | |
| sha256 | sha256加密 | |
| sha384 | sha384加密 | |
| sha512 | sha512加密 | |
| lower | 字母小写 | |
| upper | 字母大写 | |
| length | 数据长度 | |
| number | 字符串转数字 |
2 内置 JMeter 函数
2.1 变量
| 变量 | 说明 |
|---|---|
| ${__RandomFromMultipleVars} | 从由|分隔的一组变量的值中提取元素 |
| ${__split} | 将字符串拆分为变量 |
| ${__eval} | 计算变量表达式 |
| ${__evalVar} | 计算存储在变量中的表达式 |
| ${__V} | 评估变量名 |
2.2 编码
| 变量 | 说明 |
|---|---|
| ${__escapeHtml} | 使用 HTML 编码对字符串进行编码 |
| ${__escapeXml} | 使用 XML 编码对字符串进行编码 |
| ${__unescape} | 处理包含 Java 转义符的字符串(例如 \n 和 \t) |
| ${__unescapeHtml} | 解码 HTML 编码的字符串 |
| ${__urldecode} | 解码 application/x-www-form-urlencoded 字符串 |
| ${__urlencode} | 将字符串编码为 application/x-www-form-urlencoded 字符串 |
2.3 脚本
| 变量 | 说明 |
|---|---|
| ${__groovy} | 运行 Apache Groovy 脚本 |
| ${__BeanShell} | 运行 BeanShell 脚本 |
| ${__unescape} | 处理包含 Java 转义符的字符串(例如 \n 和 \t) |
| ${__javaScript} | 处理 JavaScript (Nashorn) |
| ${__jexl2} | 评估 Commons Jexl2 表达式 |
| ${__jexl3} | 评估 Commons Jexl3 表达式 |
2.4 时间
| 变量 | 说明 |
|---|---|
| ${__time} | 以各种格式返回当前时间 |
| ${__timeShift} | 返回各种格式的日期,并添加指定的秒/分钟/小时/天 |
| ${__dateTimeConvert} | 将日期或时间从源格式转换为目标格式 |
| ${__RandomDate} | 生成特定日期范围内的随机日期 |
2.5 属性
| 变量 | 说明 |
|---|---|
| ${__isPropDefined} | 测试属性是否存在 |
| ${__property} | 读取属性 |
| ${__P} | 读取属性(简写方法) |
| ${__setProperty} | 设置 JMeter 属性 |
| ${__isVarDefined} | 测试变量是否存在 |
2.6 数字
| 变量 | 说明 |
|---|---|
| ${__counter} | 生成一个递增的数字 |
| ${__intSum} | 添加 int 数字 |
| ${__longSum} | 添加长数字 |
| ${__Random} | 生成一个随机数 |
2.7 文件
| 变量 | 说明 |
|---|---|
| ${__StringFromFile} | 从文件中读取一行 |
| ${__FileToString} | 读取整个文件 |
| ${__CSVRead} | 从 CSV 分隔文件中读取 |
| ${__XPath} | 使用 XPath 表达式从文件中读取 |
| ${__StringToFile} | 将字符串写入文件 |
2.8 信息
| 变量 | 说明 |
|---|---|
| ${__digest} | 生成摘要(SHA-1、SHA-256、MD5...) |
| ${__threadNum} | 获取线程组号 |
| ${__threadGroupName} | 获取线程组名称 |
| ${__samplerName} | 获取采样器名称(标签) |
| ${__machineIP} | 获取本机IP地址 |
| ${__machineName} | 获取本地机器名 |
| ${__TestPlanName} | 返回当前测试计划的名称 |
2.9 字符串
| 变量 | 说明 |
|---|---|
| ${__log} | 记录(或显示)一条消息(并返回值) |
| ${__logn} | 记录(或显示)一条消息(空返回值) |
| ${__threadGroupName} | 获取线程组名称 |
| ${__RandomString} | 生成一个随机字符串 |
| ${__UUID} | 随机生成一个 UUID |
| ${__char} | 从数字列表生成 Unicode 字符值 |
| ${__changeCase} | 根据不同模式更改大小写 |
| ${__regexFunction} | 使用正则表达式解析先前的响应 |