上期我们讲到LoaRunner性能测试结果分析实践之分析图关联,这期我们讲LoaRunner性能测试页面细分。
页面细分原理
在平均事务图中点击右键选择Show Transaction Breakdown Tree,生成Web Page Diagnostics图。通过分解页面可以发现,页面中哪些组件响应时间较大?平均事务响应时间过长是由服务器还是由网络环境引起的?
正常的从浏览器发送一个请求到最后显示,整个过程由以下时间片组成,如图所示。
1.浏览器向服务器发送一个请求,一般情况下,客户端的请求首先被发送到DNS服务器上,通过域名解析,将DNS名解析为IP地址。其中域名解析的时间就是DNS解析的时间(DNS Resolution)。
通过这个时间可以确定DNS服务器或DNS服务器的配置是否有问题。如果DNS服务器运行情况良好,这个时间会比较小。
2.DNS解析完成后,请求被送到Web服务器,之后浏览器与Web服务器之间需要建立一个初始化连接。建立连接的过程就是连接时间(Connection)。
这样通过这个时间就可以判断网络的情况,也可以判断Web服务器是否能够响应这个请求。如果正常,这个时间会比较小。
3.建立连接后,Web服务器发出第一个数据包,经过网络传输到客户端,浏览器成功接收到第一个字节的时间就是First Buffer的时间。这个度量时间不仅可以表示Web服务器的延迟时间,还可以表示网络反应时间。
4.从浏览器接收到第一个字节起,直到所有的字节都成功接收为止。这个度量可以判断网络的质量(可以用size/time比来计算接收速率),其他的时间还有SSL Handshaking(SSL握手协议,用到该协议的页面比较少)、Client Time(请求在客户端浏览器延迟时间,可能是由于客户端浏览器的ThinkTime或者客户端其他方面引起的延迟)、Error Time(从发送一个HTTP请求,到Web服务器发送回一个HTTP错误信息所需要的时间)。
页面细分的具体内容如下:
切换到Breakdown Tree,这里显示了事务包含的所有页面,如图所示。显示了事务“商业机会_提交”包含的所有页面。
在Legend框中,可以选择需要的页面进行分析
Web Page Diagnostics中显示了该页面运行时的响应时间,Diagnostics options中显示了该页面包含的所有组件,以及组件的大小和组件下载的时间,如图所示。
选择Component(Over Time),这里显示了各组件在场景运行过程中下载的时间,如图所示。可以通过按钮和按钮来切换是只显示选中组件的下载时间还是显示所有组件的下载时间。
选择Download Time(Over Time),可以看到在场景运行时,组件在网络传输过程中的各部分时间,如图所示。
为了确定问题是由服务器还是由网络引起的,选择Time to First Buffer(Over Time),如图所示,该图显示了在网络传输过程中和服务器两部分分别使用的时间。
实例讲解
页面细分技术主要用来分析失败事务是由哪些组件引起的,对于成功的事务就没必要。下面通过一个实例来了解页面细分技术的一般步骤:
1.打开“平均事务响应时间”图,打开Graph Settings对话框,对过滤条件进行设置,将Transaction End Status设置为Fail,Transaction Name设置为要分析的事务即可,如图所示。
2.显示事务细分树。在“平均事务响应时间”图中点击右键
选择Show Transaction Breakdown Tree。此时左下角弹出一个Breakdown Tree图,如图所示。这里显示了所有失败事务图。
3.显示页面细分图。选择需要分析的事务,这里选择“营销活动_提交”事务进行分析。点击右键,选择“Web Page Diagnostics for‘营销活动_提交’”,如图所示。Analysis分析器生成Web Page Diagnostics图。
4.查看Download Time图。选择Download Time查看各组件所花费的时间,如图所示,第一个组件所花费的时间最长并且还包含错误信息。
5.手动查看该组件响应时间。选中该组件,点击右键,选择Copy the full path to the clipboard
将路径拷贝到IE浏览器中进行预览。或选择View page browser直接打开该页面进行预览。手动预览能判断该页面响应的真实时间。如果手动预览该页面和测试的结果一致,说明事务失败确实是由于该页面响应时间引起。如果不是手动预览响应很快,那么要进一步判断是由测试环境引起还是由网络引起。
6.查看Download Time(Over Time)图。如图所示,图中详细地记录了请求在各阶段所花费的时间,通过Download Time(Over Time)图可以看出DNS服务器花在解析域名的时间在1秒以上,说明DNS服务器可能有问题。
7.查看Time to First Buffer(Over Time)图。通过该图观察问题到底是由服务器引起还是由网络引起,如图所示。这里发现服务器的时间明显超过1秒,而网络时间不到0.5秒,说明测试的网络环境是没有问题的,问题主要出在服务器。
整个分析过程已经结束,通过分析发现“营销活动_提交”事务失败的原因来自服务器,DNS服务器和Web服务器都有可能是引起问题的原因。