LoadRunner 教程 > 第 4 课:为负载测试准备脚本

第 4 课:为负载测试准备 Vuser 脚本

在前面的课程中,已经验证了回放 Vuser 脚本会生成真实用户的精确模拟。下一步将是为负载测试准备脚本。当多个用户同时使用系统时,该系统将如何运行?系统的性能是否会下降到不可接受的程度?

在这一课,您将了解用于增强脚本,以便更有效地进行负载测试流程的不同方法。

在这一课,您将学习以下内容:

如何估计业务流程的持续时间?

在准备部署应用程序时,您需要估计具体业务流程的持续时间:登录、预订机票等要花费多少时间。每个业务流程通常由脚本中的一个或多个步骤或操作组成。在 Vuser 脚本中,通过将一系列操作包含在事务内,可以将它们指定为要评测的操作。

当运行包含事务的 Vuser 脚本时,LoadRunner 会收集关于事务执行时间长度的信息,并将结果显示在用不同颜色标识的图和报告中。您可以使用这些信息帮助确定应用程序是否符合性能要求。

可以在 Vuser 脚本中的任意位置手动插入事务。要将一系列步骤标记为事务,请在第一个步骤前插入 start_transaction 标记并在最后一个步骤后插入 end_transaction 标记。

在这一节中,您将在脚本中插入一个事务来计算用户查找和确认航班所花费的时间。

要将事务插入到 Vuser 脚本中,请执行以下操作:

  1. 在 VuGen 中,打开在第 1 课:创建 Vuser 脚本中创建的 Basic_Tutorial 脚本。如果此脚本已经打开,可以选择显示其名称的选项卡。否则,可以从文件菜单中打开该脚本。
  2. 单击步骤导航器选项卡显示步骤导航器。
  3. 插入开始事务标记。
    1. 在步骤导航器中,找到步骤 Image:Search Flights Button
    2. 双击 Image:Search Flights Button 步骤以显示编辑器中相应的 web_image 步骤。
    3. 单击视图 > 步骤工具箱。步骤工具箱将显示在右窗格中。
    4. 在步骤工具箱中的常用下,选择 lr_start_transaction,将其拖动到编辑器中,然后在 web_image 步骤前释放。“开始事务”对话框将打开。

    5. 事务名框中,输入 find_confirm_flight 并单击确定。VuGen 在步骤导航器中插入 lr_start_transaction 步骤,并在编辑器中插入相应的 lr_start_transaction 函数。
  4. 插入结束事务标记。
    1. 在步骤导航器中,查找步骤提交数据:reservations.pl_2
    2. 双击提交数据:reservations.pl_2 步骤以显示编辑器中相应的 web_submit_data 步骤。
    3. 在步骤工具箱的常用下,选择 lr_end_transaction,将其拖到编辑器中,然后在 web_submit_data 步骤后释放。“结束事务”对话框将打开。

    4. 确保 find_confirm_flight 显示在事务名框中,然后单击确定。VuGen 在步骤导航器中插入 lr_end_transaction 步骤,并在编辑器中插入相应的 lr_end_transaction 函数。

      现已定义了 find_confirm_flight 事务。

如何模拟多个用户?

在模拟场景中,跟踪一位预订机票并选择靠近过道座位的用户。但在实际生活中,不同的用户会有不同的喜好习惯。要改进测试,需要检查当用户选择不同的座位首选项(靠近过道靠窗)时,是否可以正常预订。

为此需要对脚本进行参数化。这意味着您要将录制的值 Aisle 替换为一个参数。将参数值放在参数文件中。运行脚本时,Vuser 从参数文件中取值(AisleWindowNone),从而模拟真实的旅行社环境。

要参数化脚本,请执行以下操作:

  1. 找到要更改数据的部分。
    1. 选择视图 > 步骤导航器,以在左窗格中显示步骤导航器。
    2. 在步骤导航器中,找到提交数据:reservations.pl 步骤。
    3. 右键单击提交表单:reservations.pl 步骤并选择显示参数。将打开“提交表单步骤属性”对话框。

      网格中各个参数右侧的 ABC 图标 表示参数有一个固定值。

  2. 将常量值更改为变量值。
    1. 在“提交表单步骤属性”对话框中,选择网格第七行中的 seatPref
    2. 单击 seatPref 参数旁的 ABC 图标 。将打开“选择或创建参数”对话框。

  3. 创建参数。
    1. 参数名称框中,键入 seat
    2. 单击确定。在“提交表单步骤属性”对话框中,VuGen 将 ABC 图标 替换为参数图标

    3. 单击 {seat} 旁的参数图标 并选择参数属性。将打开“参数属性”对话框。

  4. 指定参数的值。
    1. 单击添加行。VuGen 将向表中添加行。
    2. Window 替换 Value
    3. 单击添加行。VuGen 将向表中添加另一行。
    4. None 替换 Value

      备注: 值不区分大小写。

    5. 接受对话框的选择列文件格式部分的默认设置。
  5. 定义测试更改数据的方式。
    1. 接受默认设置,让 VuGen 为每次迭代取新值:值更新时间:每次迭代
    2. 单击关闭关闭“参数属性”对话框。
    3. 单击确定以关闭“提交表单步骤属性”对话框。

      现在已为座位首选项创建了参数。运行负载测试时,Vuser 将使用参数值,而不是录制的值 Aisle

      运行脚本时,回放日志会显示每次迭代发生的参数替换。Vuser 第一次迭代将使用 Aisle,第二次迭代将使用 Window,第三次迭代将使用 None

