| 一、規(guī)范性能測試實施流程的意義 規(guī)范的性能測試實施流程能夠加強測試工作流程控制,明確性能測試各階段應(yīng)完成的工作,指導(dǎo)測試人員正確、有序的開展性能測試工作,提高各角色在性能能測試中的工作效率。本次分享的性能測試實施流程是性能測試開展的”指導(dǎo)方針”,希望幫助您可以早日成為性能測試”達(dá)人”。 二、性能測試實施流程 性能測試流程分為五個階段,分別是【需求調(diào)研階段】→【測試準(zhǔn)備階段】→【測試執(zhí)行階段】→【測試報告階段】→【測試總結(jié)階段】。 那么,每個階段我們需要做什么事情?重點關(guān)注什么呢? 1.需求調(diào)研階段 
 1)階段概述 調(diào)研階段的主要工作為:組建工作小組、項目創(chuàng)建、需求分析、模型構(gòu)建、定制性能測試詳細(xì)實施計劃。 重點關(guān)注:需求調(diào)研、需要分析、模型構(gòu)建 2)關(guān)鍵點描述 需求調(diào)研分為兩個步驟進(jìn)行:需求調(diào)研、需求分析。 該工作是性能測試必須的工作環(huán)節(jié)。工作產(chǎn)出文件為《XX項目性能測試需求表》,如:《云智慧_XXX系統(tǒng)_XXX模塊性能測試需求表》。 此階段模型構(gòu)建主要是業(yè)務(wù)模型構(gòu)建。 3)需求調(diào)研 需求調(diào)研工作由性能測試實施人員牽頭負(fù)責(zé),產(chǎn)品經(jīng)理、開發(fā)工程師、運維工程師配合完成; 需求調(diào)研的主要內(nèi)容為:n 系統(tǒng)線上環(huán)境的性能需求,例如性能需求、可靠性需求、可維護性需求等;n 與系統(tǒng)性能需求相關(guān)的其它信息,包括系統(tǒng)信息(如線上環(huán)境硬件、參數(shù)配置、系統(tǒng)架構(gòu)與部署方式、關(guān)聯(lián)系統(tǒng)部署等)、業(yè)務(wù)信息等; 開發(fā)項目組、需求部門、運維部門等測試任務(wù)提出方應(yīng)填寫《云智慧_XXX系統(tǒng)_XXX模塊性能測試需求表》中的“任務(wù)信息”和“測試背景”等信息,提出的測試需求,簡單文字不能說明的,可附加文件; 性能測試小組的實施人員將調(diào)研獲取的其它內(nèi)容填入《云智慧_XXX系統(tǒng)_XXX模塊性能測試需求表》; 對于新立項系統(tǒng)或系統(tǒng)新開發(fā)版本,《云智慧_XXX系統(tǒng)_XXX模塊性能測試需求表》應(yīng)與《需求規(guī)格說明書》中的性能需求相一致。 4)需求分析 ? 需求分析的基本流程是: n 首先,由性能測試工程師根據(jù)需求調(diào)研所獲取的信息進(jìn)行分析,將《云智慧_XXX系統(tǒng)_XXX模塊性能測試需求表》中的性能需求轉(zhuǎn)換為具體的性能需求指標(biāo)值; n 其次,根據(jù)測試環(huán)境與線上環(huán)境的差異分析,由性能測試工程師將線上環(huán)境條件下的性能需求指標(biāo)值轉(zhuǎn)換為本次測試環(huán)境條件下的性能需求指標(biāo)值; 例如:TPS(Transaction per Second):系統(tǒng)每秒處理交易數(shù),推導(dǎo)過程如下, 當(dāng)前線上APP1.0試用系統(tǒng)主要為查詢類交易,交易占比40%,系統(tǒng)生產(chǎn)交易量統(tǒng)計為1個月約20W筆,假設(shè)APP2.0系統(tǒng)上線后業(yè)務(wù)量激增到每日查詢類20W,則每日總交易量T達(dá)到: T = 20W/40%=500000筆/日 系統(tǒng)處理能力TPS推導(dǎo):APP2.0上線后交易量最大500000筆/日,系統(tǒng)晚間幾乎無交易量,按2:8原則推算,則(500000*80%)/(8*20%*3600)=69.4筆/秒,取整為70筆/秒,每年按業(yè)務(wù)量增長50%計算,則一年后系統(tǒng)處理能力指標(biāo)約等于70+70*50%=105筆/秒。 穩(wěn)定性交易量推導(dǎo): 取系統(tǒng)處理能力的60%*時長=105筆/秒*60%*8*3600=1814400筆。 
 5)經(jīng)過分析后匯總成測試指標(biāo)值 ? 需求分析其主要內(nèi)容和規(guī)范性要求如下: n 性能測試需求:應(yīng)準(zhǔn)確描述性能測試指標(biāo)項及需求指標(biāo)值。 n 系統(tǒng)范圍:應(yīng)準(zhǔn)確描述性能測試需求指標(biāo)值所依托的測試范圍信息,如應(yīng)描述測試范圍的關(guān)聯(lián)系統(tǒng)邏輯示意圖,及各關(guān)聯(lián)系統(tǒng)的信息;在對系統(tǒng)局部環(huán)節(jié)進(jìn)行測試時,也需闡明具體測試范圍,詳細(xì)描述被測系統(tǒng)的相關(guān)子系統(tǒng)。 n 環(huán)境差異分析:應(yīng)準(zhǔn)確描述性能測試需求指標(biāo)值所依托的測試環(huán)境信息,如須描述測試環(huán)境的總體網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖、測試環(huán)境機器配置表(數(shù)量、型號、資源、操作系統(tǒng))、以及相應(yīng)的軟件配置、重要參數(shù)配置等。同時應(yīng)準(zhǔn)確描述線上環(huán)境的上述信息,并進(jìn)行詳細(xì)的環(huán)境差異性分析。 以上分析內(nèi)容將作為性能測試方案的重要組成部分。 6)模型構(gòu)建例如:業(yè)務(wù)模型 根據(jù)200X年XX月XX日~200X年XX月XX日期間的業(yè)務(wù)高峰日200X年XX月XX日的業(yè)務(wù)量統(tǒng)計,經(jīng)過略微調(diào)整得出以下業(yè)務(wù)模型,要求業(yè)務(wù)模型交易至少占線上交易量的90%以上: 
 2、測試準(zhǔn)備階段 1)階段概述 測試準(zhǔn)備階段是性能測試工作中重要階段。在準(zhǔn)備階段,需要完成業(yè)務(wù)模型到測試模型的構(gòu)建、性能測試實施方案編寫、測試環(huán)境的準(zhǔn)備、性能測試案例設(shè)計、性能測試監(jiān)控方案設(shè)計、性能測試腳本,及相關(guān)測試數(shù)據(jù)的準(zhǔn)備,并在上述相關(guān)準(zhǔn)備活動結(jié)束后按照測試計劃進(jìn)行準(zhǔn)入檢查。 重點關(guān)注:測試模型構(gòu)建、方案設(shè)計、案例設(shè)計、數(shù)據(jù)準(zhǔn)備等 2)測試模型構(gòu)建 測試模型構(gòu)建工作由性能測試實施人員完成; 在需求分析的基礎(chǔ)上,對調(diào)研收集到的相關(guān)資料與信息進(jìn)行分析梳理,重點分析跨系統(tǒng)的交易路徑、交易關(guān)聯(lián)關(guān)系、數(shù)據(jù)的處理與流轉(zhuǎn)、業(yè)務(wù)量、交易比例、典型交易,以及系統(tǒng)的處理能力等性能測試點,針對性地確定多個業(yè)務(wù)場景,并為每個場景選擇一套具體的業(yè)務(wù)交易集,按照業(yè)務(wù)量比例構(gòu)建相應(yīng)的測試模型。 本階段的產(chǎn)出物為,各個測試場景,以及場景中典型交易及所占比率。 例如:從業(yè)務(wù)模型到測試模型推導(dǎo) 依據(jù)業(yè)務(wù)模型,通過與項目組及產(chǎn)品經(jīng)理溝通,確定本次測試模型還需著重考慮以下內(nèi)容: (1) 考慮到后期證券系統(tǒng)數(shù)據(jù)庫升級,歷史查詢可能會影響,所以本次測試單獨增加一個場景:歷史委托和歷史成交查詢各50%(即0456和0457)。同時,考慮到線上環(huán)境絕大部分該交易是由總中心前置發(fā)起,所以本次測試“歷史委托和歷史成交查詢”交易均采用從總中心發(fā)起; (2) 增加國債發(fā)行交易場景,國債發(fā)行認(rèn)購日一般在柜臺營業(yè)前進(jìn)行,此場景只選擇國債發(fā)行認(rèn)購一支交易; (3) 同時,證券系統(tǒng)交易高峰時段柜員簽到、柜員簽退交易占比較小。 通過以上分析得出本次測試模型有3個:一般交易日日間模型、國債發(fā)行日模型、以及歷史查詢交易模型。 3)方案設(shè)計 性能測試實施方案編制是性能測試工作中必須的工作環(huán)節(jié),其產(chǎn)出為《性能測試方案》,如:《云智慧_XXX項目_XXX功能模塊_性能能測試方案V1.0.xlsb》。 在方案中需要描述:測試需求、啟停準(zhǔn)則、測試模型設(shè)計、測試策略、測試內(nèi)容、測試環(huán)境與工具需求,以及各個階段的輸出文檔。在方案中還需說明性能測試工作的時間計劃安排、預(yù)期的風(fēng)險與風(fēng)險規(guī)避方法等。測試模型設(shè)計內(nèi)容來自本階段測試模型設(shè)計中形成的測試場景,以及場景中典型交易及所占比率。 4)案例設(shè)計 在案例設(shè)計中,包括案例的描述、測試環(huán)境描述(硬件、軟件、應(yīng)用版本、測試數(shù)據(jù))、延遲設(shè)置、壓力場景、執(zhí)行描述、預(yù)期結(jié)果、監(jiān)控要點。 案例設(shè)計是性能測試工作的必須工作環(huán)節(jié),案例設(shè)計的產(chǎn)出文件是《性能測試案例》。 5)數(shù)據(jù)準(zhǔn)備 環(huán)境準(zhǔn)備工作中涉及到基礎(chǔ)數(shù)據(jù)的準(zhǔn)備。測試數(shù)據(jù)的數(shù)量、邏輯關(guān)系要求十分嚴(yán)格,測試基礎(chǔ)數(shù)據(jù)的準(zhǔn)備一般采用自造模擬數(shù)據(jù)或者使用脫敏后的線上數(shù)據(jù)。 6)測試腳本開發(fā) 測試腳本開發(fā)工作就是發(fā)揮LR的時候。 測試腳本是對業(yè)務(wù)操作的程序化體現(xiàn),一個腳本一般為一項業(yè)務(wù)的過程描述。本活動主要為腳本的錄制(編寫)、修改和調(diào)試工作,從而保證在測試實施之前每個測試用例的腳本都能夠在單筆和少量迭代次數(shù)的條件下能夠正確執(zhí)行。測試腳本開發(fā)的一般步驟如下: ? 通過錄制,或者編寫,完成腳本代碼生成。代碼生成時,主要根據(jù)需求插入事務(wù),作為測試過程中統(tǒng)計交易響應(yīng)時間的單位; ? 根據(jù)測試需求,進(jìn)行參數(shù)化設(shè)置; ? 設(shè)定檢查點,根據(jù)報文內(nèi)容字段判斷交易是否正確執(zhí)行,即檢查點的設(shè)置在應(yīng)用層面; ? 根據(jù)測試要求確定是否設(shè)置集合點; 3、測試執(zhí)行階段 1)階段概述 測試執(zhí)行階段是執(zhí)行測試案例,獲得系統(tǒng)處理能力指標(biāo)數(shù)據(jù),發(fā)現(xiàn)性能測試缺陷的階段。測試執(zhí)行期間,借助測試工具執(zhí)行測試場景或測試腳本,同時配合各類監(jiān)控工具。執(zhí)行結(jié)束后統(tǒng)一收集各種結(jié)果數(shù)據(jù)進(jìn)行分析。根據(jù)需要,執(zhí)行階段可進(jìn)行系統(tǒng)的調(diào)優(yōu)和回歸測試。 重點關(guān)注:結(jié)果記錄、測試監(jiān)控、結(jié)果分析 2)測試執(zhí)行與結(jié)果記錄 測試執(zhí)行過程有相應(yīng)的優(yōu)先級策略,依據(jù)測試案例的優(yōu)先級別,優(yōu)先執(zhí)行級別較高的測試案例。測試過程中,通過對每個測試結(jié)果的分析來決定是重復(fù)執(zhí)行當(dāng)前案例還是執(zhí)行新的測試案例;通常發(fā)現(xiàn)瓶頸問題會立即進(jìn)行調(diào)整并重新執(zhí)行測試用例,直到當(dāng)前的案例通過。 在執(zhí)行階段,測試的執(zhí)行、分析調(diào)優(yōu)、回歸測試工作較為反復(fù),須認(rèn)真記錄全部執(zhí)行過程和執(zhí)行結(jié)果,執(zhí)行結(jié)果數(shù)據(jù)是分析瓶頸的主要依據(jù)。 3)測試監(jiān)控 測試的監(jiān)控工作與執(zhí)行工作同步進(jìn)行,場景或腳本開始執(zhí)行時,同時啟動監(jiān)控程序(可以用nmon或者系統(tǒng)命令top/vmstat/iostat 等),當(dāng)然也可以用云智慧的監(jiān)控寶和透視寶協(xié)同工作,監(jiān)控寶可以監(jiān)控網(wǎng)站/網(wǎng)頁性能/Ping/DNS/FTP/UDP/TCP/SMTP等IT基礎(chǔ)設(shè)施的性能指標(biāo)。 在執(zhí)行結(jié)束后,停止測試監(jiān)控,并提取監(jiān)控結(jié)果數(shù)據(jù)。 4)測試結(jié)果分析 測試過程中根據(jù)前端性能測試工具顯示結(jié)果、監(jiān)控結(jié)果綜合分析出現(xiàn)的測試問題。 4、測試報告階段 1)階段概述 測試執(zhí)行工作結(jié)束后開始撰寫性能測試報告。性能測試報告在發(fā)布前需要進(jìn)行評審。 2)報告撰寫 性能測試報告要內(nèi)容包括:測試目的、范圍及方法、環(huán)境描述、測試結(jié)果描述、結(jié)果分析、結(jié)論和建議等。 3)測試結(jié)果描述 測試結(jié)果的描述,應(yīng)體現(xiàn)性能測試的執(zhí)行過程,如:混合場景的容量測試結(jié)果展示中,需要描述各個并發(fā)梯度下測試結(jié)果及監(jiān)控結(jié)果;在數(shù)字形式的結(jié)果記錄中,要求小數(shù)點后精確3位有效數(shù)字。 4)測試缺陷與問題 在性能測試分析報告中須描述測試過程發(fā)現(xiàn)的缺陷與問題,對于確認(rèn)是測試缺陷的項進(jìn)行風(fēng)險評估,并給出風(fēng)險提示。 5)最終結(jié)果分析 測試最終結(jié)果的分析,該部分內(nèi)容應(yīng)該全面、透徹、易理解且通過圖表方式表達(dá)更直觀。 例如: 
 
 6)測試結(jié)論 測試結(jié)論是性能測試分析報告必須包括的內(nèi)容。測試的結(jié)論須清晰、準(zhǔn)確回答性能測試需求中描述的各項指標(biāo),需全面覆蓋測試需求。 5、測試總結(jié)階段 性能測試的總結(jié)工作,主要對該任務(wù)的測試過程和測試技術(shù)進(jìn)行總結(jié)。性能測試工作進(jìn)入總結(jié)階段,也意味著性能測試工作臨近結(jié)束。在這個階段,時間允許的情況下應(yīng)將所有的重要測試資產(chǎn)進(jìn)行歸檔保存。 文章來源:網(wǎng)絡(luò) 版權(quán)歸原作者所有 上文內(nèi)容不用于商業(yè)目的,如涉及知識產(chǎn)權(quán)問題,請權(quán)利人聯(lián)系小編,我們將立即處理 | 
|  |