前言
一、 規(guī)范性能測試實(shí)施流程的意義
規(guī)范的性能測試實(shí)施流程能夠加強(qiáng)測試工作流程控制历造,明確性能測試各階段應(yīng)完成的工作甩十,指導(dǎo)測試人員正確、有序的開展性能測試工作吭产,提高各角色在性能能測試中的工作效率侣监。本次分享的性能測試實(shí)施流程是性能測試開展的”指導(dǎo)方針”,希望幫助您可以早日成為性能測試”達(dá)人”臣淤。
二橄霉、 性能測試實(shí)施流程
性能測試流程分為五個階段,分別是【需求調(diào)研階段】→【測試準(zhǔn)備階段】→【測試執(zhí)行階段】→【測試報告階段】→【測試總結(jié)階段】邑蒋。
每個階段做什么事情姓蜂?重點(diǎn)關(guān)注什么按厘?
1.需求調(diào)研階段
正文
1.1. 階段概述
調(diào)研階段的主要工作為:組建工作小組、項(xiàng)目創(chuàng)建钱慢、需求分析逮京、模型構(gòu)建、定制性能測試詳細(xì)實(shí)施計(jì)劃束莫。
重點(diǎn)關(guān)注:需求調(diào)研懒棉、需要分析、模型構(gòu)建
1.2. 關(guān)鍵點(diǎn)描述
需求調(diào)研分為兩個步驟進(jìn)行:需求調(diào)研览绿、需求分析策严。
該工作是性能測試必須的工作環(huán)節(jié)。工作產(chǎn)出文件為《XX項(xiàng)目性能測試需求表》饿敲,如:《云智慧_XXX系統(tǒng)_XXX模塊性能測試需求表》妻导。
此階段模型構(gòu)建主要是業(yè)務(wù)模型構(gòu)建。
1.2.1需求調(diào)研
? 需求調(diào)研工作由性能測試實(shí)施人員牽頭負(fù)責(zé)怀各,產(chǎn)品經(jīng)理倔韭、開發(fā)工程師、運(yùn)維工程師配合完成渠啤;
? 需求調(diào)研的主要內(nèi)容為:
n 系統(tǒng)線上環(huán)境的性能需求狐肢,例如性能需求添吗、可靠性需求沥曹、可維護(hù)性需求等;
n 與系統(tǒng)性能需求相關(guān)的其它信息碟联,包括系統(tǒng)信息(如線上環(huán)境硬件妓美、參數(shù)配置、系統(tǒng)架構(gòu)與部署方式鲤孵、關(guān)聯(lián)系統(tǒng)部署等)壶栋、業(yè)務(wù)信息(關(guān)鍵業(yè)務(wù)邏輯與處理流程、交易列表普监、交易量信息贵试、業(yè)務(wù)分布規(guī)律等)、生產(chǎn)問題凯正、文檔資料等方面毙玻,并對收集到的信息進(jìn)行匯總整理,實(shí)現(xiàn)對待測系統(tǒng)業(yè)務(wù)與技術(shù)的整體了解廊散;
? 開發(fā)項(xiàng)目組桑滩、需求部門、運(yùn)維部門等測試任務(wù)提出方應(yīng)填寫《云智慧_XXX系統(tǒng)_XXX模塊性能測試需求表》中的“任務(wù)信息”和“測試背景”等信息允睹,提出的測試需求,簡單文字不能說明的运准,可附加文件幌氮;
? 性能測試小組的實(shí)施人員將調(diào)研獲取的其它內(nèi)容填入《云智慧_XXX系統(tǒng)_XXX模塊性能測試需求表》;
? 對于新立項(xiàng)系統(tǒng)或系統(tǒng)新開發(fā)版本胁澳,《云智慧_XXX系統(tǒng)_XXX模塊性能測試需求表》應(yīng)與《需求規(guī)格說明書》中的性能需求相一致该互。
1.2.2需求分析
? 需求分析的基本流程是:
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)計(jì)為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原則推算,則(50000080%)/(820%3600)=69.4筆/秒幔嗦,取整為70筆/秒酿愧,每年按業(yè)務(wù)量增長50%計(jì)算,則一年后系統(tǒng)處理能力指標(biāo)約等于70+7050%=105筆/秒邀泉。
穩(wěn)定性交易量推導(dǎo): 取系統(tǒng)處理能力的60%_時長=105筆/秒*60%*8_3600=1814400筆嬉挡。
經(jīng)過分析后匯總成測試指標(biāo)值
? 需求分析其主要內(nèi)容和規(guī)范性要求如下:
n 性能測試需求:應(yīng)準(zhǔn)確描述性能測試指標(biāo)項(xiàng)及需求指標(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)境機(jī)器配置表(數(shù)量、型號冰沙、資源侨艾、操作系統(tǒng))、以及相應(yīng)的軟件配置拓挥、重要參數(shù)配置等唠梨。同時應(yīng)準(zhǔn)確描述線上環(huán)境的上述信息,并進(jìn)行詳細(xì)的環(huán)境差異性分析侥啤。
以上分析內(nèi)容將作為性能測試方案的重要組成部分当叭。
1.2.3模型構(gòu)建例如:業(yè)務(wù)模型
根據(jù)200X年XX月XX日~200X年XX月XX日期間的業(yè)務(wù)高峰日200X年XX月XX日的業(yè)務(wù)量統(tǒng)計(jì),經(jīng)過略微調(diào)整得出以下業(yè)務(wù)模型盖灸,要求業(yè)務(wù)模型交易至少占線上交易量的90%以上:
2.測試準(zhǔn)備階段
2.1階段概述
測試準(zhǔn)備階段是性能測試工作中重要階段蚁鳖。在準(zhǔn)備階段,需要完成業(yè)務(wù)模型到測試模型的構(gòu)建赁炎、性能測試實(shí)施方案編寫醉箕、測試環(huán)境的準(zhǔn)備、性能測試案例設(shè)計(jì)徙垫、性能測試監(jiān)控方案設(shè)計(jì)讥裤、性能測試腳本,及相關(guān)測試數(shù)據(jù)的準(zhǔn)備姻报,并在上述相關(guān)準(zhǔn)備活動結(jié)束后按照測試計(jì)劃進(jìn)行準(zhǔn)入檢查己英。
重點(diǎn)關(guān)注:測試模型構(gòu)建、方案設(shè)計(jì)吴旋、案例設(shè)計(jì)损肛、數(shù)據(jù)準(zhǔn)備等
2.2關(guān)鍵點(diǎn)描述
2.2.1測試模型構(gòu)建
測試模型構(gòu)建工作由性能測試實(shí)施人員完成;
在需求分析的基礎(chǔ)上邮府,對調(diào)研收集到的相關(guān)資料與信息進(jìn)行分析梳理荧关,重點(diǎn)分析跨系統(tǒng)的交易路徑、交易關(guān)聯(lián)關(guān)系褂傀、數(shù)據(jù)的處理與流轉(zhuǎn)、業(yè)務(wù)量加勤、交易比例仙辟、典型交易,以及系統(tǒng)的處理能力等性能測試點(diǎn)鳄梅,針對性地確定多個業(yè)務(wù)場景叠国,并為每個場景選擇一套具體的業(yè)務(wù)交易集,按照業(yè)務(wù)量比例構(gòu)建相應(yīng)的測試模型戴尸。
本階段的產(chǎn)出物為粟焊,各個測試場景,以及場景中典型交易及所占比率。
例如:從業(yè)務(wù)模型到測試模型推導(dǎo)
依據(jù)業(yè)務(wù)模型项棠,通過與項(xiàng)目組及產(chǎn)品經(jīng)理溝通悲雳,確定本次測試模型還需著重考慮以下內(nèi)容:
(1) 考慮到后期證券系統(tǒng)數(shù)據(jù)庫升級,歷史查詢可能會影響香追,所以本次測試單獨(dú)增加一個場景:歷史委托和歷史成交查詢各50%(即0456和0457)合瓢。同時,考慮到線上環(huán)境絕大部分該交易是由總中心前置發(fā)起透典,所以本次測試“歷史委托和歷史成交查詢”交易均采用從總中心發(fā)起晴楔;
(2) 增加國債發(fā)行交易場景拄丰,國債發(fā)行認(rèn)購日一般在柜臺營業(yè)前進(jìn)行榕堰,此場景只選擇國債發(fā)行認(rèn)購一支交易兵罢;
(3) 同時弱左,證券系統(tǒng)交易高峰時段柜員簽到弯洗、柜員簽退交易占比較小流炕。
通過以上分析得出本次測試模型有3個:一般交易日日間模型赁遗、國債發(fā)行日模型曼追、以及歷史查詢交易模型顽决。
一般交易日日間模型:
儲蓄國債交易模型:
歷史查詢交易模型:
2.2.2方案設(shè)計(jì)
性能測試實(shí)施方案編制是性能測試工作中必須的工作環(huán)節(jié)短条,其產(chǎn)出為《性能測試方案》,如:《云智慧_XXX項(xiàng)目_XXX功能模塊_性能能測試方案V1.0.xlsb》才菠。
在方案中需要描述:測試需求茸时、啟停準(zhǔn)則、測試模型設(shè)計(jì)赋访、測試策略可都、測試內(nèi)容、測試環(huán)境與工具需求蚓耽,以及各個階段的輸出文檔渠牲。在方案中還需說明性能測試工作的時間計(jì)劃安排、預(yù)期的風(fēng)險與風(fēng)險規(guī)避方法等步悠。測試模型設(shè)計(jì)內(nèi)容來自本階段測試模型設(shè)計(jì)中形成的測試場景签杈,以及場景中典型交易及所占比率。
2.2.3案例設(shè)計(jì)
在案例設(shè)計(jì)中鼎兽,包括案例的描述答姥、測試環(huán)境描述(硬件、軟件谚咬、應(yīng)用版本鹦付、測試數(shù)據(jù))、延遲設(shè)置择卦、壓力場景敲长、執(zhí)行描述郎嫁、預(yù)期結(jié)果、監(jiān)控要點(diǎn)祈噪。
案例設(shè)計(jì)是性能測試工作的必須工作環(huán)節(jié)泽铛,案例設(shè)計(jì)的產(chǎn)出文件是《性能測試案例》。
2.2.4數(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ù)遂填。
2.2.5測試腳本開發(fā)
測試腳本開發(fā)工作就是發(fā)揮LR的時候铲觉。
測試腳本是對業(yè)務(wù)操作的程序化體現(xiàn),一個腳本一般為一項(xiàng)業(yè)務(wù)的過程描述吓坚。本活動主要為腳本的錄制(編寫)撵幽、修改和調(diào)試工作,從而保證在測試實(shí)施之前每個測試用例的腳本都能夠在單筆和少量迭代次數(shù)的條件下能夠正確執(zhí)行礁击。測試腳本開發(fā)的一般步驟如下:
? 通過錄制盐杂,或者編寫,完成腳本代碼生成哆窿。代碼生成時链烈,主要根據(jù)需求插入事務(wù),作為測試過程中統(tǒng)計(jì)交易響應(yīng)時間的單位挚躯;
? 根據(jù)測試需求强衡,進(jìn)行參數(shù)化設(shè)置;
? 設(shè)定檢查點(diǎn)码荔,根據(jù)報文內(nèi)容字段判斷交易是否正確執(zhí)行漩勤,即檢查點(diǎn)的設(shè)置在應(yīng)用層面;
? 根據(jù)測試要求確定是否設(shè)置集合點(diǎn)缩搅;
3.測試執(zhí)行階段
3.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)和回歸測試筑累。
重點(diǎn)關(guān)注:結(jié)果記錄、測試監(jiān)控丝蹭、結(jié)果分析
3.2關(guān)鍵點(diǎn)描述
3.2.1測試執(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.2.2測試監(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),透視寶可以發(fā)現(xiàn)主機(jī)資源黄锤、Web應(yīng)用搪缨、瀏覽器、APP等應(yīng)用的性能瓶頸鸵熟,如下圖所示:
監(jiān)控寶監(jiān)控頁面
透視寶主機(jī)資源監(jiān)控頁面
在執(zhí)行結(jié)束后副编,停止測試監(jiān)控,并提取監(jiān)控結(jié)果數(shù)據(jù)旅赢。
3.2.3測試結(jié)果分析
測試過程中根據(jù)前端性能測試工具顯示結(jié)果齿桃、監(jiān)控結(jié)果綜合分析出現(xiàn)的測試問題。
例如:
測試組在執(zhí)行“一般日日間交易模型”負(fù)載測試570TPS壓力時煮盼,數(shù)據(jù)庫監(jiān)控發(fā)現(xiàn)有死鎖想象短纵,具體如下:
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
**問題分析:**經(jīng)與開發(fā)一同分析僵控,原因如下:流控信息收集程序(pltflowGthDaemon)在同一柜員香到、在毫秒級并發(fā)做交易時plt_flowgather表出現(xiàn)死鎖。測試環(huán)境聯(lián)機(jī)交易使用同一個柜員號發(fā)起报破,因此出現(xiàn)概率較高悠就。
4.測試報告階段
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
4.1階段概述
測試執(zhí)行工作結(jié)束后開始撰寫性能測試報告充易。性能測試報告在發(fā)布前需要進(jìn)行評審梗脾。
4.2關(guān)鍵點(diǎn)描述
4.2.1報告撰寫
性能測試報告要內(nèi)容包括:測試目的、范圍及方法盹靴、環(huán)境描述炸茧、測試結(jié)果描述瑞妇、結(jié)果分析、結(jié)論和建議等梭冠。
4.2.2測試結(jié)果描述
測試結(jié)果的描述辕狰,應(yīng)體現(xiàn)性能測試的執(zhí)行過程,如:混合場景的容量測試結(jié)果展示中控漠,需要描述各個并發(fā)梯度下測試結(jié)果及監(jiān)控結(jié)果蔓倍;在數(shù)字形式的結(jié)果記錄中,要求小數(shù)點(diǎn)后精確3位有效數(shù)字盐捷。
4.2.3測試缺陷與問題
在性能測試分析報告中須描述測試過程發(fā)現(xiàn)的缺陷與問題偶翅,對于確認(rèn)是測試缺陷的項(xiàng)進(jìn)行風(fēng)險評估,并給出風(fēng)險提示毙驯。
4.2.4最終結(jié)果分析
測試最終結(jié)果的分析倒堕,該部分內(nèi)容應(yīng)該全面、透徹爆价、易理解且通過圖表方式表達(dá)更直觀垦巴。
例如:
編輯切換為居中
添加圖片注釋,不超過 140 字(可選)
4.2.5測試結(jié)論
測試結(jié)論是性能測試分析報告必須包括的內(nèi)容铭段。測試的結(jié)論須清晰骤宣、準(zhǔn)確回答性能測試需求中描述的各項(xiàng)指標(biāo),需全面覆蓋測試需求序愚。
5.測試總結(jié)階段
5.1階段概述
性能測試的總結(jié)工作憔披,主要對該任務(wù)的測試過程和測試技術(shù)進(jìn)行總結(jié)。性能測試工作進(jìn)入總結(jié)階段爸吮,也意味著性能測試工作臨近結(jié)束芬膝。在這個階段,時間允許的情況下應(yīng)將所有的重要測試資產(chǎn)進(jìn)行歸檔保存形娇。
認(rèn)真閱讀我文章的人锰霜,看著粉絲一路的上漲和關(guān)注,禮尚往來總是要有的桐早,如果下面這些資料你用得到的話可以直接拿走:
① 自學(xué)必備的完整項(xiàng)目 (包括源碼和環(huán)境癣缅,可以自己安裝在本地使用)
② 測試計(jì)劃模板,測試用例設(shè)計(jì)模塊哄酝,功能測試報告模塊等(涵蓋了測試工作中所有模塊)
③ 軟件測試經(jīng)典面試題(筆者根據(jù)自己10多年測試經(jīng)驗(yàn)整理)
④ selenium+Python(Java)自動化測試實(shí)戰(zhàn).pdf友存,(包括了Python以及Java自動化的所有知識點(diǎn))
⑤? 軟件測試(自動化測試)學(xué)習(xí)路線圖(從此自學(xué)有了方向不在迷茫)
⑥? 簡歷模板