如何验证网页内容?

运行测试时,常常需要验证某些内容是否出现在返回的页面上。内容检查验证脚本运行时网页上是否出现期望的信息。可以插入两种类型的内容检查:

在这一节,您将插入文本检查,检查 Find Flight 是否出现在 HP Web Tours 的 Reservations(预订)页面上。

插入文本检查

  1. 单击步骤导航器选项卡显示步骤导航器。
  2. 在步骤导航器中,查找提交表单:reservations.pl 步骤。
  3. 在 VuGen 工具栏上,单击显示快照窗格按钮 以显示“快照”窗格。
  4. 在步骤导航器中,双击快照图标,该图标位于提交表单:reservations.pl 步骤。相应的快照将显示在“快照”窗格中。
  5. 从 VuGen 菜单单击视图 > 步骤工具箱。此时将显示“步骤工具箱”窗格。
  6. 在“步骤工具箱 - 搜索”框中,键入 web_reg,然后在筛选结果中查找 web_reg_find 步骤。
  7. web_reg_find 步骤从工具箱拖到编辑器中 web_submit_form 函数的前面。此时将打开“查找文本”对话框。
  8. 在“查找文本”对话框的搜索特定文本框中,键入 Find Flight,然后单击确定
  9. VuGen 在步骤导航器中插入 web_reg_find 步骤,并在编辑器中插入相应的 web_reg_find 函数。

    当回放脚本时,VuGen 将查找文本 Find Flight 并在回放日志中指出是否找到该文本。

如何生成调试信息?

在测试运行过程中的某些时间点,您可能希望生成并发送包含脚本执行相关信息的消息。这些输出消息将同时显示在“输出”窗格的回放日志中及 Controller 的“输出”窗口中。可以发送标准输出消息或指出发生错误的消息。

要确定是否发出错误消息,建议先查找失败状态。如果状态为失败,就让 VuGen 发出错误消息。有关详细信息,请参阅《HP LoadRunner Function Reference》中的示例。

在教程的这一节中,您将指示 VuGen 在应用程序完成一次完整的预订后插入一条输出消息。

要插入输出消息,请执行以下操作:

  1. 单击步骤导航器选项卡显示步骤导航器。
  2. 在步骤导航器中,找到最后一个步骤 Image:SignOff Button
  3. 双击 Image:SignOff Button 步骤。编辑器将显示相应的 web_image 函数。
  4. 在步骤工具箱中的常用下,找到 lr_output_message 函数。
  5. 选择 lr_output_message 函数,将其拖动到编辑器中,然后在 web_image 函数后释放。将打开“输出消息”对话框。

  6. 在“消息文本”框中,键入 The flight was booked
  7. 单击确定。VuGen 会将 lr_output_message 添加到脚本中,并在步骤导航器中添加相应的步骤。

  8. 单击 VuGen 工具栏上的保存按钮 以保存脚本。
请注意,要插入错误消息,可重复上述过程,不同之处在于要在步骤工具箱中选择 lr_error_message 函数而不是 lr_output_message 函数。

回放测试是否成功?

在这一节,您将运行增强的脚本并搜索回放日志来检查文本。将查看文本检查的结果,以及事务和参数化的详细信息。

默认情况下,由于图像和文本检查需要占用更多内存,在回放期间会将其禁用。如果要执行图像或文本检查,您需要在运行时设置中启用此项检查。

  1. 启用图像和文本检查。
    1. 单击回放 > 运行时设置以打开“运行时设置”对话框。
    2. 单击 Internet 协议 > 首选项
    3. 选择启用图像和文本检查
    4. 单击确认关闭“运行时设置”对话框。
  2. 运行脚本。

    单击 VuGen 工具栏上的回放按钮 。VuGen 将开始运行脚本,同时在“输出”窗格的回放日志中生成条目。

    等待脚本完成运行。

  3. 查找文本检查。
    1. 单击“输出”窗格并选择回放
    2. 单击回放日志,然后按 Ctrl+F 打开“搜索”对话框。
    3. 查找 web_reg_find

      第一个实例如下:

      web_reg_find 已启动

      单击查找下一个以显示 web_reg_find 的下一个实例。第二个实例如下:

      注册 web_reg_find 成功。

      这不是实际的文本检查,只是让 VuGen 准备好在表单提交后检查文本。

      单击查找下一个以显示 web_reg_find 的下一个实例。该实例如下所示:

      注册的 web_reg_find 对于“Text=Find Flight”成功 (计数=1)。

      这说明文本已找到。如果有人更改了网页并删除了文字 Find Flight,则在后续的运行中,输出消息会指示找不到该文本。

  4. 查找事务的起始点。
    1. 在回放日志中,按 Ctrl+F 打开“搜索”对话框。
    2. 搜索单词 Transaction。该通知用蓝色显示。
  5. 查看参数替换。
    1. 在回放日志中,按 Ctrl+F 打开“搜索”对话框。
    2. 搜索单词 Parameter。日志包含通知“seat” = “Aisle”。
    3. 再次搜索(按 F3)下一处替换。注意 VuGen 在每次迭代时如何替换不同的值。
  6. 选择文件 > 保存或单击 VuGen 工具栏上的保存按钮

后续课程

现在您已经创建了脚本并针对负载测试进行了修改,接下来可以学习第 5 课:创建负载测试场景


© 1993-2014 Hewlett-Packard Development Company, L.P.