什么是JMeter中的函数(Function)?

JMeter中的函数(Function)用于在测试计划的各个元素中使用函数表达式,提供更丰富的测试能力。
使用函数可以实现以下功能:

  1. 操作字符串:例如拼接、分割、替换等。
  2. 执行数学计算:例如随机数、求和、取余等。
  3. 操作日期和时间:例如格式化日期、获取当前时间戳等。
  4. 条件判断:例如if函数。
  5. 与系统环境的交互:例如获取系统属性等。
  6. 与BeanShell和JSR223 Test Elements交互。

JMeter支持以下类型函数:

  1. 字符串函数:字符串操作相关,例如${__StringFunc()}系列。
  2. 数学随机函数:数学和随机相关,例如${__intSum()}、${__Random()}$等。
  3. 日期函数:日期和时间相关,例如${__time()}、${__Date()}等。
  4. 变量函数:变量相关,例如${__P()}、${__split()}等。
  5. 条件函数:条件判断相关,例如${__if()}。
  6. 系统等函数:系统交互相关,例如${__property()}。
  7. BeanShell/JSR223函数:用于在BeanShell和JSR223 Test Elements中使用。

一个简单的示例:

HTTP请求:
请求URL:http://httpbin.org/get?name=${__StringFunc(RANDOM,5)}&age=${__Random(1,100)}

if函数:
表达式:${__StringFunc(RANDOM,2)} > 5 
为真:${__Random(50,100)}
为假:${__Random(1,10)} 

HTTP请求:
请求URL:http://httpbin.org/get?num=${ifFunc}

运行测试计划,第一个HTTP请求会使用字符串函数生成5位随机字符串和1-100的随机数。
if函数会生成2位随机数,如果大于5,使用50-100的随机数,否则使用1-10的随机数。
第二个HTTP请求会使用if函数的结果。
函数允许我们在JMeter中使用丰富的函数表达式,提供更广泛的测试能力。