|
知识路径: > 测试技术的分类 > 网络测试 > 网络应用测试 > 网络故障分析 > 软件问题的诊断 >
|
相关知识点:2个
|
|
|
|
|
. 第一个例子命名为Taskl,访问一个网页,例如www.cnn.com,速度较慢,问题出在哪里?为了实现故障定位,需要关注的问题如下。
|
|
|
|
如下图所示,在初始的DNS请求之后有一个8秒的间隔,也就是服务器为了响应DNS请求花费了8秒钟时间。
|
|
|
|
|
如下图一和下图二所示,线程4、5、6所关联的数据包之间有10秒的时间间隔。
|
|
|
|
|
|
|
|
这个应用涉及一个DNS服务器和一个Web服务器“www..CNN.com”。如下图所示为应用会话图。
|
|
|
|
|
|
从下图所示可知有效负载达到90.9%,应用流量效率较高。
|
|
|
|
|
|
从下图可以看到,25~30秒之间应用产生了持续流量高峰,可以将这个高峰与相关执行的线程关联起来。
|
|
|
|
|
. 第二个例子是一个对比测试,我们来看如下图所示的Task1与Task2的测试数据。
|
|
|
Task1的执行时间是3.43秒,Task2的执行时间是5.71秒。为什么Task2的流量小于Task1,而执行时间却长于Task1?是否存在性能问题?
|
|
|
|
|
首先我们发现在应用执行的开始存在一个1秒的时间间隔,在2~5秒之间有一个超过2秒的时间间隔。如下图所示为应用Bounce图。
|
|
|
|
|
|
客户端发出一个请求,Web服务器响应,在1秒之后又发出了同样的HTTP/GET请求,说明第一个请求失败。如下图所示为HTTP线程与Bounce关联图。
|
|
|
|
|
最后一个Oracle SQL请求在物理时刻1.65秒时发生,而下一个HTTP/GET请求直到物理时刻4.88秒时才发生,说明在请求之间存在较长时间间隔,服务器空闲。
|
|
|
从如下图所示的Oracle线程与Bounce关联图可知,每个时间间隔之后,系统都在等待客户端,可以初步将故障定位在客户端,下面可以进一步验证。
|
|
|
|
|
从下图可以看出,响应时间分析显示客户端响应时间为4.6秒,总的响应时间为5.7秒,客户端响应时间占总响应时间的80%左右,客户端的响应时间较长。下面从线程代码级再做进一步验证。
|
|
|
|
|
从下图所示的线程分析可以看到,发生延迟的HTTP请求都发生在客户端。
|
|
|
|
|