4.参数化
参数化的目的是模拟真实的用户操作来创建的结果。比如,要测试性能测试中一个查询功能,不可能每次都输入一样的值,LoadRunner提供了参数化功能,其原理如22所示。
22 参数化目的
参数化的步骤如下。
(1)确定需要参数化的数据。
(2)选择数据,鼠标右键选择“用参数替换”。如23所示。
23 选择参数
(3)在参数列表中设置参数值和参数更新方式,如24所示。
24 创建参数
参数可以从数据库和文件中获得,一般选择从文件中获得比较多,单击【属性(R)…】按钮,如25所示。也可以通过选择菜单“Design->Parameter-> Parameter List”进入,显示已设置的参数。
然后就可以输入参数了。对于参数,几个选项描述如下。
l Select nextrow。
Ø Sequential:连续。
Ø Random:随机。
Ø Unique:唯一。
Ø Same as …:当有其他参数存在的时候(比如密码),选择同一行。
l Update valueon。
Ø Each iteration:每次迭代时更新一个值。
Ø Each occurrence:如果一个迭代中参数出现多次,则取一个值。
Ø Once:第一次取一个值,以后迭代都不变。
在这里将刚才录制的脚本。
"Name=username","Value=cindy", ENDITEM,
"Name=password", "Value=123456", ENDITEM,
对用户名“cindy”和密码“123456”进行参数化,变为:
"Name=username","Value={username}", ENDITEM,
"Name=password","Value={password}", ENDITEM,
25 输入参数
也可以选择【Edit With Nodepad…】来进行快速的编辑,如26所示。
26 用记事本进行快速编辑
其中,文件第一行是变量的名称。
在这里把username和password合并在一个文件中。username按编号选择1,password按编号选择2,如27所示。
27 显示已设置的参数
当“Select next row”为“Unique”的时候,就会出现参数不够用的情形。这时候就可以选择“当操作值时”的下拉条选项了。
l Abort Vuser:忽略剩下所有虚拟用户不再运行。
l Continue in a cycle manager:将参数继续循环一次。虚拟用户按顺序参数进行迭代,与选择顺序一致。
l Continue with last value:选择最后一个值。
比如前几次迭代选择的参数分别为“1”“2”“3”,下面还有5次迭代,那么参数就不够用了。如果选择“Abort Vuser”不进行下5次迭代;如果选择“Continue in a cycle manager”下几次迭代为“1”“2”“3”“1”“2”;如果选择“Continuewith last value”下几次迭代为“3”“3”“3”“3”“3”。
设置完毕参数,来观察一下参数是不是起作用。在代码中插入如下语句。
lr_output_message("username==%s",lr_eval_string("{username}"));
lr_output_message("password==%s",lr_eval_string("{password}"));
由于设置了5个参数,所以在13中把迭代数设置为5。然后运行。运行完毕,如果在运行日志中显示如下记录说明运行正常。
Action.c(59):username== cindy
Action.c(60):password== 123456
…
Action.c(59):username== linda
Action.c(60):password== 123456
…
Action.c(59):username== jerry
Action.c(60):password== 654321
…
Action.c(59):username== susan
Action.c(60):password== qwert
…
Action.c(59):username== peter
Action.c(60):password== zxcvb
…
5.事务
在介绍事务之前,希望大家能够回顾一下本书中“响应时间”的内容。
就像7所示,事务可以在录制过程中添加,同时也允许录制结束后在脚本代码中手工输入,比如:
l 插入->开始事务;
l 插入->结束事务。
插入事务开始与结束点如28所示。
28 插入事务开始与结束点
所谓一个事务,就是一个特别需要关注的过程,如需要测试一个电子商务网站查询某个商品的性能,那么输入数据后插入一个事务开始点,然后等查询结果全部显示出来后插入事务的结束点。最后的分析报表中会告诉这个事务的各种详细的性能参数,参见29。
29.事务
插入事务代码如下:
lr_start_transaction("login");
…
lr_end_transaction("login",LR_AUTO);
其中,“login”为这个事务的标识名。事务的时间组成如30所示,具体包括如下。
l 函数自身。
l Think Time:用于模拟用户操作步骤之间延迟时间的一种技术手段。
l WastedTime:Web函数进行处理时需要消耗的时间,第三方代码浪费的时间通过lr_wasted_time()函数手工计算。
l 响应时间。
30 事务的时间组成
星云测试
http://www.teststars.cc
奇林软件
http://www.kylinpet.com
联合通测
http://www.quicktesting.net