LoadRunner使用1(Generater)

上午实习任务:

  • lr在哪里观察、如何观察发出的请求和响应的信息
  • lr有哪些种类的检查点,分别起什么作用
  • 可以在那些地方设置检查点
  • 要让检查点生效必须在哪做什么设置
  • 对比qtp的检查点分析lr检查点的特点
  • 对录制的脚本分别实验几种检查点,测试检查通过和不通过的现象
  • lr有几种方式进行参数化
  • 如何让脚本按照实际的参数化数据量来运行测试
  • 在代码中用图形化界面帮助进行参数化
  • 自行创建一个符合格式要求的参数化文件,在脚本中选择该文件进行参数化
  • 对比qtp的参数化分析lr参数化的不同

 

下午实习任务:

  • 将参数化的变量值在日志中打印输出
  • 什么是关联,什么情况下要用关联
  • 尝试用b/s订票系统录制脚本、回放之后实现自动关联
  • 验证自动关联的脚本能否解决问题

LoadRunner使用

Generater基本页面:

 

1、录制

新建录制:

选择相应的协议,点击“create”:

 

Application type :选择录制的程序类型,分为web页面和客户端:

Program to record :选择打开web程序使用的浏览器,这里因为是window2003所以还是默认选择ie浏览器

URL Address :填入要打开的web程序的URL地址

Working directory :工作目录

Record Action :选择所在的Action

 

如有更多详细设置可以点击左下角的“Options”:

录制完成后点击“stop”结束录制:

录制完成后的脚本:

如不保存,可选择“file”-->“close”关闭:


2、检查点

(1)插入检查点的方法

a.在菜单栏选择“insert”--> “new step”:

选择检查点,有图片和文本检查点两种:

b.在菜单栏选择“tree”:

在Action页面选择对应位置右键,插入检查点:

c.在“html view”页面选中需要检查的文字,右键:

(2)图片检查点

例:在“WebTours”中检查其logo

查看想检查的图片页面的源代码:

可以看到此页面的分栏,因为logo在头部,我们注意到“header.html”:

在“http view”页面,找到“header.html”中的图片路径“images/hp_logo.png”:

插入图片检查点,勾选SRC,填入刚刚找到的地址:

可以发现“tree”页面多了一行图片检查:

“script”页面也多了相应的代码:

选择菜单栏“vuser”-->“run-time settings”:

在“perferences”页面勾选检查点:

运行完后可以在日志页面看到检查点的结果:

或者在菜单栏打开运行结果:

可以看到相应检查点结果显示:


3、参数化

(1)选中要参数化的部分,右键:

可以定义参数名,选择参数的类型:

参数化完成后的结果如图所示:

如果在后面还有代码需要使用同一个参数,可以右键选择:

(2)选中已参数化的部分,右键,对其属性进行设置:

可以添加行,以进行多组数据的执行:

如果想把密码和用户一一对应放在一起参数化,可以添加列:

这里是指当前按第x列执行,因为该属性是用户名打开的,因此我们要选择第一列:

同样的,对密码进行参数化,选择“属性”:

在“file”中选择刚刚用户名的file,选择第2列:

关闭后点击“保存”:

选择菜单栏“vuser”-->“run-time settings”:

把运行次数改为“2”:

选择菜单栏的“常规设置”:

勾选该选项:

可以在运行时显示操作

在菜单栏的“参数列表”中可以查看已有参数:

运行后,可以从日志中看出确实运行了2次:

(3)除了添加行和列进行参数化,我们还可以直接导入文档来参数化。

进入项目的保存目录,可以发现有我们刚刚参数化的“user.dat”文件:

用“写字板”打开:

仿照其格式,新建一个文本文档,编辑好内容后保存为“test.dat”:

进入“参数列表”,把文件更改为刚刚编辑好的内容:

可以看到列表显示了文本文档中的信息

其中,右下角的“file format”中表示其分隔符:

分别为,逗号、tab符,空格

把运行次数改为4,再次运行:

(4)如果参数化后只有2组数据,运行4次会有什么结果呢?

从结果报告中可以发现为循环运行:

我们打开参数化列表:

“Select next row”表示选用下一条数据的方法:

Sequential按列表顺序使用
Random随机使用列表中的数据
Unique只用某一条固定的数据

“Updata value on”表示如果一次迭代中有多次出现该变量,使用的方法:

Each iteration每次迭代都按照上一条选用的方法来
Each occurrence每次遇到该变量,就按照上一条选用的方法来
Once只使用一次上一条选用的方法

我们在登录的后面加入一行代码:

lr_output_message("调试信息:%s",lr_eval_string("{user}"));

可在每次执行完毕后在日志页面打印出当前登录所用的用户名。

需要提到的一点是,当我们加入代码后,可以先编译验证其正确性再来运行,当代码行很多时这是必要的:

日志页面显示:

再说回来,比如,我们选择每次迭代都随机选择:

运行后可以看到:

Starting iteration 1.
Action.c(21): 调试信息:lakuite
Starting iteration 2.
Action.c(21): 调试信息:aaa
Starting iteration 3.
Action.c(21): 调试信息:abc
Starting iteration 2.
Action.c(21): 调试信息:abc

若换成每次遇到都随机选择:

运行后可以看到:

Starting iteration 1.
Action.c(21): 调试信息:lakuite
Starting iteration 2.
Action.c(21): 调试信息:test
Starting iteration 3.
Action.c(21): 调试信息:aaa
Starting iteration 2.
Action.c(21): 调试信息:aaa

因为该脚本中每次迭代都只用过“user”变量一次,所以在此例中这两种方法是相同的。

若选择只随机执行一次:

运行后可以看到:

Starting iteration 1.
Action.c(21): 调试信息:abc
Starting iteration 2.
Action.c(21): 调试信息:abc
Starting iteration 3.
Action.c(21): 调试信息:abc
Starting iteration 2.
Action.c(21): 调试信息:abc

因为只执行一次,所以每次的用户名都是第一次选择的那一个。


 4、关联

我们打开订票网页,进入管理员页面:

勾选第3条:

点击底部的“更新”:

重新录制一次脚本,并运行。

可以发现日志行有如下的错误:

这是因为录制时的session和运行时已经不是同一个。

我们使用一下LR的自动比对功能:

需要注意的是,该功能比较严苛,一定要是刚录制好的初始状态的脚本,并运行一次才能实现成功。

在结果页面中可以发现有2处不同:

这2处其实都是session的内容部分:

除了这种比对方式还有另一种比对,但是只能比对代码行:

选择要与之比对的脚本:

图中黄色标记处即为不同:

我们回到自动比对页面,选择不同处的任意一行,点击“关联”:

看到代码页面,可以发现以下行有改变:

把以“p”开头“D”结尾的一段字符串做成参数化,命名为“CorrelationParameter_1”。

把参数化的该变量放到对应的位置。

但是事实上,其实整个“session value”的部分都应该做成参数化,而不是其中的一小段。

回到http视图,如果想要把整段变成参数化,且不会与其他行产生歧义,可以选择以“userSession value=”为开头,以“>”为结尾:

更改一下代码页面,变量名比较长,顺便也更改为一个更短的变量名:

运行一下,对比修改前和修改后的日志报告,之前报的红色错误消失了:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值