一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“LoadRunner12 测试HTTP协议基本功能使用技巧(3)”。
4.参数化
参数化的目的是模拟真实的用户操作来创建的结果。比如,要测试查询功能的性能,不可能每次都输入一样的值,LoadRunner提供了参数化功能,其原理如图3-20所示。
图3-20 参数化目的
参数化的步骤如下。
(1)确定需要参数化的数据。
(2)选择数据,鼠标右键选择“Repalce with Parmeter->Create New Parmeter…”。如图3-21所示。
图3-21 选择参数
(3)在参数列表中设置参数值和参数更新方式,如图3-22所示。
图3-22 创建参数
参数可以从数据库中获得,也可以从文件中获得,一般选择从文件中获得比较多,单击【属性(R)…】按钮,如图3-23所示。也可以通过选择菜单“Design->Parameter-> Parameter List”进入,显示已设置的参数。
然后就可以输入参数了。对于参数,几个选项描述如下。
l Select next row。
Ø Sequential:连续。
Ø Random:随机。
Ø Unique:唯一。
Ø Same as …:当有其他参数存在的时候(比如密码),选择同一行。
l Update value on。
Ø 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,
由此可见,LoadRunner的参数设置为:{参数名}。
图3-23 输入参数
也可以选择【Edit With Nodepad…】来用写字板进行快速地编辑,如图3-24所示。
图3-24 用记事本进行快速编辑
其中,文件第一行是变量的名称。
在这里把username和password合并在一个文件中。username按编号选择1,password按编号选择2,如图3-25所示。
图3-25 显示已设置的参数
当“Select next row”为“Unique”的时候,就会出现参数不够用的情形。这时候就可以选择“当操作值时”的下拉条选项了。
l Abort Vuser:忽略剩下所有虚拟用户不再运行。
l Continue in a cycle manager:将参数继续循环一次。虚拟用户按顺序参数进行迭代,与选择顺序一致。
l Continue with last value:选择最后一个值进行下面的所有迭代。
比如前几次迭代选择的参数分别为“1”“2”“3”,下面还有2次迭代,那么参数就不够用了。如果选择“Abort Vuser” 不进行下2次迭代;如果选择“Continue in a cycle manager”下几次迭代为“1”“2”;如果选择“Continue with last value” 下几次迭代为“3”“3”。
设置完毕参数,来观察一下参数是不是起作用。在代码中插入如下语句。
lr_output_message("username== %s",lr_eval_string("{username}"));
lr_output_message("password== %s",lr_eval_string("{password}"));
这个语句的作用是在运行输出日志中输出对应的内容。由于设置了5个参数,所以在图3-13中把迭代数(Number of Iterations)设置为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.事务
在介绍事务之前,希望大家能够回顾一下章节中“响应时间”的内容。
就像图3-7所示,事务可以在录制过程中添加,同时也允许录制结束后在脚本代码中手工输入,比如。
l 插入->开始事务。
l 插入->结束事务。
插入事务开始与结束点如图3-26所示。
图3-26 插入事务开始与结束点
所谓一个事务,就是一个特别需要关注的过程,如需要测试附录A电子商务网站模糊查询某个商品功能对应的性能,那么这个模糊查询就是一个事务,当然登录功能也可以作为一个事务。比如在模糊查询输入数据前插入一个事务开始点,然后等查询结果全部显示出来后插入事务的结束点。最后的分析报表中会告诉这个事务的各种详细的性能参数,参见图3-27。
插入事务代码如下。
lr_start_transaction("login");
…
lr_end_transaction("login",LR_AUTO);
其中,“login”为这个事务的标识名。事务的时间组成如图3-28所示,具体包括如下。
l 函数自身。
l Think Time:用于模拟用户操作步骤之间延迟时间的一种技术手段。
l Wasted Time:Web函数进行处理时需要消耗的时间,第三方代码浪费的时间通过lr_wasted_time()函数手工计算。
l 响应时间。
图3-28 事务的时间组成
今天关于“LoadRunner12 测试HTTP协议基本功能使用技巧(3)”就学习到这里了,每个工作日小编都会更新一个小知识,希望大家多多关注我们,一起来学习喔!