1、参数化的原因及条件:待补充
2、参数化示例及说明:
使用指定数据源中的值来替换脚本中的某些常量。参数化的过程体现了数据驱动的思想,即测试数据与测试脚本分离。
参数化涉及两个任务: a) 创建参数:用参数替换Vuser脚本的常量值; b) 设置参数类型:为参数设置属性和数据源;
参数化方法:
1)选中要参数化的常量并右击,弹出的快捷菜单中选择Replace with a Parameter,弹窗中设置参数名称、参数类型及默认值。
2)点击Properties设置参数属性,如图所示。具体属性说明及示例请参考本文第3部分内容。
各个场景汇总:
各个场景详情:
结果:AAAA,BBBB,CCCC,AAAA,BBBB
过程说明:第一次迭代取第1行数据,第二次迭代取第2行数据,当所有值取完后再从第1行开始取。若一次迭代中参数出现多次,则取相同的值。
结果:ABCA,BCAB,CABC,ABCA,BCAB
功能说明:参数每出现一次按序取一行值,从第一行开始取。当所有的值取完后,再从第一行开始取。若一次迭代中参数出现多次,则参数按序取不同的值。
结果:AAAA,AAAA,AAAA,AAAA,AAAA
功能说明:每次迭代都取参数化文件中第一行的数据。若一次迭代中参数出现多次,则取相同的值。
其中一种结果:CCCC,CCCC,BBBB,CCCC,BBBB
功能说明:每次迭代从参数化文件中随机选择一行数据进行赋值。若一次迭代中参数出现多次,则取相同的值。
其中一种结果:AAAB,ABCB,BCAB,CCCC,BACC
功能说明:参数每出现一次就从参数化文件中随机选择一行数据进行赋值。若一次迭代中参数出现多次,可能取不同的值,也可能取相同的值。
其中一种结果:BBBB,BBBB,BBBB,BBBB,BBBB
功能说明:第一次迭代时从参数化文件中随机取一行数据进行赋值,后面每次迭代都用第一次迭代的数据。若一次迭代中参数出现多次,则取相同的值。
过程说明:第一次迭代取第1条数据,第二次迭代取第2条数据,以此类推。当所有的值取完后,若继续执行,根据“when out of values”属性来判断当数据不够时的处理方式:
Countinue with last value:继续用最后一条数据,结果:AAAA,BBBB,CCCC,CCCC,CCCC
过程说明:第一次迭代取第1条数据,第二次迭代取第2条数据,以此类推。当所有的值取完后,若继续执行,根据“when out of values”属性来判断当数据不够时的处理方式:
Countinue in a cylic manage:循环取参数化文件中的值,即:当参数化文件中的值取完后又从参数化文件的第一行开始取值。结果:AAAA,BBBB,CCCC,AAAA,BBBB
过程说明:第一次迭代取第1条数据,第二次迭代取第2条数据,以此类推。当所有的值取完后,若继续执行,根据“when out of values”属性来判断当数据不够时的处理方式:
Abort Vuser:中断虚拟用户,结果:AAAA,BBBB,CCCC,报错中断
过程说明:第一次迭代取第1条数据,第二次迭代取第2条数据,以此类推。若一次迭代中参数出现多次,则取不同的值。 当所有的值取完后,若继续执行,根据“when out of values”属性来判断当数据不够时的处理方式:
Abort Vuser:中断虚拟用户,结果:ABC报错中断
过程说明:第一次迭代取第1条数据,第二次迭代取第2条数据,以此类推。若一次迭代中参数出现多次,则取不同的值。 当所有的值取完后,若继续执行,根据“when out of values”属性来判断当数据不够时的处理方式:
Countinue in a cylic manage:循环取参数化文件中的值,即:当参数化文件中的值取完后又从参数化文件的第一行开始取值。结果:ABCA,BCAB,CABC,ABCA,BCAB,该设置同Sequential +Each occurrence组合设置。
过程说明:第一次迭代取第1条数据,第二次迭代取第2条数据,以此类推。若一次迭代中参数出现多次,则取不同的值。 当所有的值取完后,若继续执行,根据“when out of values”属性来判断当数据不够时的处理方式:
Countinue with last value:继续用最后一条数据,结果:ABCC,CCCC,CCCC,CCCC,CCCC
功能说明:每次都取参数文件中的第一条数据进行赋值。若一次迭代中参数出现多次,则取相同的值。
结果:AAAA,AAAA,AAAA,AAAA,AAAA
3、参数类型属性:
1、Date/Time 日期/时间类型:
2、File文件:
注意:
参数化文件尽可能少,因为参数是放在内存中的,占用了内存资源;
参数化文件与脚本分离;
参数化文件的路径应该设置为相对路径,增加脚本的可移植性,避免脚本换个机器或者路径后执行报错;
为了使参数更具有真实性,参数应该从历史数据库汇中获得;
3、Group Name组名
直接运行Vugen脚本,组名为None;
在创建方案时,指定Vuser组的名称,运行方案时,将显示组名;
4、Iteration Number迭代编号
5、Load Generator Name负载发生器名
负载发生器:运行Vuser的计算机
直接运行Vugen脚本,负载发生器名为Local
运行方案时,负载发生器名为实际运行的计算机名;
6、Random Number随机数
生成随机整数替换参数,可以通过指定最小值和最大值设定随机数的放哪我。
7、Unique Number唯一数
start:表示Vuser从第几个参数开始使用
Block Size:块大小,设置分配给每个Vuser的编号块大小,若设置为%04d,表示只能产生1-9999的数。此时切勿将块大小设置为最大值9999,第一个Vuser就占用了9999个数,剩余的用户将无数据可用。
第1个Vuser从1开始到100:
第2个用户从101开始到199:
8、Vuser ID