<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 如何利用性能測試優(yōu)化系統(tǒng)

          如何利用性能測試優(yōu)化系統(tǒng)

          ——
          作者:郭松 時(shí)間:2006-11-08 來源:通信世界網(wǎng) 收藏
          對(duì)于一個(gè)開發(fā)比較成熟的業(yè)務(wù)系統(tǒng)而言,功能相對(duì)已經(jīng)完善,但在大業(yè)務(wù)量的情況下往往會(huì)出現(xiàn)各種異常。對(duì)此,需通過對(duì)系統(tǒng)進(jìn)行配置修改或者產(chǎn)品框架調(diào)整來系統(tǒng)。  在系統(tǒng)過程中,最有效的手段就是對(duì)系統(tǒng)做性能,通過結(jié)果的收集分析,不斷進(jìn)行系統(tǒng),最終達(dá)到系統(tǒng)在大業(yè)務(wù)量情況下穩(wěn)定運(yùn)行的目的。

          一、方法

          測試方法主要通過測試過程中的測試步驟體現(xiàn)出來。測試步驟需根據(jù)每次的測試結(jié)果不斷調(diào)整,一個(gè)完善的測試方法需要不斷地進(jìn)行性能測試和性能調(diào)整。在開始性能調(diào)整循環(huán)之前,必須確定以下兩點(diǎn):一是建立業(yè)務(wù)模型,通過統(tǒng)計(jì)或數(shù)學(xué)模型的方法建立起科學(xué)的業(yè)務(wù)模型,如業(yè)務(wù)流程分布比例、平均負(fù)荷、峰值負(fù)載等;二是設(shè)置性能指標(biāo),作為判斷設(shè)計(jì)指標(biāo)和實(shí)際性能處理指標(biāo)的基準(zhǔn)值,總體的系統(tǒng)吞吐量、系統(tǒng)的吞吐效率、響應(yīng)時(shí)延等都是用于性能的常用度量標(biāo)準(zhǔn)。

          確定以上兩點(diǎn)后,開始調(diào)整循環(huán),這是一系列重復(fù)的受控性能試驗(yàn)。重復(fù)圖1所示的四個(gè)調(diào)整循環(huán)階段,直至獲得在開始調(diào)整過程前建立的系統(tǒng)性能目標(biāo)。

                                        四個(gè)調(diào)整循環(huán)階段

          二、測試階段

          測試階段是調(diào)整循環(huán)操作的起點(diǎn),此階段是根據(jù)測試的要求進(jìn)行相關(guān)操作,為下一步結(jié)果統(tǒng)計(jì)提供相應(yīng)的測試數(shù)據(jù)。此階段需要注意測試環(huán)境配置、測試用例的操作兩個(gè)要點(diǎn)。

          1.測試環(huán)境配置

          不同的測試環(huán)境會(huì)產(chǎn)生不同的測試結(jié)果,因此測試前需要對(duì)環(huán)境配置進(jìn)行詳細(xì)的檢查。

          (1)檢查網(wǎng)絡(luò)連通性。網(wǎng)絡(luò)暢通是測試能夠正常進(jìn)行的基本前提。

          (2)檢查流量模型是否超出系統(tǒng)負(fù)荷。如果將要加的壓力大大超出系統(tǒng)的負(fù)荷,會(huì)對(duì)系統(tǒng)產(chǎn)生傷害,并可能在測試過程中出現(xiàn)宕機(jī)、告警等異常情況。

          (3)檢查被測系統(tǒng)的系統(tǒng)配置。此系統(tǒng)配置包括軟件版本和硬件配置兩個(gè)方面,不同的系統(tǒng)配置會(huì)產(chǎn)生不同的測試結(jié)果,故測試之前應(yīng)對(duì)被測系統(tǒng)的配置進(jìn)行嚴(yán)格核對(duì),檢查是否是測試所需的系統(tǒng)配置。

          (4)檢查測試工具的參數(shù)配置。在性能測試中,必須利用測試工具來模擬大業(yè)務(wù)量。對(duì)于一個(gè)功能相對(duì)完善的測試工具,不但能模擬大業(yè)務(wù)量,而且還能夠配置壓力遞增方式、壓力大小、壓力持續(xù)時(shí)間等參數(shù)。在測試之前需要根據(jù)測試的需求檢查相應(yīng)參數(shù)配置是否滿足測試要求。

          2.測試用例操作

          測試過程中,性能測試主要按照測試用例規(guī)定的內(nèi)容去逐步操作。一般來講性能測試用例內(nèi)容大體分成測試環(huán)境配置、預(yù)置條件、測試步驟、預(yù)期結(jié)果、判定原則、測試結(jié)果六個(gè)方面。

          環(huán)境配置是指按照測試的需求配置測試環(huán)境,包括網(wǎng)絡(luò)的組網(wǎng)、系統(tǒng)的參數(shù)配置等;測試預(yù)置條件是指為了真實(shí)模擬一些場景,需要在測試之前在系統(tǒng)中預(yù)置一些條件,例如在郵箱系統(tǒng)的性能測試過程中,為了模擬業(yè)務(wù)開展的實(shí)際情況測試,需要在郵件系統(tǒng)中預(yù)先存儲(chǔ)一些積壓的郵件;測試步驟是指在環(huán)境配置完成及預(yù)置條件完成后,如何對(duì)系統(tǒng)加壓的過程,一般而言,首先確定壓力的生成形式(如階梯型遞增、二次曲線形式遞增等),然后確定壓力遞增的時(shí)間,最后要求壓力保持的時(shí)間;預(yù)期結(jié)果是指通過理論及經(jīng)驗(yàn)分析,對(duì)實(shí)際測試結(jié)果的一個(gè)預(yù)期指標(biāo),此內(nèi)容是檢驗(yàn)測試結(jié)果的一個(gè)依據(jù);判定原則是制定出一個(gè)標(biāo)準(zhǔn)來判斷測試是否滿足要求,此原則的制定很大程度上依據(jù)測試的預(yù)期結(jié)果;測試結(jié)果是根據(jù)實(shí)際測試情況及參考預(yù)期結(jié)果和判定原則對(duì)測試的一個(gè)總體結(jié)論,其結(jié)論包括此項(xiàng)測試是否通過及測試的相應(yīng)指標(biāo)記錄兩個(gè)方面。

          3.結(jié)果統(tǒng)計(jì)

          此過程是調(diào)整循環(huán)內(nèi)容中一個(gè)承上啟下的環(huán)節(jié)。此環(huán)節(jié)統(tǒng)計(jì)的數(shù)據(jù)來源于上一次的測試結(jié)果,并為下一步的數(shù)據(jù)分析提供相關(guān)數(shù)據(jù)。

          結(jié)果的統(tǒng)計(jì)可以來源于被測系統(tǒng)和測試工具本身兩個(gè)方面,在統(tǒng)計(jì)過程中不但要考慮到從被測系統(tǒng)中統(tǒng)計(jì)數(shù)據(jù)還要兼顧到測試工具本身的數(shù)據(jù)統(tǒng)計(jì)。一般來講,從被測系統(tǒng)可以直接通過系統(tǒng)的日志統(tǒng)計(jì)出系統(tǒng)資源消耗(如CPU、內(nèi)存的占用率等);從測試工具本身可以統(tǒng)計(jì)出壓力的大小、業(yè)務(wù)處理時(shí)延、業(yè)務(wù)處理成功率等指標(biāo)。結(jié)果統(tǒng)計(jì)階段需要將以上兩個(gè)方面的數(shù)據(jù)一并統(tǒng)計(jì)出來,為下一步數(shù)據(jù)分析提供重要依據(jù)。

          4.結(jié)果分析

          通過數(shù)據(jù)統(tǒng)計(jì)收集到系統(tǒng)所需的性能數(shù)據(jù)后,對(duì)這些數(shù)據(jù)進(jìn)行分析以確定系統(tǒng)瓶頸。在這里,需要明確的是統(tǒng)計(jì)到的體現(xiàn)性能數(shù)據(jù)僅具有指示性,它并不一定就可以確定實(shí)際的瓶頸在哪里,因?yàn)橐粋€(gè)性能問題可能由多個(gè)原因所致。因此,在結(jié)果分析階段需要從系統(tǒng)的角度去分析并查找原因,千萬不能走入對(duì)于一個(gè)開發(fā)比較成熟的業(yè)務(wù)系統(tǒng)而言,功能相對(duì)已經(jīng)完善,但在大業(yè)務(wù)量的情況下往往會(huì)出現(xiàn)各種異常。對(duì)此,需通過對(duì)系統(tǒng)進(jìn)行配置修改或者產(chǎn)品框架調(diào)整來優(yōu)化系統(tǒng)。  在優(yōu)化系統(tǒng)過程中,最有效的手段就是對(duì)系統(tǒng)做性能測試,通過測試結(jié)果的收集分析,不斷進(jìn)行系統(tǒng)優(yōu)化,最終達(dá)到系統(tǒng)在大業(yè)務(wù)量情況下穩(wěn)定運(yùn)行的目的。

          “頭痛醫(yī)頭,腳痛醫(yī)腳”的誤區(qū)。在結(jié)果分析階段應(yīng)該注意到以下幾個(gè)方面。

          (1)數(shù)據(jù)發(fā)現(xiàn)的敏感性,能夠主動(dòng)發(fā)現(xiàn)一些貌似“合理”的數(shù)據(jù)問題。

          (2)數(shù)據(jù)分析的系統(tǒng)性,能夠通過測試數(shù)據(jù)的表象,從系統(tǒng)的角度對(duì)數(shù)據(jù)進(jìn)行分析,發(fā)現(xiàn)系統(tǒng)瓶頸。

          (3)數(shù)據(jù)合理的疑問性,測試工作的目的就是要發(fā)現(xiàn)問題,優(yōu)化系統(tǒng),所以應(yīng)該抱著對(duì)所有數(shù)據(jù)懷疑的態(tài)度去分析測試數(shù)據(jù),這樣才能做到不遺漏任何的“可疑”數(shù)據(jù)。

          (4)結(jié)果分析的分步性,通過測試經(jīng)驗(yàn),對(duì)于測試結(jié)果分析可以分成六步進(jìn)行,包括觀察、初步假設(shè)、預(yù)測、測試、控制和結(jié)論,結(jié)論由該過程積累的最佳證據(jù)集合所支持的假設(shè)組成。

          三、總結(jié)

          在循環(huán)調(diào)整的過程中,測試、結(jié)果統(tǒng)計(jì)、結(jié)果分析環(huán)節(jié)的最終目的是要對(duì)系統(tǒng)進(jìn)行優(yōu)化。因此,系統(tǒng)優(yōu)化的依據(jù)直接來源于對(duì)測試結(jié)果的分析。通常來講,對(duì)于一個(gè)比較成熟的系統(tǒng),系統(tǒng)的絕大多數(shù)優(yōu)化工作往往是對(duì)系統(tǒng)配置的優(yōu)化,只有少部分的優(yōu)化工作是對(duì)系統(tǒng)設(shè)計(jì)的修改。

          通過對(duì)結(jié)果的分析,可以大體定位出系統(tǒng)問題出現(xiàn)在哪里,隨后對(duì)系統(tǒng)配置進(jìn)行更改及優(yōu)化。此優(yōu)化過程大部分的工作是嘗試性和不間斷性的,需要不斷嘗試配置參數(shù)的改變,然后驗(yàn)證此配置的修改是否達(dá)到預(yù)期目的。如果沒有達(dá)到預(yù)期目的,需要進(jìn)一步對(duì)配置進(jìn)行修改和驗(yàn)證。根據(jù)以往的測試經(jīng)驗(yàn),實(shí)現(xiàn)參數(shù)配置更改的最重要規(guī)則是一次僅實(shí)現(xiàn)一個(gè)配置更改。這主要是由于系統(tǒng)某一個(gè)模塊/單元出現(xiàn)問題可能是由多個(gè)模塊/單元的瓶頸導(dǎo)致的。因此,分別處理每個(gè)問題很重要。如果同時(shí)進(jìn)行多個(gè)更改,將不可能準(zhǔn)確地評(píng)定每次更改的影響。

          實(shí)現(xiàn)了配置更改后,必須對(duì)修改后的系統(tǒng)進(jìn)行測試,確定更改對(duì)系統(tǒng)所產(chǎn)生的影響。如果幸運(yùn),性能提高到預(yù)期的水平,這時(shí)便可以退出。如果不是這樣,則必須重新逐步進(jìn)行調(diào)整循環(huán)。

          綜合考慮以上的內(nèi)容,一個(gè)調(diào)整循環(huán)的流程才算基本完成,根據(jù)調(diào)整的結(jié)果來考慮是否進(jìn)入下一部調(diào)整循環(huán)的階段



          關(guān)鍵詞: 測量 測試 優(yōu)化

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();