Jmeter常见函数使用方法汇总
__intSum
intSum函数可用于计算两个或多个整数值的总和。
引用名称是可选的,但它不能是有效的整数。
- {__intSum(2,5,MYVAR)}将返回7(25)并将结果存储在MYVAR变量中。因此{MYVAR}将等于7。
- ${__intSum(2,5,7)}将返回14(257)并将结果存储在MYVAR变量中。
- {__intSum(1,2,5,${MYVAR})}如果MYVAR值等于8、125{MYVAR},则返回16
__longSum
longSum函数可用于计算两个或多个长值的总和,而当您知道值不会在间隔-2147483648到2147483647中时,请使用此方法而不是__intSum。
- {__longSum(2,5,MYVAR)}将返回7(25)并将结果存储在MYVAR变量中。因此{MYVAR}将等于7。
- ${__longSum(2,5,7)}将返回14(257)并将结果存储在MYVAR变量中。
- {__longSum(1,2,5,${MYVAR})}如果MYVAR值等于8、125{MYVAR},则返回16
__StringFromFile
StringFromFile函数可用于从文本文件读取字符串。这对于运行需要大量可变数据的测试非常有用。例如,在测试银行应用程序时,可能需要使用不同帐号的100s或1000s。
另请参阅可更易于使用的CSV数据集配置测试元素。但是,当前不支持多个输入文件。每次被调用时,它会从文件中读取下一行。所有线程共享相同的实例,因此不同的线程将得到不同的行。当到达文件末尾时,它将从一开始重新开始读取,除非已达到最大循环计数。如果在测试脚本中有多个对该函数的引用,则每个文件都将独立打开它,即使文件名相同。[如果该值将再次用于其他位置,请对每个函数调用使用不同的变量名。
函数实例在线程之间共享,并且该文件(重新打开)由任何线程碰巧需要下一行输入,因此使用threadNumber作为文件名的一部分将导致不可预知的行为。
如果打开或读取文件时出现错误,则该函数将返回字符串'**错误**'
- ${__StringFromFile(PIN#'.'DAT,,1,2)}-读取PIN1.DAT,PIN2.DAT
- ${__StringFromFile(PIN.DAT,,,2)}-读取PIN2.DAT两次
__machineName
machineName函数返回本地主机名。这将使用Java方法InetAddressgetLocalHost()并将其传递到getHostName()
Examples:
${__machineName()}将返回计算机的主机名
${__machineName}将返回计算机的主机名
__machineIP
machineIP函数返回本地IP地址。这将使用Java方法InetAddressgetLocalHost()并将其传递到getHostAddress()
- ${__machineIP()}将返回计算机的IP地址
- ${__machineIP}将返回计算机的IP地址
__javaScript
javascript函数执行一条javascript(不是Java)代码并返回其值JMeterjavascript函数调用独立的javascript解释器。
Javascript被用作脚本语言,因此您可以进行计算等。
javaScript不是JMeter中性能最好的脚本语言。如果您的计划需要大量的线程,建议使用jexl3或__groovy函数。
${__javaScript('${sp}'.slice(7\,99999))}7后的逗号被转义。
Examples:
- ${__javaScript(newDate())}将返回Sat2016年1月09日16:22:15GMT0100(英语)
- ${__javaScript(newDate(),MYDATE)}将返回星期六2016年1月09日16:22:15GMT0100(CET)和存储在可变MYDATE
- ${__javaScript(Math.floor(Math.random()*(${maxRandom}+1)),MYRESULT)}
将使用maxRandom变量,返回一个介于0和maxRandom之间的随机值,并将其存储在MYRESULT
__Random
随机函数返回位于给定最小值和最大数值之间的随机数。
${__Random(0,10)}将返回介于0和10之间的随机数
{__Random(0,10,MYVAR)}将返回一个介于0和10之间的随机数字,并将其存储在MYVAR中。{MYVAR}将包含随机数
__RandomDate
RandomDate函数返回位于给定开始日期和结束日期值之间的随机日期。
- ${__RandomDate(,,2050-07-08,,)}将返回到现在和2050-07-08之间的随机日期。例如2039-06-21
- ${__RandomDate(ddMMyyyy,,08072050,,)}将返回一个自定义格式的随机日期,如04032034
__RandomString
RandomString函数返回一个随机长度字符串,使用字符在字符中使用。
- ${__RandomString(5)}将返回一个随机字符串的5个字符,可读或不
- ${__RandomString(10,abcdefg)}将返回一个随机字符串10字符从abcdefg集,如cdbgdbeebd或adbfeggfad,..。
- ${__RandomString(6,a12zeczclk,MYVAR)}将返回从a12zeczclk集选取的随机字符串6个字符,并将结果存储在MYVAR中,MYVAR将包含字符串,如2z22ak或z11kce..。
__RandomFromMultipleVars
RandomFromMultipleVars函数根据源变量提供的变量值返回一个随机值。
- ${__RandomFromMultipleVars(val)}将返回一个基于变量的内容的随机字符串考虑到它们是否是多值或不
- ${__RandomFromMultipleVars(val1|val2)}将返回一个随机字符串基于变量的内容val1和val2考虑到它们是否是多值或不
- ${__RandomFromMultipleVars(val1|val2,MYVAR)}将返回一个基于变量内容的随机字符串val1和val2考虑到它们是否是多值的,并将结果存储在MYVAR
__UUID
UUID函数返回一个伪随机类型4通用唯一标识符(uuid)。
${UUID()}将返回UUIDs的格式:c69e0dd1-ac6b-4f2b-8d59-5d4e8743eecd
__CSVRead
CSVRead函数从CSV文件中返回一个字符串(鸡毛StringFromFile)注意:JMeter支持多个文件名。
首次遇到文件名时,文件将被打开并读取到内部数组中。如果检测到空行,则将其视为文件的末尾-这允许使用尾随注释。所有对同一文件名的后续引用都使用相同的内部数组。注意文件名大小写对函数很重要,即使操作系统不关心,因此CSVRead(.txt,0)和CSVRead(abc,0)将引用不同的内部数组。'*别名'功能允许多次打开同一文件,并且允许更短的文件名。每个线程都有自己的内部指针到文件数组中的当前行。当线程第一次引用该文件时,它将被分配到数组中的下一个可用行,因此每个线程将从所有其他线程访问其他行。[除非有比数组中的行多的线程。
默认情况下,函数在每个逗号处拆分该行。如果要输入包含逗号的列,则需要将分隔符更改为不出现在任何列数据中的字符,通过设置属性:csvread.分隔符
例如,可以按如下方式设置一些变量:
COL1a${__CSVRead(random.txt,0)}
COL2a{__CSVRead(random.txt,1)}{__CSVRead(random.txt,next)}
COL1b${__CSVRead(random.txt,0)}
COL2b{__CSVRead(random.txt,1)}{__CSVRead(random.txt,next)}
这将读取一行中的两列,以及下一个可用行中的两列。如果在相同的用户参数前处理器上定义了所有变量,则这些行将是连续的。否则,另一个线程可能会抓取下一行。
该函数不适合用于大型文件,因为整个文件存储在内存中。对于较大的文件,请使用CSV数据集配置元素或StringFromFile。
__property
属性函数返回JMeter属性的值。如果找不到属性值,并且未提供默认设置,则返回属性名称。提供默认值时,不需要提供函数名-参数可以设置为null,并且将被忽略。
- ${__property(user.dir)}-返回值为user.dir
- ${__property(user.dir,UDIR)}-返回值为user.dir并保存在UDIR
- ${__property(abcd,ABCD,atod)}-返回值属性为abcd(或"atod"如果没有定义)并保存在ABCD中
- ${__property(abcd,,atod)}-返回值属性为abcd(或"atod"如果没有定义)但不保存它
__P
这是一个简化的属性函数,用于与命令行上定义的属性一起使用。与__property函数不同,没有选项保存变量中的值,如果没有提供默认值,则假定为1。选择了1的值,因为它对常见的测试变量(如循环、线程计数、坡道等)有效。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。