在前面的课程中,已经验证了回放 Vuser 脚本会生成真实用户的精确模拟。下一步将是为负载测试准备脚本。当多个用户同时使用系统时,该系统将如何运行?系统的性能是否会下降到不可接受的程度?
在这一课,您将了解用于增强脚本,以便更有效地进行负载测试流程的不同方法。
在这一课,您将学习以下内容:
在准备部署应用程序时,您需要估计具体业务流程的持续时间:登录、预订机票等要花费多少时间。每个业务流程通常由脚本中的一个或多个步骤或操作组成。在 Vuser 脚本中,通过将一系列操作包含在事务内,可以将它们指定为要评测的操作。
当运行包含事务的 Vuser 脚本时,LoadRunner 会收集关于事务执行时间长度的信息,并将结果显示在用不同颜色标识的图和报告中。您可以使用这些信息帮助确定应用程序是否符合性能要求。
可以在 Vuser 脚本中的任意位置手动插入事务。要将一系列步骤标记为事务,请在第一个步骤前插入 start_transaction 标记并在最后一个步骤后插入 end_transaction 标记。
在这一节中,您将在脚本中插入一个事务来计算用户查找和确认航班所花费的时间。
要将事务插入到 Vuser 脚本中,请执行以下操作:
在步骤工具箱中的常用下,选择 lr_start_transaction,将其拖动到编辑器中,然后在 web_image 步骤前释放。“开始事务”对话框将打开。
在步骤工具箱的常用下,选择 lr_end_transaction,将其拖到编辑器中,然后在 web_submit_data 步骤后释放。“结束事务”对话框将打开。
确保 find_confirm_flight 显示在事务名框中,然后单击确定。VuGen 在步骤导航器中插入 lr_end_transaction 步骤,并在编辑器中插入相应的 lr_end_transaction 函数。
现已定义了 find_confirm_flight 事务。
在模拟场景中,跟踪一位预订机票并选择靠近过道座位的用户。但在实际生活中,不同的用户会有不同的喜好习惯。要改进测试,需要检查当用户选择不同的座位首选项(靠近过道、靠窗或无)时,是否可以正常预订。
为此需要对脚本进行参数化。这意味着您要将录制的值 Aisle 替换为一个参数。将参数值放在参数文件中。运行脚本时,Vuser 从参数文件中取值(Aisle、Window 或 None),从而模拟真实的旅行社环境。
要参数化脚本,请执行以下操作:
单击确定以关闭“提交表单步骤属性”对话框。
现在已为座位首选项创建了参数。运行负载测试时,Vuser 将使用参数值,而不是录制的值 Aisle。
运行脚本时,回放日志会显示每次迭代发生的参数替换。Vuser 第一次迭代将使用 Aisle,第二次迭代将使用 Window,第三次迭代将使用 None。
运行测试时,常常需要验证某些内容是否出现在返回的页面上。内容检查验证脚本运行时网页上是否出现期望的信息。可以插入两种类型的内容检查:
在这一节,您将插入文本检查,检查 Find Flight 是否出现在 HP Web Tours 的 Reservations(预订)页面上。
插入文本检查
VuGen 在步骤导航器中插入 web_reg_find 步骤,并在编辑器中插入相应的 web_reg_find 函数。
当回放脚本时,VuGen 将查找文本 Find Flight 并在回放日志中指出是否找到该文本。
在测试运行过程中的某些时间点,您可能希望生成并发送包含脚本执行相关信息的消息。这些输出消息将同时显示在“输出”窗格的回放日志中及 Controller 的“输出”窗口中。可以发送标准输出消息或指出发生错误的消息。
要确定是否发出错误消息,建议先查找失败状态。如果状态为失败,就让 VuGen 发出错误消息。有关详细信息,请参阅《HP LoadRunner Function Reference》中的示例。
在教程的这一节中,您将指示 VuGen 在应用程序完成一次完整的预订后插入一条输出消息。
要插入输出消息,请执行以下操作:
选择 lr_output_message 函数,将其拖动到编辑器中,然后在 web_image 函数后释放。将打开“输出消息”对话框。
单击确定。VuGen 会将 lr_output_message 添加到脚本中,并在步骤导航器中添加相应的步骤。
在这一节,您将运行增强的脚本并搜索回放日志来检查文本。将查看文本检查的结果,以及事务和参数化的详细信息。
默认情况下,由于图像和文本检查需要占用更多内存,在回放期间会将其禁用。如果要执行图像或文本检查,您需要在运行时设置中启用此项检查。
运行脚本。
单击 VuGen 工具栏上的回放按钮 。VuGen 将开始运行脚本,同时在“输出”窗格的回放日志中生成条目。
等待脚本完成运行。
查找 web_reg_find。
第一个实例如下:
web_reg_find 已启动
单击查找下一个以显示 web_reg_find 的下一个实例。第二个实例如下:
这不是实际的文本检查,只是让 VuGen 准备好在表单提交后检查文本。
单击查找下一个以显示 web_reg_find 的下一个实例。该实例如下所示:
注册的 web_reg_find 对于“Text=Find Flight”成功 (计数=1)。
这说明文本已找到。如果有人更改了网页并删除了文字 Find Flight,则在后续的运行中,输出消息会指示找不到该文本。
现在您已经创建了脚本并针对负载测试进行了修改,接下来可以学习第 5 课:创建负载测试场景。
|