谈压力测试的重要性

日期:2015-08-25点击次数:17271

       对于一个项目的开发而言,软件测试作为最后的一道关卡,也彰显了其重要性。针对这半年内,对于系统的两次发版,总结下压力测试应该注意的事项。
       压力测试,是指在一定约束条件下测试系统所能承受的并发用户量、运行时间、数据量,就是尝试突破系统的极限状态,在此种测试下,对于程序资源的调用有很强的指导意义,能够快速的暴漏问题,但是也会出现提交的问题很难定位。
       还记得本系统上半年的第一次发布版本,是在四月份,当时还处于因为支持ONVIF而导致的各种bug而头疼的状态,突然调整方向,暂时放下对于ONVIF的纠结,只针对以SDK来对接海康设备,目标是实现连接100路设备保证系统正常稳定的运行。对于一个没经过系统测试的软件,要突然达到100路频繁连接断开1周,系统稳定运行,对于整个研发小组来说都是一项挑战。
       要实施压力测试,如果单靠很多设备或者很多人来操作,肯定是不现实的,编写相应的压力测试工具,才是可取之道。除此之外,在开发的过程中也不可能像现场一样有那么多的设备,此时服务器也应该编写支持模拟设备的连接功能。
       准备好压力测试所需要的环境和工具后,挑战就真正的开始了,各种在单元测试中未发现的问题全部暴漏出来了,对于程序员来说,在开发阶段问题暴漏出来是一件可喜的事,如果这些问题在客户现场出现将是一场灾难。对于Linux下的服务器,不停的会有core文件产生,通过对于core文件的信息的分析,发现暴漏的问题大多是与线程和内存的操作相关,针对错误信息去分析代码的逻辑,查找问题就变得有据可循了。虽然原本计划的1周压力测试的时间,在实际中延长了,其过程痛苦不堪,但是几周的煎熬后,程序稳定的运行起来了。
       稳定的发布第一版之后,本季度的压力测试的负担就明显变轻了,虽然各个服务器中网络部分的框架做了大的调整,系统兼容新的厂家的设备,同时增大了压力的强度,在本阶段的压力测试中,明显感觉到问题少了很多。
      在整个测试的过程中有以下几点要注意:
      1.最好是有相应的压力测试工具,高并发的进行测试。可以利用一些开源的公有的工具进行测试,也可以自己针对项目开发专门的工具,这个看具体的项目情况。
      2.测试目标的设定。测试就是对软件质量的检测,严格的检验标准能生产出强壮稳定的软件,但是设定压力测试要实现的目标一定要合理,盲目的设定一个负载过大的压力,不仅设备无法负载,同时也会对效率上产生很大的影响,也会影响最终测试的结果和工期。
      3.合理的log文件的保存。log文件主要记录关键操作的执行过程和异常的情况,切勿打印过多的无用log,这样不仅在查找时比较费时,而且也占用了磁盘的存储空间。


软件部        陈娟