资讯 更多 >>
软件测试 | JMeter函数和变量
纳斯达克“削藩”
《国家标准实施指南(2023版)》发布
卫星互联网板块午后开启二波攻势,...
全球第一经济大省诞生!GDP将突破4...
快讯2023-07-11 14:01:36
吉利汽车:与雷诺成立合资公司从事...
乘风破浪 圆梦北疆——内蒙古大学...
紧盯江河湖库 力保安全度汛
平治道涂馀事勿取啥意思 平治道涂...
动态更多 >>
你们,温暖了2021
西安市新增27个中风险地区 目前有1...
广西新增本土确诊病例1例
哈尔滨市全域均为低风险地区
寒潮将影响我国中东部地区 四川盆...
昆明至哈尔滨一航班发现1名入境复阳...
陕西研考:封控区内考生在原报考点...
北京今日最高气温仅5℃ 明起强冷空...
那年今日 | 历史上的12月22日发生...
我要找债主
会展 更多 >>
美籍酿酒师在崇礼:中国是第二故乡...
河南项城报告2名疑似新冠肺炎病例 ...
浙江绍兴确诊病例首次零新增 上虞...
广西东兴实行全员居家隔离 启动口...
新疆全方位推进乡村振兴 “富春山...
云南瑞丽市主城区全员核酸检测结果...
内蒙古满洲里累计治愈出院本土确诊...
孙海洋夫妻驱车山东阳谷:还在为孙...
大国工匠追梦“玉米强国”40载:用...
让南海“海洋热带雨林”斑斓多彩
专题报道 
当前位置: 资讯 > >> 正文
 
软件测试 | JMeter函数和变量
来源:哔哩哔哩     时间:2023-07-11 16:48:08

JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试原件所引用。函数调用的语法如下:

其中,_functionName匹配被调用的函数名称。用圆括号包含参数的形参,例如$(_time(YMD)),不同函数要求的参数不同。有些JMeter函数不要求参数,则可以不适用圆括号,例如$(_threadNum)。

如果一个函数的参数中包含逗号,那么必须对逗号进行转义(使用“\”),否则JMeter会把逗号当成参数分隔符。例如:


【资料图】

$(_time(EEE\, d MMM yyy)}

变量引号的语法如下:

${VARIABLE}

如果测试计划中引用了未定义的变量或者函数,那么JMeter并不会报告/记录错误信息,引用返回的值就是引用自身。例如,假设字符串UNDEF没有被定义为变量,那么${UNDEF}返回的值就是$(UNDEF)。变量、函数(包括属性)都是大小写敏感的。及其后续版本会剔除参数名中的空格,例如,$(_Random(1,63,LOTTERY)}中的“LOTTERY”会被“LOTTERY”所代替。

1.使用函数可以做些什么

目前有两种类型的函数:用户定义的静态值(或者变量)和JMeter内置函数。

当需要编译测试树或者提交运行时,用户可以使用自定义变量来代替常用的静态值。这种替换只在测试的开始阶段执行一次。一个典型的应用就是使用自定义变量来替换所有HTTP请求的DOMAIN域,例如,做出轻微改动,就可以让同一个测试脚本适配多个服务器。

需要注意,目前变量不支持嵌套:例如${Var${N}}不能正常工作。但是在及其以后版本中,可以借助函数_V(variable)来达成嵌套变量的目的(如${_V(Var${N})})。在早期的JMeter版本中可以使用$(_BeanShell(("Var${N}")))。

这种类型的替换也可以不用函数来实现,但是就不像使用函数时那么直观和方便。用户可以创建默认配置测试元件,它们会填充采样器中的空白设置。

使用JMeter内置函数,用户可以基于前面的服务器响应数据、函数所在线程、当前时间或者其他资源来动态地计算变量值。这些变量的值会在整个测试期间针对每个请求动态更新。

2.函数和变量可以被用在哪里

函数和变量理论上可以被用在任何测试元件的任何输入域之中(除了测试计划之外,见下面的内容)。有些输入域不支持随机数组,因为它们只接受数字,这样一来就不支持函数。当然,大多数输入域支持函数。

将函数用于测试计划(Test Plan)的设置时,会受到一些限制。此种情况下,JMeter线程的变量在函数被处理时还没有被设定,因此变量作为参数传递时没有初始化,函数引用当然不会生效。如此一来,split()、regex()及变量赋值函数就都不能正常工作。函数threadNum()同样不能正常工作,该函数在测试计划层没有意义。在测试计划中,函数intSum、longSum、machineName、BeanShell、JavaScript、jexl、random、time、property functions、log functions应该能正常工作。

配置元件是通过一个独立线程处理的。因此函数(如_threadNum)不能在这些测试元件(如用户定义的变量)之中正常工作。另外还需要注意,在用户定义的变量(UDV)中定义的变量,在UDV被处理前是不能使用的。

关键词:

热门推荐
猜你喜欢