前面我们说了为什么要做参数化,以及参数化的具体实现,其实说到底就是要实现数据驱动,其实不管是做性能还是功能自动化,都是相通的,是个要考虑的问题,我们这里拿Load Runner做个说明。
1. 录制/编写基本脚本
通过录制/编写来实现基本的业务流程,这种情况下,数据是Hard Code在脚本中的,在并发性能的时候,这种数据是很不真实的场景。
2. 实现参数化(数据驱动)
为了模拟更真实的场景,保证业务功能的正确性,我们要做数据的参数化,具体请参考 LR参数化实现
3. 实现动态参数化
参数化把数据和脚本分离开来,但是有时候会有问题。比如下面这个购物场景,我想随机进入一个商品品类中再选择一件商品,对品类进行参数化,即把所有品类都放到外部数据文件中,那万一品类有增加/减少了,都得再回去修改数据文件,这也是一个很头疼的工作。
理想的状态下,应该是在选择品类之前,先从页面上动态获取当前所有的品类,然后再进行品类选择,这样不管在什么情况下,业务的正确性都是能够保证的。
在Load Runner中,我们就要用到关联了:
获取所有的商品品类
1
2
3
4
5web_reg_save_param("categorties",
"LB=cat=",
"RB=\">",
"Ord=All",
LAST);获取随机的商品品类
1
lr_save_string(lr_paramarr_random("categorties"), "category");
进行后续的操作
1
2
3web_url("Homepage",
"URL=http://xxx.com/list.html?cat={category}",
LAST);