|
为什么要参数化
在录制程序运行的过程中,Vugen自动生成了脚本以及录制过程中实际用到的数据。在这个时候,脚本和数据是混在一起的。
比如,你用VU的Web Vuser录制一个用户登陆Web系统的过程,对于登陆的操作,会生成以下脚本:
web_submit_form(
...
"Name=username", "Value=test", ENDITEM,
"Name=password", "Value=tt", ENDITEM,
...
LAST);
web_submit_form是登录触发的动作,而"test"和"tt"是填入的数据。
如果Controller里以多用户方式运行这个脚本的时候,每个虚拟用户都会以同样的用户名"test"、密码"tt"去登陆Web系统。这样做性能测试肯定不行,这显然不是一个真实的业务场景。尤其服务器大都会采用Cache功能提高系统性能,用同样的用户名、密码登陆系统的Cache命中率会很高,也要快的多。
因此,希望用LR多用户多循环运行时,不会只是重复一个用户的登陆,也就是说,此函数中的数据要变化,这样的话,就把这些数据用一个参数来代替,其实就是把常量变成变量。
参数化后的脚本如下:
web_submit_form(
...
"Name=username", "Value={username}", ENDITEM,
"Name=password", "Value={password}", ENDITEM,
...
LAST);
参数化后,用户名"test"被一个参数{username}替换,密码"tt"被另外一个参数{password}代替。
{username}和{password}分别和参数文件关联,在脚本运行时,用户名和密码的值就从参数{username}和{password}中获得。这样就实现了脚本和数据的分离。
参数化是LoadRunner中经常用到的功能。除了实现数据驱动之外,参数化脚本还具有以下优点:
1.可以使脚本的长度变短
2.可以增强脚本的可读性和可维护性 |
|