WHEN OUT OF VALUES是指在每个用户分配到一定数量的参数后,在LR循环运行的时候, 当某个用户的参数不够的时候,LR将按照设置的WHEN OUT OF VALUES的值进行处理。
举个例子:
现有一参数,名为:emp_no, 有四个值: E01,E02,E03,E04
现有一场景,三个虚拟用户,分别为:U1,U2,U3
LR参数列表设置:unique + each iteration+ allocate 2 values for each vuser
在场景运行的时候,
1. LR会先做一件事情-参数分配,假设参数分配的方式是手工分配,allocate 2 values for each vuser.
分配的结果是: U1-E01,E02; U2-E03,E04; U3-无参数;
[备注:若选择了自动分配参数。那将遵循以下的原则:
Controller中edit schedule中选择了run until comletion:按照循环次数先分配第一个VU(例如设置的循环次数为3,那分配给第一个VU 3个参数值),然后接下来的3个参数值分配给第二个VU,依次类推…...
Controller中edit schedule中选择了run for:若选择自动分配,LR将按照用户数均分参数,剩余的参数不使用。]
2. 在运行开始后,U3将会FAILED. 因为没有参数分配给他。其他的两个虚拟用户正常运行,但是其他的两个用户,每个用户只有两个参数,只能保证他们循环两次而已。
当他们运行到第三个循环的时候,他们已经没有参数可以用了。 怎么办呢? 这个时候,LR将按照设置的WHEN OUT OF VALUES的值进行处理。我们拿虚拟用户U1来举例说明。
如果when out of values=abort vuser, U1在第三次循环的时候将会退出执行。
循环次数 | 虚拟用户 | 使用参数值 | 运行状态 |
1 | U1 | E01 | 正常运行 |
2 | U1 | E01 | 正常运行 |
3 | U1 | / | 退出运行 |
如果when out of values=continue in a cyclic manner, U1在第三次循环的时候将会开始循环利用他的参数值E01, 第四次循环使用E02…….
循环次数 | 虚拟用户 | 使用参数值 | 运行状态 |
1 | U1 | E01 | 正常运行 |
2 | U1 | E02 | 正常运行 |
3 | U1 | E01 | 正常运行 |
4 | U1 | E02 | 正常运行 |
5 | U1 | ….. | ….. |
如果when out of values=continue with last value, U1在第三次循环的时候使用最后的一个参数即E02, 第四次继续使用E02…….
循环次数 | 虚拟用户 | 使用参数值 | 运行状态 |
1 | U1 | E01 | 正常运行 |
2 | U1 | E02 | 正常运行 |
3 | U1 | E02 | 正常运行 |
4 | U1 | E02 | 正常运行 |
5 | U1 | ….. | ….. |