这是Jmeter脚本结构:
Test Plan
+ User Defined Variables
+ - votes_id: ${__P(votes_id,${__Random(11,14)})}
+ ...
+ Thread Group
+ + Throughput Controller1
+ + + Http Request1
+ + Throughput Controller2
+ + + Http Request2
+ + Throughput Controller3
+ + + Http Request3
+ + + Http Request4
+ + + - paramater1:${votes_id}
问题:http请求仅使用相同的数字发送
当设置paramater1:$ {__ Random(11,14)}时,它适用于11到14之间的随机数。
注意:我还尝试了组件CSV数据集配置。当我禁用吞吐量控制器1,吞吐量控制器2时,Http Request4使用多个数字。
如何使用CSV数据集配置发送带随机数的请求参数?
感谢。
答案 0 :(得分:1)
根据Where can functions and variables be used?章节:
函数和变量可以写入任何测试组件的任何字段
线程之间共享函数。测试计划中每次出现的函数调用都由一个单独的函数实例处理。
所以你基本上不需要定义变量,你可以直接在HTTP Request参数部分使用__Random()函数
Test Plan
+ ...
+ Thread Group
+ + Throughput Controller1
+ + + Http Request1
+ + Throughput Controller2
+ + + Http Request2
+ + Throughput Controller3
+ + + Http Request3
+ + + Http Request4
+ + + - paramater1:${__P(votes_id,${__Random(11,14)})}
这样,每个线程都会单独评估函数,因此每次调用函数时都会得到一个新值。
查看Apache JMeter Functions - An Introduction以了解有关JMeter功能概念的更多信息。
答案 1 :(得分:0)
请勿将User Defined Variables用于其他初始值:
请注意测试计划中的所有UDV元素 - 无论它们在何处 是 - 在开始时处理。
UDV不应与生成不同结果的函数一起使用 他们每次被召唤。只有第一个函数调用的结果 将保存在变量中。但是,UDV可以与之一起使用 函数,如__P()
要在测试运行期间定义变量,请参阅用户参数。 UDVs 按照它们在计划中出现的顺序进行处理,从顶部到 底部。
使用User Parameters并将其作为HTTP请求的预处理器子项。它每次都会被调用。