jmeter仅发送带有__Random()生成的一个数字的请求

时间:2017-08-24 08:53:37

标签: jmeter

这是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数据集配置发送带随机数的请求参数?

感谢。

2 个答案:

答案 0 :(得分:1)

  1. 根据Where can functions and variables be used?章节:

      

    函数和变量可以写入任何测试组件的任何字段

  2. As per What can functions do

      

    线程之间共享函数。测试计划中每次出现的函数调用都由一个单独的函数实例处理。

  3. 所以你基本上不需要定义变量,你可以直接在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请求的预处理器子项。它每次都会被调用。