函数助手
1、Apache JMeter函数是特殊值,可以填充测试树中任何Sampler或其他元素的字段。它是使测试计划灵活和可维护的非常有用的工具。
2、函数调用如下所示:
${_ functionName (var1, var2, var3) ]其中"_ functicnName"表示函数名称。括号()包围发送给函数的参数,例如${_time. (YMD) }。
3、实际参数因功能而异。不需要参数的函数可以省略括号,例如${_thceadNum}。
JMeter函数的结构是: ${_functionName(var1, var2, varN)}
1. __threadNum----获取信息函数
1、线程数函数只返回当前正在执行的线程的编号。这些数字独立于ThreadGroup,这意味着从该函数的角度来看,一个线程组中的线程#1与另一个线程组中的线程#1无法区分(做不到的)。
2、此功能在任何配置元素(例如用户定义变量)中不起作用,因为它们是从单独的线程运行的。在测试计划中使用它也没有意义。即不能用在配置元件和测试计划中。
作用:获取当前正在执行的线程的编号
作用:通过获取到线程数名称来控制线程数的执行次数,严格控制执行多少次,也可以指定哪个线程数去运行某个请求。
作用:通过获取到线程数名称来控制线程数的执行次数,严格控制执行多少次,也可以指定哪个线程数去运行某个请求。
用法:${__threadNum}
,返回当前正在执行的线程的编号,而且不依赖于线程组;不能用在配置元件 和 测试计划中。
也就是说以这个函数的结果来看,不能区别线程组1的线程#1 和 线程组2的线程#1,如下图所示:
请求1: 路径11 ------期望:执行2次 执行1次
请求2:路径22------ 期望:执行2次
期望结果:
11 11 22 22 11
2.log函数----获取信息函数
作用:当对一些特定信息进行输出的话,进行打印的话,通过log函数看我们的请求是否执行成功或者判断脚本是否执行成功。
记录一条日志,并返回函数的输入字符串。
可以设置不同的日志级别,如 OUT 和 ERR 将会分别输出记录到 System.out 和 System.err 中。在这种情况下,输出总是会被打印(它不依赖于当前的日志设置)。
1、记录一个函数并将其返回到输入字符串中。
2、配置参数
1) String to be logged (and returned):要记录(并返回)的字符串-forum.php
2) Log level (default INFO) or OUT or ERR:日志级别-OUT,这意味着此字符串将打印到系统日志中。(默认INFO)或OUT或ERR)
另外OUT和ERR两个级别会把日志级别打印到jmeter运行的控制台,而不是页面的日志error!黄色
3) Throwable text (optional) :
4) Additional comment (optional):附加评论-一些评论可投递文本(可选),比如输入test
4)单击"生成",将在底部字符串中获得结果现在,您可以在脚本中的任何位置复制并粘贴它。
${__log(forum.php,INFO,,test)}
${__log(forum.php,OUT,test,)}
5)保存脚本。清除以前的结果,启动脚本。
6)检查结果和系统outlog。你可以看到所有信息打印在系统日志中。并带有“一些注释”。
也可以使用__log (forum.php),不加参数。直接打印。
3.__RandomString----数据计算函数
作用:根据给定的字符生成指定长度的随机字符串
根据给定的字符,生成指定长度的随机字符串。
参数:
Random string length:生成的随机字符的长度
Chars to use for random string generation:用来生成随机字符串的字符,可以是纯数字,纯字符,字符字母数字组合。
Name of variable in which to store the result (optional):保存结果的变量
例如:
${__RandomString(5,abcde,ran)}
随机生成一个5位长度的字符串,并保存在变量 ran 中,后续可以通过 ${ran} 来调用。
1、__RandomString ()。例如。它可用于测试具有大量无效用户网站的登录形式。注意.RandomSting.()的工作原理。
2、参数说明
_RandomString (VAR1,VAR2, VAR3),其中:
* var1-随机字符串长度
* var2-用于随机字符串生成的字符
* var3-存储結果的变里名称(可选)
两种方式:
一、 ${_ RandomString(12,123)}
这种只有2个参数,直接作为参数被引用,没有变量,变量是可选的。12表示长度,123表示用于随机生成的字符串
二、${ RandomString(12,qwerasdf12345,random)}
Random作为变量可以给下一个请求使用。
场景:请求1使用变量,请求2引用这个变量。
4.__property---属性信息函数
作用:对多个整数求和
1、JMeter的文件之-是jmeter properties。 它包含Meter的所有主要属性。这些属性在测试中很重要。可以在发IMETER. HQME. DIB./ bin目录中找到此文件。有许多属性。在运行时。它们的许多值在测试期间都很有用。要访问属性值,我们可以使用$__ property ( )函数。
2、__property(),属性函数返回JMeter属性的值。如果找不到属性值。并且未提供默认值,则返回属性名称。提供默认值时,无需提供函数名称该参数可以设置为null,并且将被忽略。
3、例如:
${__property(user.dir,pp,否)}
${__property(user.dir,pp,是)}
${__ property. (user.dir) }-返回user.dir的值
${__property. (user.dir,UDIR) )返回user_dir的值并保存在UDIR中 引用用${UDIR}
S{__property. (abcd,ABCD,atod) }-返回属性abcd的值(如果未定义则返回"atod)并保存在ABCD中, 引用用${ABCD}
${__property. (abcd,,atod) )-返回属性abcd的值(如果未定义则返回"atod")但不保存
属性名称要检索的属性名称"是”
变重名称用于重用此函数计算的值的引用名称
默认值属性“否"的默认值
5.time --获取信息函数
作用:以多种格式返回当前时间,如果省略了格式字符串,那么函数会以毫秒的形式返回当前时间。其他情况下,当前时间会被转成简单日期格式。
1、有时使用JMeter测试的业务用例需要提供日期和/或时间(即模拟日期或时间选择器事件,提供唯一参数或为结果文件添加前缀)
2、该__time函数使用的SimpleDateFormat的Java SDK类实现。有关模式和示例,请参阅JavaDoc页面
比如:
YYYY-MM-dd HH:mm:ss.SSS
2018-17-25 10:17:24.553
3、参数
1)一个时间
2)一个变量名称,供引用。
每点一次生成就会发生变化。
参考博文:https://blog.csdn.net/lijing742180/article/details/86579160