jmeter 系统函数整理

大家都知道在Jmeter使用中,不是每个功能都需要自己去吭哧吭哧写beanshell代码的,在使用Jmeter时,此工具为大家已经封装好了很多好用的系统级函数,可以直接调用来实现你想要的功能。本篇将整理下在Jmeter中常用的系统函数使用,以方便于日常使用时查找。

1.${__counter(,)}:计数器函数,每次调用值+1,从1开始

    第一个参数:

        True:如果希望每个虚拟用户计数器保持独立,与其他用户计数器相区别;

        False:全局计数器

    第二个参数:存储结果的变量名称。引用方式:${变量名}

2.${__CSVRead(,)}:csv文件读取函数,是从外部读取参数,__csvRead函数可以从一个csv文件中读取多个参数。

    CSV file to get values from | *alias :要读取文件的路径

    CSV文件列号| next| *alias :要从第几列开始读取,第一列为0

    示例:

    ${__CSVRead(d:\\test.csv,0)} --从test.csv中取第1列的值

    ${__CSVRead(d:\\test.csv,${__Random(1,3,)})} --从test.csv中随机取第2-4列的值

3.${__intSum(,,)}:整型相加函数

    要添加的第一个整数:第一个整数

    要添加的第二个整数:第二个整数,更多整数用,间隔

    Name of variable in which to store the result (optional):保存到的变量名

    示例:${__intSum(1,2,3,4,param)}    #求1+2+3+4的和 保存到param变量中

4.${__longSum(,,)}:获得长整型数之和

    First long to add:第1个数

  Second long to add - further longs can be summed by adding further arguments:第2个数,多余其他数用,间隔

Name of variable in which to store the result (optional):保存的变量名

    示例:${__longSum(1,13,12,par)}    #求1+13+12的和存到par变量中

5.${__machineName()}:得到当前运行机器名

6.${__P(,)}:自定义jmeter属性和属性值,或者设置属性默认值

    示例:${__P(remote_hosts,1)}:设置remote_hosts属性的值默认为1,如果没有remote_hosts属性则返回默认值1,如果jmeter中存在此属性,则返回属性的值。修改默认属性值可以修改1的值就行

7.${__property(,,)}:同${__p(,,)}类似,前者p只设置默认值,后者property是设置默认值后再保存另一个变量中

    参数1:参数名称:

   参数2:Name of variable in which to store the result (optional):保存的变量名

    参数3:默认值

    示例:

    ${__property(param,first,200)}:设置param参数的默认值为200,同时保存到first变量中,其他地方可以用${first}引用

8.${__setProperty(,,)}:设置jmeter的属性值,全局变量赋值

    参数说明:

    Value of property:属性值

    Return Original Value of property (default false) ?:返回初始值,默认false

    示例:

    ${__setProperty(newresult,${result},)} :把局部变量result设置为全局变量newresult

    提取全局变量值:${__p(newresult)}  等同于${__property(newresult)}

9.${__RandomFromMultipleVars(,)}:提取随机值,从用户定义的多个值里随机取一个

    参数说明:

    Source Variable(s) (use | as separator):源变量名,多个用 | 间隔

    Target Variable:目标变量,即保存后的变量名

    示例:

    ${__RandomFromMultipleVars(var1|var2|var3,testTarget)}:从变量var1、var2、var3随机获取一个变量的值,存放到Target变量里

    注意:此处的var1 |var2 |var3 是变量名,非变量的值

10.${__RandomString(,,)}:生成多个随机字符

    参数说明:

    Random string length:随机字符串的长度

    Chars to use for random string generation:生成多个随机字符的源字符串

    Name of variable in which to store the result (optional):保存的变量名

    示例:${__RandomString(3,hello world,param)}

    在hello world字符串中随机生成3位的字符,放到param变量中。

11.${__samplerName()}:获取请求名

