在https://blog.51cto.com/372550/2417934 已讲解LR 参数化基本内容,而实际工作中参数化是一项对压测数据一致性、完整性、唯一性等非功能技术指标一项重要考核内容。
例如我们身份证、手机号、登录账户等唯一性、且之间也有关联关系,在如招行银行卡,一个人可以办理多张,但是可以用同一个手机号和身份证,在转账等可以在同一个APP切换转账,这时模拟不同虚拟用户,一个虚拟用户多个银行卡账户,进行模拟切换转账、汇款等交易操作,或者有些交易流水账号只能用一次,但是我们需要模拟千百个用户并发,每个用户可以使用100个交易流水号进行发请求且交易流水账户唯一性不能重复发起等等业务场景要求,这时就需要灵活运用好参数化,那首先我们要了解LOADRUNNE参数化的含义和用户
LoadRunner进行参数化输入时,参数的属性有Select next row、Update value on两个项,其中Select next row属性包括三个选项: Update value on属性包括四个选项:Sequential、Random、Unique、四个选项,如下三个截图根据上面描述的不同的业务类型场景进行设置,满足业务模拟需要
下面是实际操作中对于参数选择类型不同得到的不同的预期结果,
如下参数表:
选择下一行 | 更新值的时间 | 说明 |
Sequential | Each iteration | 每次执行Action时,参数值改变。 每个Vuser的参数取值都一样。 |
Each occurrence | 每次取参数时,参数值改变。 每个Vuser的参数取值都一样。 | |
Once | 唯一 | |
Random | 自由选取参数 | |
Unique | Each iteration | 每次执行Action时,参数值改变。 在Allocate Vuser values in the Controller中 可选择“自动”和“手动”分配。 “自动”分配把参数平均分给每个Vuser。“手动”分配时,参数不够的话,压力测试时会报错。 |
Each occurrence | 手工分配用户,给每个用户分配好N个参数后,在脚本中N就使用已经分配好的N个参数。 | |
Once | 唯一 | |
When out of values | Abort Vuser | 当参数取值超出参数表记录的条数时,中止当前vuser |
Continue in a cyclic manner | 使用同样的循环样式继续, 与“Sequential”相同 | |
Continue with last value | 使用最后一个参数值继续 |