重点:
1、参数化的难点主要在于数据分配(即取值的顺序)及更新方式(即值更新的时间)
2、每次取值是以迭代为单位的,默认取值是分配给迭代里的所有Vuser。可以设置分配给Vuser的值,当为唯一时,默认一个值只分配给一个用户。可以联想食堂排队取饭。
- 每次迭代更新:每次迭代时取新的值,假如50个用户都取第一条数据,称为一次迭代;完了50个用户都取第二条数据,后面以此类推。
- 每次参数更新:每次参数时取新的值,这里强调前后两次取值不能相同。(如果没有两个一样的参数,则与上述用法相同)
- 只更新一次:所有用户都以第一个迭代拿的为准。每个人第二次拿的只能跟第一次一样。
正文
我们知道性能测试工具可以模拟多个用户对系统的性能进行验证, 有些系统允许多个完全相同的用户同时对完全相同的数据做完全相同的操作,有些则不允许。比如,邮箱一般允许同一个账号在多处登陆,而我们的QQ账号肯定是不允许的。再比如,你注册某个系统时,用户名是不能有重复,但密码却可以。所以,这么多个情况都要用到参数化的技巧。
数据分配与更新方式
重点:
每次取值是以迭代为单位的,默认取值是分配给迭代里的所有Vuser。可以设置分配给Vuser的值,当为唯一时,默认一个值只分配给一个用户。
Select next row【选择下一行】:
顺序(Sequential):按照顺序取值,一个一个来取。当数据被取完,则从头继续取值。(所有用户)
随机(Random):随机从数据列表抽取数据。(所有用户)
唯一(Unique):按照顺序取值,但每个数据只能分配给一个用户。当数据被取完,不再继续取值,除非设置了超出值策略。(每个用户)
Update value on【更新值的时间】:
每次迭代(Each iteration) :每次迭代时取新的值,假如50个用户都取第一条数据,称为一次迭代;完了50个用户都取第二条数据,后面以此类推。
每次出现(Each occurrence):每次参数时取新的值,这里强调前后两次取值不能相同。(如果没有两个一样的参数,则与上述用法相同)
只更新一次(once) :只更新一次,即Vuser的所有迭代的值都按第一个迭代取的为准。
当超出值时的处理方式:
About Vuser:当取值次数超过参数的行数时,忽略脚本的运行,即停止该Vuser的运行。
Continue in a cyclic manner:当取值超过时,从Vuser的取值范围的第一行继续取值。
Continue with last value:当取值超过时,从Vuser的取值范围的最后一行继续取值。
Vuser数量: 4 迭代次数:10 数据:A、B、C、D、E、F、G | ||
取值方式 | 分配方式 | 结果 |
顺序 | 每次迭代 |
4个用户10次迭代10次成功。 每个Vuser每个迭代的取值: Vuser1:A,B,C,D,E,F,G,A,B,C Vuser2:A,B,C,D,E,F,G,A,B,C Vuser3:A,B,C,D,F,E,G,A,B,C Vuser4:A,B,C,D,E,F,G,A,B,C |
顺序 | 每次参数 |
4个用户10次迭代10次成功。 1、没有相同的参数时同上 2、有相同的参数时: Vuser1:A&B,C&D,E&F,G&A... Vuser2:同上 Vuser3:同上 Vuser4:同上 |
顺序 | 只更新一次 |
4个用户10次迭代10次成功。 Vuser1:A,A,A,A,A,A,A,A,A,A Vuser2:同上 Vuser3:同上 Vuser4:同上 |
随机 | 每次迭代 |
4个用户10次迭代10次成功。 每个迭代随机取值,有可能出现重复。 不同的用户,同一个迭代的取值相同。 |
随机 | 每次参数 | 4个用户10次迭代10次成功。 |
随机 | 只更新一次 | 4个用户10次迭代10次成功。 |
唯一 |
每次迭代 | 分别将15条数据写入数据表中 |
唯一 | 每次参数 | 分别将15条数据写入数据表中 |
唯一 | 只更新一次 | 表中写入15条相同数据 |