<本文属原创,如需转载请与本人联系>
第八章 执行负载测试
当你执行测试时,LoadRunner给应用创建一个负载。这时你可以使用LoadRunner监控器和图表来观察应用程序在真实条件下的性能情况。
本课中涵盖如下话题:
Ø 浏览控制器执行视图(Controller Run View)
Ø 如何执行负载测试情境?
Ø 如何在有负载情况下监控应用程序?
Ø 在真实情况下如何查看一个用户的执行情况?
Ø 在哪里查看用户行为概述?
Ø 在测试进行时如何增加负载?
Ø 在负载情况下如何拷贝应用?
Ø 应用是否出错?
Ø 如何确定测试执行已经完成?
Ø 在有负载的情况下应用的性能如何?
浏览控制器执行视图(Controller Run View)
控制器窗口中的Run标签是管理和监视测试运行的控制中心。Run视图包含5个主要部分:
Ø Scenario Groups
Ø Scenario Status
Ø Available Graphs Tree
Ø Graph Viewing Area
Ø Graph Legend
Scenario Groups: 在面板的左上角,你可以在scenario groups中看到虚拟用户的状态,单击面板右侧的按钮可以开始、停止或者重置情境,查看每个虚拟用户的状态,通过手动增加虚拟用户来给应用增加负载。
Scenario Status: 在面板的右上角,你可以查看负载测试的描述,包括执行的虚拟用户数和每个虚拟用户的状态。
Available Graphs Tree: 在面板的左中部,你可以看到列出的LoadRunner图表。选择图表树中的一个图表,将其拖动到图表视图区域,可以打开一个图表
Graph Viewing Area:在面板的右中部,你可以通过(View > View Graphs).来定制显示1到8个图表。
Graph Legend: 在下测的面板中,你可以查看选中的图表中的数据。
如何执行负载测试情境?
在这部分,你将学习启动情境。
1. 打开控制器执行视图(Controller Run)
选择屏幕下方的Run 标签。
注意在情境群组的下拉框中有8个虚拟用户。这些用户是在你建立情境的时候建立的。
在情境还没有执行的时候,其他所有的计数器显示为0,所有图表的视图区域(除了Widows 资源管理器)都是空的。当你在下一步中开始情境的时候,图表和计数器开始显示信息。
2. 开始执行情境
当你第一次执行这个体验脚本时,控制器开始执行情境。结果文件将会自动的保存到load generator的临时目录中。
如果你重复执行这个测试脚本,将会提示你以前存在的结果文件将会被覆盖掉,单击No,这样第一次执行的负载测试结果将会作为基本结果,以用来和接下来的负载测试结果进行比较。
打开Set Results Directory 对话框。
设置一个新的结果存放目录。为每个测试序列输入一个唯一的有意义的名字,因为在你分析图表结果的时候你可能填加几个情境的执行结果。
如何在有负载情况下监控应用程序?
你使用控制器的在线图表观测在监视器中选中的数据的性能,通过这些信息在系统环境中隔离存在潜在问题的区域。
1. 检查性能图表
在执行(Run)标签中,默认的显示出如下的在线图表:
Running Vusers - Whole Scenario图表中显示在指定时间那执行的虚拟用户的数目。
Transaction Response Time - Whole Scenario 图表中显示完成每个事务需要的时间
Hits per Second - Whole Scenario .显示在情境执行中虚拟用户每秒中点击Web 服务器的次数(HTTP 请求)。
Windows Resources 图表显示在情境执行过程中Windows资源使用情况
2. 突出显示个别表的测量值
双击Widows Resources图表的面板使其最大化。注意在graph legend中每个测量值都会以彩色编码行显示。每行都和图表中的相应行显示同样的颜色,选择图表中相应的高亮行。
3. 查看吞吐量信息
在Available Graphs树中选择Throughput图表,将其拖到图表视图区域。Throughput图表的测量值会显示打窗口和graph legend中。
吞吐量图表Throughput graph显示了在任何给定的时刻中Vusers从server服务器上获得的数据(以bytes度量)数量。你可以将其与Transaction Response Time graph对比,从而确定吞吐量对事务性能的影响。
如果这个吞吐量趋势随时间进程和Vuser数目的增加而上升,这表明有足够的带宽。如果随着Vusers数目的增加,图表仍然相对平滑,这就可以定位到当前的带宽限制了数据的大量传送。
在真实情况下如何查看一个用户的执行情况?
在模拟用户的过程中,你可以在现实情境中看到他们的操作,从而确保他们按照正确的步骤执行了。在控制器中你可以转换到run-time viewer视图中来观察这些操作。
为了进一步观察虚拟用户的操作:
1.
单击Vusers按钮,打开Vusers窗口。
状态栏显示了每个虚拟用户的状态。你可以看到有四个虚拟用户在执行,每个虚拟用户的状态都是ready。Ramp Up scheduling通知控制器每次释放两个虚拟用户。在情境执行过程中,每隔20秒钟将会增加两个虚拟用户到用户群中。
2. 在Vuser列表中选中一个正在执行的虚拟用户。
3. 在Vuser toolbar中单击Show the selected Vusers。打开Run-Time Viewer,可以看到被选中的虚拟用户的当前操作。
当虚拟用户按照情境中的步骤执行的时候,这个窗口的内容也会随之更新。
4. 单击Vuser toolbar中的Hide the selected Vusers按钮,关闭Run-time视图日志。
在哪里查看用户行为概述?
在测试执行的时候,核查一个虚拟用户的执行进程,你可以查看日志文件,其中包括关于这个虚拟用户的操作的文本。
查看时间概要文本:
在Vusers窗口中选择一个虚拟用户,单击Show Vuser Log按钮。打开Vuser log窗口。
这个日志包含虚拟用户相关操作的信息。例如:在上面的窗口中,消息“Virtual User Script started”指出情境的开始处。拖动日志的按钮,可以看到选中用户每个行为所增加的信息
注意:只有当你在Run-Time settings Log 标签中进行了enable设置后,才会看到这个虚拟用户的日志信息。
关闭虚拟用户日志窗口和虚拟用户窗口。
在测试进行时如何增加负载?
在负载测试执行过程中,你可以通过手工增加更多的虚拟用户来给程序增加负载。
在负载测试过程中增加负载
1. 单击Run/Stop Vusers按钮。 打开Run/Stop Vuser对话框。可以看到在当你情景中执行的虚拟用户数量。
2. 在#栏中,增加2个额外的虚拟用户到Travel_agent 群众。
3. 单击Run,选择Run New选项。
这2个额外的虚拟用户被分配到了travel_agent群中,并且在localhost负载发生器中执行。情境状态窗口中线是当前有10个虚拟用户在执行。
在负载情况下如何拷贝应用?
检查情境状态窗口,这个窗口显示的是正在执行的情境的大纲,展开进一步查看导应用问题的需用用户操作。如果事件执行失败的比率较高并且出现错误的话表明应用程序在存在负载的情况下没有按照预期的情况执行。
1. 查看测试状态
情景状态窗口展现了这个情境的所有状态。
2. 查看虚拟用户操作的明细分类
单击Passed Transactions链接,查看事务细节。
应用是否出错?
如果一个应用程序在重负载的情况下开始执行失败,你将会发现错误和事务处理失败。控制器会在输出窗口重显示错误信息。
1. 检查任何的出错信息
在Scenario Status 窗口中.单击View > Show Output 或者单击Errors 链接,打开Output窗口,列出了消息文本,和生成的消息总数,虚拟用户,负载产生的错误,以及发生错误的相关脚本。
选中相关的消息,单击Details,就可以看到这个消息的详细内容。打开Detailed Message Text框,显示了全部的消息文本。
下边的例子显示了一个timeout错误,在给定的时间内Web server没有及时相应一个请求。
2. 查看日志信息细节
在适当的栏目中单击蓝色的链接,你可以查看每个信息,虚拟用户的脚本,以及有错误代码的负载发生器。
例如:为了定位发生错误的脚本,展开Total Messages栏。输出窗口中可以列出选中的错误代码相关的所有信息。包括时间,循环数,以及发生错误的脚本所在的行数。
展开Line Number栏
VuGen展开错误发生行的脚本,你可以通过这些信息来识别事务处理相应缓慢导致程序在有负载的情况下执行失败的原因。
如何确定测试执行已经完成?
在测试执行结束时,情境状态窗口中将会显示的状态是Down。这表明虚拟用户已经停止执行了。
你可以在Vuser窗口中查看每个虚拟用户的状态,LoadRunner会显示出一个用户反复执行一个任务的次数,成功执行的次数,和所用的时间。
在有负载的情况下应用的性能如何?
为了看到存在负载的情况下这个应用程序的性能情况,你需要查看这个事务的响应时
间,确定是否在客户可以接收的限制时间内,如果事务的响应时间不符合要求,你需要去查找瓶颈,在接下来的有关分析的章节你将会学到更多的细节。
一旦一个问题被隔离出来,接下来就需要开发人员,DBAs,网络,和其他系统方 面的专家来解决这个瓶颈了。当调试完成后,需要重新进行负载测试确定这些调整真正起到了作用,重复这个过程对系统进行优化。
保存情境,从而你可以在相同设置的情况下再一次执行这个脚本。单击File > Save 或者单击Save 按钮,在File Name框中舒服情境的名字。
现在你已经知道了如何执行并且查看一个简单的负载测试情境,接下来可以进行第九章的学习,高级-目标情境。