首页 > 代码库 > 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 学习 --函数助手