- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
性能测试是系统优化的有效手段
对于一个比较成熟的业务系统来说,功能已经相对完善。但是在大业务量的情况下往往出现各种异常情况,这就需要通过修改系统配置或者调整产品框架来优化系统。在优化系统的过程中,最有效的手段就是对系统进行性能测试。然后对测试过程中收集的数据进行分析,找出问题所在,不断对系统进行优化,最终达到系统在大业务量时稳定运行的目的。
1、明确测试方法
测试方法主要是通过测试步骤体现出来的。测试步骤不是一成不变的,而是根据每次的测试结果不断调整和完善。开始性能测试之前必须确定以下两个任务。
(1)建立业务模型。根据业务的开展情况,建立科学的业务模型。
(2)设置性能指标。性能指标作为判断设计和实际性能处理的基准值,必须在测试之前明确。
确定以上两点后就可以开始调整循环,进行一系列重复和受控的性能测试。调整循环步骤如图1所示。测试时需重复图1中的4个阶段,直到获得初始建立的系统性能目标。
图1 调整循环的4个阶段
2、测试
测试阶段是调整循环操作的起点,是根据测试要求进行的相关操作,并为结果统计提供相应的测试数据。该阶段需要考虑环境配置和测试用例两个方面。
2.1 环境配置
不同的测试环境会产生不同的测试结果,因此测试前需要对环境配置进行详细的检查。主要检查以下几个方面。
(1)网络连通性。网络是否通畅是测试能否正常进行的基本前提。
(2)流量模型是否超出系统负荷。如果测试时施加的业务量远大于系统所能承受的负荷,则会对系统产生损伤,并在测试过程中出现宕机、告警等异常情况。
(3)被测系统的系统配置。系统配置包括软件和硬件两个方面。由于不同的系统配置会产生不同的测试结果,因此测试之前应对被测系统进行严格的核对,检查其是否符合测试要求。
(4)测试工具的参数配置。对于一个功能相对完善的测试工具来说,不但应能模拟大业务量,还应能配置压力递增方式、压力大小以及压力持续时间等参数,因此在测试之前需要检查相应的参数配置能否满足测试要求。
2.2 测试用例
性能测试用例大体分为环境配置、预置条件、测试步骤、预期结果、判定原则和测试结果6个方面。
(1)环境配置是指依照测试需求配置测试环境,包括网络组网和系统参数配置等。
(2)预置条件是指为了真实模拟某些场景而需要在测试前预置的条件。
(3)测试步骤是指在环境配置和预置条件完成后,如何对系统加压的过程。一般来说,首先确定压力的生成形式(如阶梯递增、二次曲线递增等),然后确定压力递增的时间,最后确定压力保持时间。
(4)预期结果是指通过理论及经验分析,对实际测试结果的预期指标或现象。此内容是检验测试结果的依据。
(5)判定原则是制定标准以判断测试是否满足要求。判定原则的制定在很大程度上依赖于测试的预期结果。
(6)测试结果是根据实际的测试情况、预期结果以及判定原则等对性能测试作出的总体结论。
3、结果统计
结果统计是将测试结果进行统计的过程,此过程是调整循环中承上启下的阶段。此阶段统计的数据来源于上一次的测试结果,并为后续的数据分析提供依据。结果统计的数据可以来源于被测系统和测试工具两个方面,因此在统计过程中不但要考虑从被测系统获取的统计数据,还要兼顾测试工具本身的数据统计。从被测系统可以直接获取通过系统日志统计出的系统资源消耗;从测试工具本身可以统计压力大小、业务处理时延和业务处理成功率等。
4、结果分析
收集好系统所需的性能数据后,再对这些数据进行分析以确定系统瓶颈。需要明确的是,统计数据仅具有指示性,并不一定能准确地确定实际瓶颈的位置。因为性能问题可由多种原因引起,这就需要从系统角度来分析和查找原因。例如,对某邮件系统进行邮件转发业务流程测试过程中,在保持最大在线并发用户数时系统资源消耗在50%左右,如果单从这个数据表面来看,此邮件系统性能良好,即在保持最大用户数时系统资源还有很大的可利用空间,但是如果进一步分析就会发现此系统的邮件转发业务流程设计不太合理,还有很大的系统优化空间。因为对一个优化的系统来说,当其保持最大用户数时,系统资源消耗应在80%以上。
在进行结果分析时应注意以下几点。
(1)数据发现的敏感性。能够主动发现一些貌似“合理”的数据问题。
(2)数据分析的系统性。能够通过测试数据的表面,从系统角度对数据进行分析,尽快发现系统瓶颈。
(3)数据合理的疑问性。测试的目的是发现问题,进而优化系统。因此应该抱着怀疑的态度分析测试数据,这样才能做到不遗漏任何“可疑”的数据。
(4)结果分析的分步性。根据测试经验,对测试结果的分析可以分为观察、初步假设、预测、测试、控制和结论6步进行。结论由该过程积累的最佳证据集合所支持的假设组成。
5、系统优化
在循环调整过程中,前三个阶段的目的是对系统进行优化,因此系统优化的依据直接来源于对测试结果的分析。在通常情况下,对于一个比较成熟的系统来说,系统的绝大多数优化工作是对系统配置的优化,只有少部分是对系统设计的修改。
通过结果分析可大体定位系统出现问题的位置,随后就需要对系统配置进行更改。此优化过程大部分工作是尝试性和不间断性的,因此需要不断尝试改变参数配置,然后验证修改后的配置是否达到预期目的。如果没有达到预期目的,则需要进一步对配置进行修改和验证。根据测试经验,参数配置更改的原则是“一次仅实现一个配置的更改”。原因是对于系统某一个模块/单元出现的问题可能是由涉及多个模块/单元的瓶颈引起的,因此分别对问题进行处理很重要。如果同时进行多个更改,则难以准确地评定每次更改的影响。
配置更改后必须对修改后的系统进行测试,以确定更改对调整后的系统所产生的影响。如果性能达到预期水平,便结束测试;否则必须重新进入下一个调整循环阶段。
----《电信技术》
作者:郭松
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗ù锝堟缁€濠傗攽閻樻彃鈧绱撳杈ㄥ枑闁哄啫鐗勯埀顑跨窔瀵粙顢橀悙鑼垛偓鍨攽閿涘嫬浠х紒顕呭灦瀵偊鎮╃紒妯锋嫼闂備緡鍋嗛崑娑㈡嚐椤栨稒娅犳い鏂款潟娴滄粍銇勯幘璺轰沪闁稿鍎抽埀顒冾潐濞叉粓骞婇幘璇茬叀濠㈣泛艌閺嬪酣鏌熼柇锕€鏋涚紒鎻掓健濮婂宕掑▎鎴濆闂佽鍠栭悥鐓庣暦閹版澘鍗抽柣蹇氼嚙缂嶅﹪骞冨⿰鍫熷癄濠㈣泛鐭堥崬鐢告⒑鐠囨彃鍤辩紓宥呮瀹曚即寮介銈勭瑝闂佸搫琚崕鏌ユ偂濞嗗緷褰掓偂鎼达絾鎲煎┑鐐村毆閸ャ劎鍘靛銈嗘瀹曠數绮i弮鈧幈銊︾節閸涱噮浠╅梺鍛婄墬閻楃姴顕i幘顔藉亜闁告縿鍎辩徊鍨攽閿涘嫬浜奸柛濠冨灴瀹曠銇愰幒鎾存珖濡炪倕绻愰悧鍕焵椤戣法顦﹂柍璇查叄楠炴ê鐣烽崶鑸敌у┑锛勫亼閸婃牠鎮уΔ鍐ㄦ瀳鐎广儱顦伴崐鍨亜閹哄棗浜鹃梺瀹狀潐閸ㄥ潡骞冨▎鎾崇煑濠㈣埖蓱閿涗線姊绘担瑙勫仩闁告柨閰e畷浼村冀瑜滈崵鏇炩攽閻樺磭顣查柡鍛倐閺屻劑鎮ら崒娑橆伓 | More...
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗ù锝堟缁€濠傗攽閻樻彃鈧绱撳杈ㄥ枑闁哄啫鐗勯埀顑跨窔瀵粙顢橀悙鑼垛偓鍨攽閿涘嫬浠х紒顕呭灦瀵偊鎮╃紒妯锋嫼闂備緡鍋嗛崑娑㈡嚐椤栨稒娅犳い鏂款潟娴滄粍銇勯幘璺轰沪闁稿鍎抽埀顒冾潐濞叉粓骞婇幘璇茬叀濠㈣泛艌閺嬪酣鏌熼柇锕€鏋涚紒鎻掓健濮婂宕掑▎鎴濆闂佽鍠栭悥鐓庣暦閹版澘鍗抽柣蹇氼嚙缂嶅﹪骞冨⿰鍫熷癄濠㈣泛鐭堥崬鐢告⒑鐠囨彃鍤辩紓宥呮瀹曚即寮介銈勭瑝闂佸搫琚崕鏌ユ偂濞嗗緷褰掓偂鎼达絾鎲煎┑鐐村毆閸ャ劎鍘靛銈嗘瀹曠數绮i弮鈧幈銊︾節閸涱噮浠╅梺鍛婄墬閻楃姴顕i幘顔藉亜闁告縿鍎辩徊鍨攽閿涘嫬浜奸柛濠冨灴瀹曠銇愰幒鎾存珖濡炪倕绻愰悧鍕焵椤戣法顦﹂柍璇查叄楠炴ê鐣烽崶鑸敌у┑锛勫亼閸婃牠骞愭ィ鍐ㄧ獥閹兼番鍔嶉崑鐔访归悡搴f憼闁抽攱鍨块弻娑樷槈濮楀牊鏁鹃柣搴$仛閻熲晠寮诲鍫闂佸憡鎸鹃崰搴敋閿濆棛绡€婵﹩鍘藉▍銏ゆ⒑鐠恒劌娅愰柟鍑ゆ嫹
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偛顦甸弫鎾绘偐閸愯弓缃曢梻浣告惈濞层劍鎱ㄦ搴g焼濠电姴鍊甸弨浠嬫煟濡搫绾ч柟鍏煎姍閺屾稓浠︾拠鎻掝潎闂佸搫鏈ú鐔风暦閻撳簶鏀介柟閭﹀帨瑜斿铏圭矙濞嗘儳鍓梺鍛婃煥閻倸锕㈡笟鈧娲箰鎼达絿鐣甸梺鐟板暱闁帮絽顕i幎鑺ュ亜闁稿繗鍋愰崢浠嬫⒑閸濆嫬鈧湱鈧瑳鍥у惞闁搞儺鍓氶悡娆愩亜閺冣偓椤戞瑥岣块幇鐗堢厵鐎瑰嫮澧楅崵鍥煙椤旀儳鍘存鐐茬Ч椤㈡岸宕ㄩ褏鍋涢埞鎴︽晬閸曨偂鏉梺绋匡攻閻楃娀鐛幇顓犵瘈婵﹩鍓涢悾娲⒑缁嬫寧婀版慨妯稿姂瀵娊鏁冮崒娑氬弰闂婎偄娲﹂崙鐟搬缚閹扮増鐓曢煫鍥ㄦ⒒閻帡鏌$仦鍓р槈妤楊亙鍗抽崺鈧い鎺戝€婚惌鍡椼€掑锝呬壕閻庢鍣崑濠囩嵁鎼淬劍鍤嶉柕澹啫绠洪梻鍌欒兌缁垶鏁嬮悗娈垮枛閻栧ジ鐛弽顓炵疀妞ゆ帒顦遍崬鐢告偡濠婂啰鐏遍柛鎺撳笒閳诲酣骞橀搹顐P氶梻渚€娼х换鍫ュ磹閺嶎厼鐤鹃柟闂寸劍閻撱儵鏌i弴鐐测偓鍦偓姘炬嫹
闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗ù锝堟缁€濠傗攽閻樻彃鈧绱撳杈ㄥ枑闁哄啫鐗勯埀顑跨窔瀵粙顢橀悙鑼垛偓鍨攽閿涘嫬浠х紒顕呭灦瀵偊鎮╃紒妯锋嫼闂備緡鍋嗛崑娑㈡嚐椤栨稒娅犳い鏂款潟娴滄粍銇勯幘璺轰沪闁稿鍎抽埀顒冾潐濞叉粓骞婇幘璇茬叀濠㈣泛艌閺嬪酣鏌熼柇锕€鏋涚紒鎻掓健濮婂宕掑▎鎴濆闂佽鍠栭悥鐓庣暦閹版澘鍗抽柣蹇氼嚙缂嶅﹪骞冨⿰鍫熷癄濠㈣泛鐭堥崬鐢告⒑鐠囨彃鍤辩紓宥呮瀹曚即寮介銈勭瑝闂佸搫琚崕鏌ユ偂濞嗗緷褰掓偂鎼达絾鎲煎┑鐐村毆閸ャ劎鍘靛銈嗘瀹曠數绮i弮鈧幈銊︾節閸涱噮浠╅梺鍛婄墬閻楃姴顕i幘顔藉亜闁告縿鍎辩徊鍨攽閿涘嫬浜奸柛濠冨灴瀹曠銇愰幒鎾存珖濡炪倕绻愰悧鍕焵椤戣法顦﹂柍璇查叄楠炴ê鐣烽崶鑸敌у┑锛勫亼閸婃牜鏁幒妤€纾归柛顭戝櫘閻庤埖銇勯弬璺ㄦ癁闁衡偓娴犲绠抽柟鎯版绾惧綊鏌¢崶鈺佇涢柛瀣尭椤繈顢楅埀顒€危婵犳碍鎳氶柣鎰劋閻撱儵鏌i弴鐐测偓鍦偓姘炬嫹
闂傚倸鍊搁崐宄懊归崶顒夋晪鐟滃繘骞戦姀銈呯疀妞ゆ棁妫勬惔濠囨⒑瑜版帒浜伴柛鐘冲浮瀹曟垿骞橀幇浣瑰兊濡炪倖鍔戦崹鍦矈椤曗偓濮婃椽妫冨☉娆樻闂佺ǹ锕ら…鐑界嵁閹达箑绀嬫い鎺戝€婚幊婵嗩渻閵堝棛澧痪鏉跨Т閳诲秵绻濋崶銊㈡嫽婵炴挻鍩冮崑鎾寸箾娴e啿娲﹂弲顒勭叓閸ャ劎鈽夐柣鎺戠仛閵囧嫰骞掗幋婵愪患闂佽棄鍟伴崰鏍蓟閺囥垹閱囨繝鍨姈鏁堥梻浣呵归鍐礉瀹ュ桅闁告洦鍨伴崘鈧梺闈涒康婵″洤鈻撻妶鍡欑瘈闁冲皝鍋撻柛鏇ㄥ墰椤︿即姊洪崫鍕効缂傚秳绶氶悰顔嘉熼崗鐓庢瀭闂佸憡娲﹂崢褰掑焵椤掆偓閿曨亜顫忓ú顏呭仭闁哄瀵т簺婵$偑鍊栭崹鐢杆囬悽绋课ュù锝呭濞笺劑鏌嶈閸撶喖鐛崘銊㈠牚闁割偅绻傞懓鍨攽椤旂瓔娈旀俊顐n殜瀵偉銇愰幒鎾嫽婵炶揪缍€濡嫰宕ヨぐ鎺撶厱闁绘ǹ灏欒倴濠电偛妫庨崹鑺ヤ繆閼搁潧绶炲┑鐘插閸炵敻姊绘担鑺ョ《闁革綇绠撻獮蹇涙晸閿燂拷