2017-08-24 28 views
1

下面是脚本的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} JMeter的只有()由__Random产生的一个号码发送请求

问题:http请求只能用相同NUM发送。

在组paramater1:$ {__随机(11,14)},它适用于11至14

注随机数:我也尝试组件CSV数据集配置。当我禁用吞吐量控制器1,吞吐量控制器2时,Http Request4与多个号码一起工作。

如何使用CSV数据集配置以随机数发送请求参数?

谢谢。

回答

1
  1. 作为每Where can functions and variables be used?章:

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

  2. As per What can functions do

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

所以你基本上不需要定义一个变量,你可以直接在HTTP请求参数部分

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)})} 

这样的功能将分别由每个被评估使用__Random()功能线程,因此每次调用函数时都会得到一个新值。

查看Apache JMeter Functions - An Introduction了解关于JMeter功能概念的更多信息。

+0

它运作良好!请注意,**在运行时生成唯一的随机值在CPU和内存方面非常昂贵,因此只需在测试**之前创建数据,因此我尝试使用CSV数据集配置替换__Random()函数并失败。 。详细信息:输入a.csv与11 \ n12 \ n13 \ n14,然后请求参数将只包含13.当我禁用吞吐量控制器1和吞吐量控制器2时,它发送请求与a.csv中的所有数字 – Song

0

不要为其他然后初始值使用User Defined Variables

注意,所有测试计划的UDV元素 - 无论身在何处,他们都 - 在开始处理。

UDV不应与每次调用时生成不同结果 的函数一起使用。只有第一个函数调用 的结果将被保存在变量中。但是,UDV可与 函数一起使用,例如__P()

要在测试运行期间定义变量,请参阅用户参数。 UDV 按照它们在计划中出现的顺序进行处理,从顶部到底部为 。

使用User Parameters并将其作为HTTP请求的预处理器子进程。每次都会被调用。