Jmeter中User Defined Variables(UDV)和HTTP Header Manager使用

发布时间 2023-09-13 10:26:02作者: lbw

Jmeter测试时需要区分不同的环境,想用If Controller进行判断,测试环境时User Defined Variables(UDV)变量赋值platfom=test,正式环境时User Defined Variables(UDV)变量赋值platfom=pro,结果每次udv都被覆盖,但HTTP Header Manager正常,配置如下:

 

 运行后,可以看到,第一个http请求是If Controller为true时,但UDV同时叠加了外层的全局变量和内层的变量,但内层的变量取的是If Controller为false时的变量,HTTP Header Manager取的是If Controller为true时内层的正常。

第二个http是外层请求,但UDV同样也叠加了外层的全局变量和内层的变量,但内层的变量取的也是If Controller为false时的变量,而HTTP Header Manager取的是外层正常。

最后翻看了一下官方文档,内容如下:

意思为:请注意,测试计划中的所有UDV元素——无论它们在哪里——都会在开始时进行处理。所以可以理解为:无论这个UDV定义在哪里,都会被当成全局变量。