本文介绍了 IBM Page Detailer 的功能和使用,并通过一个实例演示了如何对 IBM Page Detailer 获取的结果进行分析,并为 Web 应用性能改进提供建议。
介绍
在性能测试的日常工作中,测试人员经常需要一些工具为我们提供用以分析的数据。选择行之有效的工具,往往可以使测试工作事半功倍。在对 Web 应用性能的分析过程中,测试人员需要获取与网络传输相关的数据。对于底层信息的获取,许多已有的工具可提供数据包级别的数据。但当测试人员需要更进一步的 数据进行分析时,这些工具提供的信息往往太过繁杂,给分析过程带来一定程度的不便。在这种情况下,我们推荐使用 IBM Page Detailer 来提高工作效率。
IBM Page Detailer 是由 IBM 研究院的两位资深工程师 LeRoy Krueger 和 Nat Mills 共同开发完成的。这是一款用来衡量 Web 应用性能的软件,由于是基于客户体验的角度设计,从而更有利于依据其收集的数据来调整 Web 应用的性能,更好地满足客户需求,达到更好的客户满意度。
IBM Page Detailer支持Windows? 2000, XP, Server 2003以及Windows Vista操作系统,分为Basic和Pro两个版本,其中Basic版本的安装文件可以在 。
Basic 版属于免费体验版本,在功能上有一定的局限。而 Pro 版本则具有如下的加强功能:
对 HTTPS(SSL)通讯的全面支持
可以保存和导入获取数据
以 XML 的格式导出数据
标注功能
事件视图中文字处理的查找功能
图像显示功能
本文所有示例均以 Pro 版本为例,以下不再做特殊说明。
IBM Page Detailer 通过在客户端的 Windows 端口堆栈中插入探针(Probe)来获取相关信息。对于 Microsoft Internet Explorer,Mozilla Firefox 和部分 Netscape 浏览器,不需要配置即可自动激活探针。当使用其他类型的浏览器时,可通过修改安装目录下的 wd_WS2s.ini 文件来实现探针激活,具体的修改方法可以参照帮助文件中“Using Page Detailer with Other Applications”这一章节的内容。
IBM Page Detailer 能够获取以下类型的数据:
总连接时间
端口连接时间和传输数据量
SSL 连接时间和传输数据量
Server 响应时间和传输数据量
内容传输时间和数据量
传输延迟时间
请求字节头
请求传输数据
反馈字节头
反馈数据内容
页面数总计,平均及最大、最小页面数
IBM Page Detailer 提供了丰富的图例(参见 图 1),使用不同的颜色和图标代表不同的状态和元素,这令数据显示一目了然,方便了分析过程。
图 1. 图例
IBM Page Detailer提供了两种视图——图表视图和细节视图。在图表视图(参见 图 2)中,显示各个页面下载的时间,字节数,总的元素数,并且会依照实际的传输顺序用相应颜色的彩条表示各个元素的传输过程及在整个页面下载时间中所占的比 例。其中重叠的部分表示这些元素的下载是并行完成的。
图 2. 图表视图
图表视图中从全局的角度展示了各个页面下载的概况,如果想了解页面中各个元素的详细信息,需要到细节视图中来查看。
图 3. 细节视图
细节视图(参见 图 3)中的默认列只显示元素名称、下载时间、元素大小以及元素下载过程图例。除此之外,可以通过点击右键(如 图 4 所示),选择增加列来在视图中显示更多需要的信息。这些信息是 IBM Page Detailer 在抓取数据的过程中自动收集,当选中所需列后就会立即显示相应的数据。
图 4. 增加细节视图列元素
在两个视图中,通过鼠标双击元素所在行可以打开 Event 界面(参见 图 5),这里显示更多 http 请求的细节,可以帮助测试人员了解每个元素的全面信息。在此界面,还提供了查找和增加注释功能。
图 5. Event 界面
应用实例
环境描述
应用系统部署在 IBM WebSphere Portal Server 和 Process Server 上。并利用 IBM HTTP Server(IHS)进行图像文件的缓存,以期提高客户访问的效率,缩短响应时间。
在 IBM WebSphere Portal Server 上安装 IBM HTTP Server 并启用缓存。
使用 IBM Page Detailer 录制客户端第一次访问和后续访问同一页面的数据,针对数据进行比较和分析。
第一次访问数据结果
参看图6,从 Item Size 这一项可以看出,当第一次访问应用服务,所有的图像文件都被下载到客户端。
图 6. 第一次访问数据结果
第二次访问数据结果
从 图 7 中可以看到,所有的图片没有再次下载,IBM HTTP Server 对图像文件的缓存发挥了作用。
图 7. 第二次访问数据结果
进一步性能分析
我们对两次测试结果各个页面的响应时间进行了对比,发现在性能方面并没有明显的提高,应用中 Initiate domestic Page 页面在两次访问中都耗时最高。为此,我们对数据进行了进一步分析。
在 Initiate domestic Page 页面中,压缩 HTML 占用了绝大比例的传输时间,双击这个元素,打开 Event 窗口查看详细的 Http 请求信息。从 图 8 可以看出,时间主要消耗在 SSL server 的响应上,占据了总时间的 99.5% 左右。这里的 SSL server 响应时间从客户端发出请求开始计算,直至受到服务器端第一个返回数据包为止。
图 8. Initiate domestic Page 页面 SSL server 响应
对于 IBM HTTP Server 图像缓存并没有明显改善性能的问题,我们也从数据对比中发现了原因。虽然应用系统中的一些页面图片元素较多,但是由于图片的字节数太小,在客户端和服务器 端传输的时间也很短(参见 图 9)。所以 IBM HTTP Server 提供的图像缓存没有大幅度的提高访问性能。
图 9. 图片大小及传输时间
在对其他页面(参见 图 10)的分析中我们发现,在向服务器端发送等量请求信息的条件下,一些页面的 SSL server 响应时间较短,所以对于 Initiate domestic Page 页面响应时间较长的问题建议开发人员对这部分代码进行走查改进,以求获得性能上的提高。
图 10. 另一页面 SSL server 响应
此外,通过对数据的分析,还发现对于各个页面的图片文件,都采用了 SSL 协议进行传输。由于图片本身并不包含需要保护的信息,所以采用 SSL 协议进行传输会在一定程度上增加传输负载,建议对图片不用加密形式传输。
总结
综合总体看来,作为一款基于用户使用角度开发的工具,IBM Page Detailer 能够帮助测试者掌握有关 Web 应用性能方面的大量数据,便于对性能问题进行分析,是 Web 应用性能测试中不可或缺的工具。
参考资料
学习
- 阅读 developerWorks 文章:“ Design for Performance: Analysis of Download Times for Page Elements Suggests Ways to Optimize”。
- IBM alphaWorks 中 。
- IBM 红皮书: “”。
- developerWorks Web 开发技术专区:提供了关于 Web 开发和架构方面的大量文章。
- 浏览 技术书店,查阅有关本文所述主题以及其他技术主题的书籍。
讨论
关于作者
张雪莹,IBM 中国开发实验室软件工程师。目前在 IBM 商业流程管理服务(MBPS)部门负责基于通用平台的解决方案的性能测试工作。于 2006 年 10 月加入 IBM,此前从事过 2 年多的 Web 应用系统的性能测试和测试管理工作。
如需转载,请注明:转载自老臧’s blog [ ]