IT Consultant, Agile Coach, Business Analyst

进行性能测试

May 15, 2007 – 4:31 am | by 冰云

最近在项目中兼任QA的角色。QA的职责当然是保证质量。性能是质量的一部分,理所当然应该是QA的职责范围嘛。这次team中负责性能测试的QA调走了,只好由我硬着头皮顶上去了。想到前些日子还兼做了几天Dev,哎,忽然觉得自己好多功能啊。

以前从没亲自动手搞过性能测试,但在原理上了解,并在项目里看别人测过(有时候还指指点)。这次选用Jmeter进行测试,是第一次上手。好在这东西对我来说不太难,今天一天就做出了10,20,30,50并发的四组数据。

按照测试计划,我们在测试数据不变的情况下,增加用户的并发数,找到随着并发数增加系统的break point。然后根据测试结果进行下一步的动作,改进或者保持现状等。

性能测试关键不是看一次的数据结果,而是要进行持续的跟踪、度量、比较、分析。根据测试数据找到系统性能瓶颈,确定其优先级,先解决影响最大的部分。例如目前我们项目的首页响应速度比其他页要慢很多。

纵向对比,随着并发人数的增加,每个测试场景的性能是否保持在一个可接受范围内。横向对比,对同一场景用不同的测试数据,看是否随着数据量的不同有显著变化。记录每个版本的运行情况,测试每一处改进,看所做的改进是否真的促进了性能的增加。

测试工具的选取也需要根据实际项目的情况来确定。我这次用的Jmeter也算是大众工具了,虽然测试AJAX有些勉强,还没找到好方法,但也勉强可用。不过它的交互设计实在是令人发指。

Jmeter是程序员做的交互设计的典型,整个菜单基于一个神秘的Tree,还可以增节点,定义变量,增加循环判断等。至于结果报表放在listener菜单中这样的事情就更不用说了。太技术化了,非技术人员基本上无法理解这奇怪的工具。怪不得多数团队都要程序员来做性能测试。

另外一个关于性能测试的常见工具是JProfiler。我们同时也用这东西找找系统代码里面哪个部分最耗内存。结果发现40%的内存占用是由于Sitemesh,30%的内存占用是Joda Time。令人惊奇的发现啊。马上干掉Sitemesh,某些页面性能提高了10倍。

  1. One Response to “进行性能测试”

  2. By TinNo Gravatar on Jun 4, 2007 | Reply

    还真不知道Sitemesh这个东西这么吃内存,好久没有听说这个东西了……替代方案是jsp:include么?btw:TW UK那边还在用Java?

Sorry, comments for this entry are closed at this time.