12.${__Random(,,)}:随机函数

    参数说明:

    参数1:为最小值

    参数2:为最大值

    参数3:为存储的变量名

    示例:${__Random(X,Y,Z)}   获取X到Y之间随机的数值,存放到Z变量中

13.${__split(,,)}:分离函数

    参数1:为需要分割的变量或者String,

    参数2:为存储的变量名

    参数3:为分割符

    示例:${__split(X,Y,Z)}:X为需要分割的变量或者String,Y为存储的变量名,Z为分割符

14.${__TestPlanName}:获取测试计划名

15.${__threadNum}:获取测试计划的线程数

16.${__time(,)}:时间函数

    常见时间格式示例:

    ${__time(,param1)}  :1450056496991 //无格式化参数,返回当前毫秒时间后赋值给param1变量

    ${__time(yyyyMMdd, param1)}:

20151214      //返回年月日  后赋值给param1变量

    ${__time(HHmmss, param1)}:   092816        //返回时分秒  后赋值给param1变量

    ${__time(yyyyMMdd-HHmmss, param1)}:20151214-092816 //获取时间  后赋值给param1变量

    ${__time(yyyy-MM-dd HH:mm:ss,)}:   //获取系统当前时间转换为年-月-日 时:分:秒格式

    ${__longSum(${__time},-3600000, param1)}:    //获取一小时前的时间戳后赋值给param1变量

17.${__urldecode()}:对于测试中返回的中文进行URL解码

    示例:${__urldecode(%E4%BD%A0%E5%A5%BD)}:将给定字符串解码为中文显示

18.${__urlencode()}:对于测试中提交的中文进行URL转码

    示例:

    ${__urlencode(你好)} :编码后:%E4%BD%A0%E5%A5%BD

19.${__UUID}:唯一标识码,生成一个随机字符串,用于某些参数需要唯一值的情况

    uuid格式如:8e9464d2-4561-453e-8005-ad0a44507640

20.${_StringFromFile(,,,)}:从一个文件中读取一个字符串,如果读取或者打开这个文件发生错误时,将返回“ERR”字符串

    参数说明:

    参数1:输入文件的全路径:输入读取文件的绝对路径+文件名

    参数2:Name of variable in which to store the result (optional):存储结果的变量名称

    参数3:Start file sequence number (opt):初始序列号,即读取文件的序列号,第几个文件

    参数4:Final file sequence number (opt):结束序列号,即读取文件的序列号,第几个文件

    示例:

    ${_StringFromFile(d:\test.dat,,,)}:读取d盘test.dat文件的内容,循环一次读取一行

    可以读取多个文件,如:

    ${_StringFromFile(d:\test#.dat,content,1,2)}:从d盘下读取test开头的第1和第2个dat文件内容存放到content变量中

21.${__evalVar()}:用来执行保存在变量中的表达式,并返回执行结果

    示例:比如某csv文件中内容:

            user,name,time

            test1,小名,${__time(,)}

    那么在jmeter中读取csv文件中time列,正常读取用${time}肯定会报错,因为字段值有特殊符号,这时候在jmeter中就需要用到此函数,调用如下:

    ${__evalVar(time)},这样就可以读取到time列的值了

    所以此方法一般可用于csv文件中参数值存在引用的时候

22.${__XPath(,)}:使用xpath方式提取文件内容

    示例:

${__XPath(xmlFile,//a[b='ccc'])} :从xmlFile文件中根据表达式//a[b='ccc']提取内容

23.${__log(,,,)}:写入日志文件

    参数1:String to be logged (and returned):日志信息

    参数2:Log level (default INFO) or OUT or ERR:日志级别

    参数3:Throwable text (optional):异常文本

    参数4:Additional comment (optional):额外备注

示例:${__log(日志信息,INFO,有异常出现,这是处理异常的日志)}

posted @ 2019-09-05 10:46  致远方  阅读(536)  评论(0编辑  收藏  举报