Loadrunner 取参数一些总结
实验进行迭代的操作,
下侧select next row(+when out of values)\右侧update value on | sequential | random | unique |
each iteration | 顺序取值,下一次迭代接着上次继续取值,第一次迭代所有该参数取第一个值,下一次迭代所有该参数取第2个值,以此类推(参数列表用完,可以继续循环重复使用参数)。 | 随机取值,下一次迭代继续随机取值,第一次迭代所有该参数取第一个随机值,下一次迭代所有该参数取另一个随机值,以此类推(参数列表用完,可以继续重复使用参数)。 | |
each occurrence | 顺序取值,下一次函数接着上次继续取值,第一个函数所有该参数取第一个值,下一个函数所有该参数取第2个值,以此类推(参数列表用完,可以继续循环重复使用参数)如:每一个web_url是一个函数。 | 随机取值,下一次函数接着上次继续随机取值,第一个函数所有该参数取第一个随机值,下一个函数所有该参数取另一随机值,以此类推(参数列表用完,可以继续重复使用参数)如:每一个web_url是一个函数。 | |
once | n次出现、或者n次迭代都是取参数文件当中的第一个值。 | n次出现、或者n次迭代都是取参数文件当中的第一个随机值。 | n次出现、或者n次迭代都是取参数文件当中的第一个值。与sequential+once一样? |
each iteration+abort vuser | 顺序取值,下一次迭代接着上次继续取值,第一次迭代所有该参数取第一个值,下一次迭代所有该参数取第2个值,以此类推,如果迭代次数多于参数列表个数,会报No more unique values for this parameter in table 'keyword.dat'错 | ||
each iteratione+continue in a cyclic manner | 顺序取值,下一次迭代接着上次继续取值,第一次迭代所有该参数取第一个值,下一次迭代所有该参数取第2个值,以此类推(参数列表用完,可以继续循环重复使用参数)。 | ||
each iteratione+continue with last value | 顺序取值,下一次迭代接着上次继续取值,第一次迭代所有该参数取第一个值,下一次迭代所有该参数取第2个值,以此类推,如果迭代次数多于参数列表个数,会报No more unique values for this parameter in table 'keyword.dat'错 | ||
each occurrence+abort vuser | |||
each occurrence+continue in a cyclic manner | 顺序取值,下一次函数接着上次继续取值,第一次函数所有该参数取第一个值,下一次函数所有该参数取第2个值,以此类推(参数列表用完,可以继续循环重复使用参数)。 | ||
each occurrence+continue with last value | 顺序取值,下一次函数接着上次继续取值,第一次函数所有该参数取第一个值,下一次函数所有该参数取第2个值,以此类推,如果使用该参数的函数个数多于参数列表个数,会报No more unique values for this parameter in table 'keyword.dat'错 |
Automatically allocate block size(自动分块):系统自动为参数分块大小
自动分块示意图:假设一个Vuser执行完迭代需要4个值
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
A7 |
A8 |
… |
An |
An+1 |
|
Vuser1 |
Vuser2 |
… |
Vuser n |
Vuser n+1 |
1) 会按照排队的方式分配参数
2) 块的大小为一个Vuser运行完毕所需要的参数
3) Vuser分到的参数不够,将在自己分的块中进行取值:例如:Vuser n只分到两个参数,Vuser n会按照when out of value的方式取值,如果是Continue with last value,Vuser n 的参数取值是An,An+1,An+1,An+1,如果选择的是Continue in a cyclic manner,Vuser n的参数取值是An,An+1,An,An+1(块内循环)
4) Vuser n+1因为没有分到参数会报错
5) 所需参数总数 块大小 * Vuser个数(块大小计算,Each iteration(每次迭代)则 = 迭代次数,Each occurrence(每次遇见)则 = 迭代次数 * 一次迭代出现次数)
Allocate ** values for each Vuser(分配**块给每个Vuser):手动分块
手动分块示意图:假设一个Vuser执行完迭代需要4个值,手动分块块大小为3
A1 |
A2 |
A3 |
A4 |
A5 |
A6 |
A7 |
A8 |
A9 |
… |
Vuser1 |
Vuser2 |
Vuser3 |
… |
1) 会按照分块的方式分参数
2) 块大小为设定大小
3) Vuser分到的参数不够,将在自己分的块中进行取值:例如:因为每个Vuser需要四个参数,所以每个Vuser参数都不够,则Vuser2为例,如果选择的是Continue with last value,Vuser 2 的参数取值是A4,A5,A6,A6,如果选择的是Continue in a cyclic manner,Vuser 2的参数取值是A4,A5,A6,A4(块内循环)
4) 所需参数总数 手动分配块大小 * Vuser个数
注:在controller设置duration的情况下,自动分块的分块方式有所变化,块大小 = 我们输入的参数总数 / Vuser的个数,其他处理方式和手动分配块大小一致