0

我的组织有 5 个 http 请求。R1、R2 到 R5。每个 http 请求都使用 Addr 和 City 作为输入以及用户 ID。csv 表中有 500 个用户可用于这 5 个请求。我们希望每个用户有大约或确切的 50 个请求,分为 5 个 api 请求。附加条件是 R1 在 50 req 中应该有更多的权重所以看起来像这样

User1 >> R1=20Request, R2=10Request, R3=10Request, R4=5Request, R5=5Request >> 50
User2 >> R1=20Request, R2=10Request, R3=10Request, R4=5Request, R5=5Request >> 50
User3 >> R1=20Request, R2=10Request, R3=10Request, R4=5Request, R5=5Request >> 50
..
User500 >> R1=20Request, R2=10Request, R3=10Request, R4=5Request, R5=5Request >> 50

我尝试过以下测试计划

Test plan 1 (10 Thread, loop count 5, loop controller loop count 1)
>>CSV Data Config Users
>>CSV Data Config Addr
>>CSV Data Config City
>>Thread Group 
 >> loop controller
  >> R1
  >> R2
  >> R3
  >> R4
  >> R5
Test plan 2 ( Using % distribution for Throughput controller with 5min run)
>>CSV Data Config Users
>>CSV Data Config Addr
>>CSV Data Config City
>>Ultimate Thread Group 
 >> Throughtput controller
  >> R1
>> Throughtput controller
  >> R2
>> Throughtput controller
  >> R3
>> Throughtput controller
  >> R4
>> Throughtput controller
  >> R5
Test plan 3 (10 Thread, loop count 5, loop controller loop count 1)
>>CSV Data Config Usrs
>>setUp Thread Group
>>CSV Data Config Addr
>>CSV Data Config City 
 >> loop controller
  >> R1
  >> R2
  >> R3
  >> R4
  >> R5
Test plan 4 (10 Thread, loop count 5, loop controller 1 loop count 1, LC2 count 2)
>>CSV Data Config Users
>>CSV Data Config Addr
>>CSV Data Config City
>>Thread Group 
 >> loop controller 1
  >> R2
  >> R3
  >> R4
  >> R5
>> loop controller 2
  >> R1
  

问题陈述:

  1. 在 TestPlan1、3 和 4 中,我们能够使用 CSV 中的所有用户,但请求计数根本没有达到 50
  2. 在 TestPlan2 中,所有来自 csv 的用户都没有被使用,请求计数有时超过有时低于 50
4

1 回答 1

0

最简单的选择就是添加另一个R1类似的副本:

Test plan 1 (10 Thread, loop count 5, loop controller loop count 1)
>>CSV Data Config Users
>>CSV Data Config Addr
>>CSV Data Config City
>>Thread Group 
 >> loop controller
  >> R1
  >> R1 (another copy)
  >> R2
  >> R3
  >> R4
  >> R5

您可以定义一个包含此请求的测试片段并使用模块控制器R1引用它两次,而不是“愚蠢”地复制和粘贴 HTTP 请求采样器

如果您的“权重”标准更复杂,那么考虑使用加权开关控制器可能是一个更好的主意。

于 2020-09-23T08:31:33.310 回答