一、何时需要进行性能测试分析?
- 如果性能测试结束后,所以的结果数据均正常或者符合需求指标,则不需要分析
- 如果测试结果有问题,则需要分析
二、性能测试分析的情况及过程
- 如果测试结果没有问题,则不需要分析
- 如果测试结果中存在较小的问题,则需要从analysis中查看问题原因,一般容易解决。这需要对结果报告有所了解。
- 如果上步无法解决的问题,则分析的过程比较复杂。
①如果一个测试结束后,发现某事务响应时间过长(13s),该如何解决(该问题假如通过上步没有解决)?
②首先通过Analysis中的页面诊断图(网页细分图)去查找响应时间长到哪里。响应时间=客户端时间+网络时间+服务器时间。该种情况下,绝大部分都是服务器的瓶颈。
③通过监控被测系统中所有服务器的性能资源,即服务器资源图。通过改图,可以轻松的判断出哪台服务器不正常。
④服务器一般分为应用服务器(也叫中间件)【比如Tomcat】、数据库服务器。
⑤如果应用服务器有问题,修改一些参数即可。
⑥大部分的情况都是数据库服务器有问题,这种情况一般需要部署专门的服务器监控工具(如oracle的监控工具quest、lab128)去监控,可以很轻松的找到底层的数据库问题,如索引、甚至SQL语句的问题,进而进行调优,提升被测系统的性能。
Graphs—>Add New Item—>Add New Graph—>Web Page Diagnostics中的七张图
三、页面组件细分图
①Page Component Breakdown(页面组件细分图)
显示每个页面及其组件的平均响应时间,查看所选择页面中哪个元素所占的平均响应时间最长。
包含事务和页面:
对事务举个栗子:当点击订票后,会新出现一个页面,将页面中所有元素下载完毕的时间
页面:非事务的页面下载各元素的时间
点击:127.0…ebTours/login.pl(main URL)是加载完这个页面的时间,将饼状图划分为多块,每部分是占总时间的比例。
②Page Component Breakdown(over Time)页面组件细分(随时间变化)
- 整个测试过程中,任意一秒内页面中每个元素的响应时间
- 如在runtime中设置了browser cache,则页面中的资源文件只在第一次下载,后面的页面响应时间包括这些元素的时间,这在Page Component Breakdown中显示不出来,通过over time图可以看出来
(非时间变化图注重的是宏观的表现;随时间变化图注重的是元素在测试过程中围观细节表现) - 一般测试中查看的顺序:先宏观后微观
从图中可以看出,页面元素都被cache了,说明场景启动了browser cache,页面的响应时间只包含红线和蓝线。
四、页面下载时间细分
①Page Download Time Breakdown(页面下载时间细分)
DNS Resolution
- DNS—Domain name system—域名系统(出现原因:为了便于记忆,将服务器的ip地址形成为域名,一般具有一定意义)
- 在局域网内直接使用IP访问,则不存在该时间
Connection
- 解析出Web Server 的IP地址后,浏览器请求发送到Web Server ,然后浏览器和Web Server之间需要建立一个初始化HTTP连接,服务器端需要做两件事:一是接收请求,二是分配进程,建立该链接的过程就是connection时间。
First Buffer
- First buffer :第一个数据包时间,即网络时间+服务器时间
- 显示从初始HTTP请求到成功收到来自Web服务器的第一个数据包为止所经过的时间
- 第一次缓冲度量是很好的Web服务器延迟和网络滞后指示器
- 注意:由于缓冲区大小最大为8k,因此第一次缓冲时间可能也就是完成元素下载所需的时间
Receive
- 从浏览器接收到第一个字节起,直到成功收到最后一个字节所经历的时间,可以和组件大小结合,判断网络质量。也和客户端和服务器有关系:和客户端的关系:如果服务器发送过来大量的数据包,但是客户端接收有问题,甚至无法全部接收。和服务器也有关系:服务器发送慢
SSL Handshaking
- 显示建立SSL连接所用的时间。此时刻后,客户端和服务器之间的所有通信都被加密。
- SSL握手度量仅适用于HTTPS通信
Client Time
- 请求在客户端浏览器延迟的时间,可能是由于客户端浏览器的处理时间或者客户端其他方面引起的延迟。
Error Time
- 从发送HTTP请求,到Web Server 返回一个HTTP错误信息需要的时间
FTP
- 仅限FTP服务器测试
每个页面中的元素下载,各部分所占时间。在这种图中connection time和first buffer都是占时间较多,所以体现的较明显,而其余部分占的少,也有在这张图中。可以隐藏first buffer则其他部分时间显示的就明显了。
②Page Download Time Breakdown(Over Time)(页面下载时间细分(随时间变化))
在整个测试过程中,任意一秒内页面中每个元素的响应时间分割图
右面线条数目:以login为例,元素数X8
发现占时间比例最大的是first buffer时间
五、Time to First Buffer Breakdown(第一次缓冲细分时间)
①Time to First Buffer Breakdown
- 网络时间:从发送第一个HTTP请求那一刻直到收到确认(确认:服务器确认收到)为止,所经历的平均时间
- 服务器时间:从收到初始HTTP请求确认直到成功收到来自Web服务器的第一次缓冲为止,所经历的平均时间。(所以,这部分虽然名称叫服务器时间,但是从该定义来讲,也存在网络时间,又因为一般在性能测试时,用内网有充足的带宽,所以就剩服务器时间了)
发现占该图中时间比例最大的一般是服务器时间。
②Time to First Buffer Breakdown(over time)
buy中有两项,所以右边4条线。
六、已下载组件大小
①Downloaded Component Size(KB)
- 通过它可以直接看出哪些组件比较大并且需要进一步进行优化以提高性能。
网页的大小是网页中所有组件大小的和。
七、web page breakdown网页细分图
- Download time breakdown
- Component breakdown(overtime)
- Download time breakdown(overtime)
- Time to first buffer breakdown(overtime)
他们和七之前的breakdown不同的是:只要针对某个page的具体元素如图片进行breakdown,因此前面没有加page。
网页细分综合图的打开方式:①在事务的平均响应时间图中,查看响应时间最长的事务,点击右键–打开该事务的网页细分图
②从graph中添加—打开网页细分综合图
读图顺序:从download time中可以看到占该事务下载时间最长的,即瓶颈,若是first buffer,则再点开Time fo First Buffer(Over Time)从里面找更细瓶颈。
一张图片163k,相当于0.2M,当前1000用户并发,则0.2M*1000=200M,网速一般10Mb(1B=8b),200M/(10M/8)=150s左右。
Bmp—-基于无损压缩,图片中每个像素都是24bits,则1024*768*24bit=所以这种类型的图片无论是一张白纸还是一张色彩斑斓的图片,大小相似。
Jpg—基于有损压缩,图片中存储像素之间的色彩差值,即如果一张白纸,会比彩色图片存储小的多。