从2004年8月底至2004年10月中,本人在北方L省的一个全省集中的交换网管项目中负责该项目的性能测试工作。该性能测试历时1个半月多,投入了3.6人月,占总的项目测试投入的17%。性能测试共进行了三轮,测试实现了预期的目标,测试过程中共发现影响性能的2级缺陷5个,三级缺陷8个,其中有一个缺陷导致了架构的部分变更。缺陷修改完成后,整个系统的采集效率提升了60%,告警入库效率提升了20%,应用的修改也使得系统具有了更强的稳定性。从测试的结果来说,本次测试取得了比较满意的效果,在测试过程中,本人也有一些心得和体会,因此,通过这篇文章记录本次性能测试的过程,希望能和各位同仁进行性能测试的更加深入的交流。
1. 背景
本人参与的项目是一个全省大集中的交换网管项目,该项目使用的所有服务器(数据库服务器、应用服务器、采集服务器、认证服务器、WEB服务器)均部署在省中心机房,所有的数据采集和处理都在省中心完成,地市通过反拉终端通过WEB和Socket方式访问省中心的服务器。考虑全省的需要,在整个系统上线后,总的用户数应该在1500左右。
图1是本项目的结构示意图。
在我们这个系统之前,L省的交换网管采用的是本地网管理方式,也就是每个地市都有自己的本地网网管系统,对省中心提供的数据仅仅是定期的报表。采用分散的本地网网管形式,每个本地网系统仅需要支持少量本地用户的访问,因此在性能方面没有过多的考虑,也没有进行过性能方面的测试。
我们为L省提供的新的解决方案是全省大集中的统一交换网管,一方面所有的用户都通过统一的平台对系统数据进行访问,另一方面,系统通过已有的DCN网络对分布在地市的网元进行采集。考虑到用户数据访问地集中、集中带来的数据访问需求的增加(在以前的老系统上,省中心只能通过地市定期的上报报表获知地市运行情况,但在新系统中,省中心要求可以随时从任一位置获取系统数据)、对网元采集的统一,新系统需要承受的压力要远远大于老系统现有压力的叠加。因此,十分有必要根据目前的情况,对整个系统进行一次较为全面的性能测试。
我们的系统采用Oracle数据库,IBM MQ消息平台,采用的开发工具包括VS.NET、Perl、HP aCC和HP Temip平台。整个系统由6个Unix应用模块、8个PC应用模块和三个WEB项目构成。
本次性能测试进入的条件是项目代码已经基本完成并经过集成测试,1、2级遗留BUG数为0,3级遗留BUG数不超过5个。
说明:对于这样一个集中式的系统,DCN网络性能其实也应该是一个被重点考虑的对象,但根据L省以前类似项目经验,目前的DCN网络足够支撑当前应用的运行,也就是说,在性能测试过程中不需要考虑由于DCN网络原因造成的数据丢失和应用程序异常的情况。
2. 测试计划
在初步确定了性能测试的要点后,我们就可以依据更具体的要求来制定性能测试计划了,一般来说,性能测试计划需要与客户进行良好的沟通,测试目标、终止准则、策略、测试资源配备都需要和客户经过沟通才能最终确定下来。实际操作中,建议至少召开一次正式会议,会议形成的结论要用会议纪要的方式确定下来,对最终确定的测试计划需要客户的签字认可。
一份测试计划至少需要包括测试对象、测试目标、测试策略、测试终止准则、测试环境与测试工具、测试资源配置(人员与时间)几个方面的内容,本文不打算罗列出项目测试计划中的所有内容,只就主要问题进行说明。
测试对象自然是本集中交换网管系统的性能;
测试目标在上文已经提到,需要和用户沟通,得到用户的认可。制定合理的测试目标并不容易,尤其是受限于现有项目文档的详细程序,单靠文档描述很难制定出合理的测试目标,在本项目的测试中,我们结合了文档描述、用户要求和个人经验,经过和用户的讨论,才最终确定了测试目标。