首页 > 代码库 > jmete 学习 --函数助手
jmete 学习 --函数助手
为了在性能过程中真实的模拟用户请求,有时我们需要借助函数助手来进行参数化,本篇我就列出一些常用的 函数助手。
函数调用都是以 ${__function()} 这种形式开始的。
1.__BeanShell
名称:无实际含义。
值:BeanShell语句或者BeanShell文件地址。
Detail:无实际含义。
生成:生产Sample 可以调用的表达式。
在java 请求中设置Label 为 ${__BeanShell("shanghai"+"road")},运行,察看结果树,调用结果如下:
2.__char
功能是把一组数字转化成Unicode字符,看演示结果(值是 65,66)
3.__counter
可以作为一个计数器使用,支持多线程。看下面例子。
我们借助 ${__threadNum} 来显示当前运行线程的ID.设置两个线程,迭代3次。
如果__counter 引用为 false,贼结果为
4.__CSVRead
该函数可以从文件中读取指定列的值,有2个主要功能
1).读取固定值
从 a.txt 文档中读取第一列的值(有几行可以选择几个线程)
2).读取动态值
如果想每次迭代时取值不一样,可以用到类似 ${__CSVRead(D:\a.txt,next()) 这样的表达式,next()会告知程序下次迭代去下一行数据,前面一个表达式表示第几列。
5.__escapeHtml
把字符串转换成HTML格式的字符
6.__eval
用来返回一个表达式的值,也就是可以用此函数数表达式来嵌套引用表达式。例子
name = Smith table = birthdays column = age SQL = SELECT ${column} from ${table} where name = ‘${name}‘
那么久可以用 ${__eval(${SQL})} 来引用SQL 变量,得到的结果就是 select age from birthdays where name = ‘Smith‘
7. __evalVar
用来返回表达式的结果,并把结果存入一个变量,供Sampler引用。
1) 在用户定义变量中 定义 username 变量,
2) 通过__eval 函数来定义
3) 在java 请求中通过__eval 函数来调用他
最终结果是
8.__FileToString
用来读取文件,它可以一次性读取文件内容,然后保存到变量;此变量可由其他Sampler 引用。
见示例
在java请求中的 Label 调用该变量,结果为
9.__intSum
用来对整数求和,支持多个整数累加,多个数之间用逗号分隔。见实例,求,1~5之后,然后java 请求中labael 调用
10.__longSum
与__intSum 类同,只不过把整数变成了长整型。
11.__javaScript
此函数可以用来返回 JavaScript 脚本执行的结果。也可以用来调用JavaScript中的函数库,见实例
12.__log
日志方法,返回输入的字符串信息。
String to be logged(and returned):将会被日志输出的字符串
Log level (default INFO) or OUT or Err:指定输出日志级别,以下是日志级别:
OUT:在控制台打印出来,另外也会打印到标准输出窗口。
ERR:在控制台输出日志信息,同事也打印到标准输出。类似JAVA 的 System.err。
DEBUG:在控制台输出日志信息,DEBUG 级别以上的都能打印。
INFO:类似DEBUG,打印INFO 和ERROR 级别的日志。
WARN:打印INFO 和ERROR ,WARN级别的日志。
ERROR:仅打印ERROR 日志。
Throwable text:抛出的异常信息。
Additional comment:附加的备注信息。
13.__machineIP
返回本机IP,简单,不作实例。
14.__machineName
返回本机的机器名,简单,不作实例。
15.__P
获取属性的函数,可以获取命令行中定义的属性,默认值为1.比如我们在命令窗口打开JMETER,且设置 group1.threads = 7,那么我们可以通过__P 函数来获取
16.__Random
随机函数,用此函数来生成一个一定范围内的随机数并保存到指定变量,可供其他Sampler使用。
17.__RandomString
随机字符串函数,用此函数我已生成指定长度的随机字符串并保存到指定变量,可供其他Sampler使用。
18.__regexFunction
正则表达式提取函数,此函数用来正则匹配上一个Sampler的返回值,关于正则表达式,以后会专门写一篇来解释。
19.__samplerName
获取当前Sampler的名称,不做演示了。
20.__setPROPERTY
此函数用来动态设置JMeter 的属性。
Return Original Value of property:是否返回函数结果,默认为否,如果为Ture ,则 java 请求中lable 调用此函数该值就为Debug了。
21.__split
该函数用来拆分字符串。
函数名称:拆分的字符串引用的变量名。拆分后的字符存入变量中,此变量类似一个字符串数组。如上面例子的para。用 para_1 来表示 拆分后的第一个字符,如果没有匹配到则用?表示。
22.__StringFromFile
该函数从文件中读取内容,一行一行的读,类似于CSV Data Set Config 元件, 效率不高,不推荐,故不做演示。
23.__TestPlanName
返回测试计划名称
24.__threadNum
返回当前线程号
25.__time
返回当前时间,可以指定格式。
年:yyyy
月:MM (注意是大写)
日:dd
时:hh
分:mm
秒:ss
26.__unescape
返转escape字符,如 \r\n 转成 CRLF.
27.__unescapeHtml
返转URL 链接中的Unicode编码字符,如 转成空格。
28.__UUID
生成一个唯一的字符串。
jmete 学习 --函数助手