浅谈如何规避生产环境中的性能测试风险
转载:http://www.doc88.com/p-802812650596.html
摘要系统性能测试结果的可参考性与测试环境有着直接的关系模拟环
境与真实环境相比存在环境差异、数据量差异等问题导致测试结果的可参考
性差。为了获得准确的性能数据性能测试需尽量在生产环境进行。但是在生
产环境进行测试可能会对系统造成一定的风险测试中应尽量规避这些风险的
发生。本文主要介绍生产环境中的性能测试风险以及风险规避的方法。
性能测试是针对系统的既定性能指标制定测试方案并执行测试得出
测试结果来验证系统性能是否满足用户要求而进行的测试。
性能测试结果的可参考性与测试环境有着直接的关系如果测试是在模拟
环境下进行会存在一些问题比如硬件和软件配置与生产环境的不一致、测
试数据量和实际生产环境的数据相差太远等这些因素都会影响测试结果的可
参考性因此为了获取准确的性能数据真实的反映系统性能性能测试应
尽量在生产环境进行。
生产环境是业务系统正式运行的环境一般已经上线使用了一段时间系
统中存在大量的真实业务数据且业务数据随着系统的运行在不断的增加和更
新中因此在生产环境进行性能测试必然会对业务系统产生影响甚至造成一
定的风险作为测试方我们必须预知风险并有效的规避风险。那么在生产
环境进行性能测试可能的风险有哪些?我们在测试中应采用什么样的手段来规避
这些风险呢?下面结合我自己的一些项目经验谈一下这方面的体会。
一、在生产环境进行性能测试存在哪些风险?
(一)测试可能会导致系统崩溃
考虑到系统的业务发展通常设定的性能指标会一定程度的高于目前系统
运行时承受的压力在系统能承受的最大压力未知的情况下测试对系统施加
的压力可能超过其所能承受的压力导致系统崩溃影响系统正常的业务运行。
(二)测试可能会造成数据损坏
在对系统进行压力测试时可能会因为系统压力过大导致某些事务未成功
执行从而导致相关数据被破坏有些操作需要直接修改系统中的原始数据等
这些都可能对系统数据造成损坏。
(三)测试会产生大量垃圾数据
由于性能测试的并发用户量大而且要重复执行多次所以会在系统中产
生大量的垃圾数据影响系统的使用。
为规避以上的风险在生产环境进行性能测试时我们应采取有效的手段
避免上述风险的发生。
二、风险规避手段有哪些?
(一)重要数据事前备份、事后恢复
在执行测试前应尽可能对系统进行备份至少对系统的重要数据和文件
进行备份确保系统测试结束后可以恢复到初始状态。
(二)测试时间选择系统空闲时间
对于系统并发负载测试或者其他可能影响系统运行并导致系统崩溃的测试
操作可以安排在系统空闲时间进行出现系统异常时有时间可进行系统的恢
复工作不致于影响业务的正常运行。
(三)给测试数据加标记
对于系统测试过程中产生的垃圾数据要进行特殊标记测试结束后要及时
清理。测试数据可以事先准备并予以特殊标记也可以是带有特定意义的区域
数据或者是特殊时间段内的数据这样当系统测试结束后我们可以根据这
些特殊标记将相应的垃圾数据删除保证系统的正常运行对于那些需要直接
在系统中进行变更的数据在相应的业务操作和功能确认完成后应予以及时恢复
确保将系统恢复到数据变更前的正常状态。
(四)实时关注系统状态
在具体实施系统并发负载测试时应按照指标驱动和用户逐渐增加的方法
对系统进行测试。在测试过程中应实时关注系统状态当系统不能承受相应
的压力时测试立即终止以有效保证测试不会超出系统的最大可承受压力
避免系统崩溃和数据损坏。
三、实际工作中风险规避方法的运用
案例1"计生委人口宏观管理与决策信息系统"系统上线运行一年业
务数据实行全国中心集中管理。对系统进行"流入人口登记"负载压力测试并
发用户数分别为100、200、500。
分析该系统的实际情况全国各区县上报的业务数据在全国中心实行集中
管理在测试过程中如果由于系统压力过大出现系统崩溃或数据损坏的情况
那么将会导致系统不可用或一整年的业务数据丢失损失一旦造成将不可挽回。
基于以上的考虑在测试中我们采用了方法一、二、四来进行风险规避。首先
我们将测试时间安排在周末进行避开了业务系统使用的繁忙期其次在实
施测试前要求厂商进行全库数据备份并做了数据恢复测试在确保数据可
以正确恢复的情况下开始进行测试同时在测试实施过程中对必要的操作
系统、数据库的指标进行监控根据系统的资源占用情况和响应时间等判断是
否可进一步对系统施加压力。在测试结束后厂商对系统进行了数据恢复使
系统恢复到了测试前的初始状态避免了数据丢失或损坏的风险。
案例2"北京市社会保险信息系统升级改造项目"根据业务情况需进
行"183号令补缴明细录入"操作的负载压力测试。但该操作为不可逆操作即
系统未提供取消补缴的操作为了清除测试数据需手工修改数据库。
在这个项目测试中我们采用了方法二、三、四进行风险规避首先选择
周末进行测试其次为了保障测试结束后系统可恢复到测试前的状态我们
选择对北京市石景山区的参保用户进行该操作测试执行完成后由厂商对石
景山区的数据进行了恢复确保系统与测试前保持一致。
四、总结
在现在的系统测试特别是大型项目的测试中系统性能的好坏已经成为
评价系统总体质量的一个必不可少的方面作为第三方评测服务机构的我们
在生产环境实施性能测试的时候必须对系统进行深入的了解分析系统特点
采取合适的测试方法并综合运用风险规避手段既要准确的获得系统的性能数
据又要保证系统的安全这样才是一个成功的性能测试。