我的组织有一组5个http请求。R1、R2至R5。每个http请求都使用Addr和City以及用户id作为输入。csv表中有500个用户可用于这5个请求。我们希望每个用户有一个aprrox或精确的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,3&4我们可以使用CSV的所有用户,但请求数根本没有达到50
- 在TestPlan2中,csv中的所有用户都没有被使用,请求计数有时超过50,有时低于50
最简单的选择就是添加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
而不是";愚蠢的";复制和粘贴HTTP请求采样器,您可以定义包含此R1
请求的测试片段,并使用模块控制器引用它两次
如果您的";重量;标准更复杂,考虑使用加权开关控制器可能是一个更好的主意。