引言
在進(jìn)入今天的內(nèi)容前, 先想幾個(gè)問(wèn)題:
什么是測(cè)試計(jì)劃?
什么是性能測(cè)試計(jì)劃?
在你的性能知識(shí)領(lǐng)域中, 你認(rèn)為性能測(cè)試計(jì)劃應(yīng)該包含哪些內(nèi)容?
因?yàn)樽鳛槠髽I(yè)的金牌面試官, 經(jīng)過(guò)我面試的求職者,沒(méi)有四位數(shù),至少也有個(gè)位數(shù)。無(wú)論是性能測(cè)試的小白還是高級(jí)性能測(cè)試工程師,幾乎都沒(méi)有認(rèn)真的或者完整的去實(shí)施過(guò)性能測(cè)試計(jì)劃。
![]()
其實(shí),導(dǎo)致這種現(xiàn)在的原因,無(wú)非兩種:
1、企業(yè) 不太注重 性能測(cè)試;
2、測(cè)試人員本身的能力不足。
看到這里, 你是不是會(huì)說(shuō), 你看:不是我不專業(yè),不是我不想寫專業(yè)的性能測(cè)試計(jì)劃,只是我的企業(yè)對(duì)性能測(cè)試計(jì)劃的要求不高。
作為一名性能測(cè)試工程師,你的專業(yè)度,一定是高于企業(yè)里的其他人,所以,你要做的,就是把你的專業(yè),無(wú)限的放大,來(lái)完善企業(yè)中的空白。
切勿有這種想法:反正BOSS不專業(yè), 我隨便寫幾段話糊弄過(guò)去就行了。同時(shí),也為了能讓你在與面試官的聊天中,體現(xiàn)你的專業(yè),讓面試官"折服"你,我寫了這篇文章,希望你能學(xué)以致用。
什么是性能測(cè)試計(jì)劃
說(shuō)道什么是性能測(cè)試計(jì)劃, 我們就不得不提,什么是測(cè)試計(jì)劃。引用官方文檔:
描述了要進(jìn)行的測(cè)試活動(dòng)的范圍、方法、資源和進(jìn)度的文檔;
是對(duì)整個(gè)信息系統(tǒng)應(yīng)用軟件組裝測(cè)試和確認(rèn)測(cè)試;
它確定測(cè)試項(xiàng)、被測(cè)特性、測(cè)試任務(wù)、誰(shuí)執(zhí)行任務(wù)、各種可能的風(fēng)險(xiǎn);
測(cè)試計(jì)劃可以有效預(yù)防計(jì)劃的風(fēng)險(xiǎn),保障計(jì)劃的順利實(shí)施。
在項(xiàng)目的前期,測(cè)試計(jì)劃是必須要做的,也是一名軟件測(cè)試管理者必須具備的能力。一份完整的測(cè)試計(jì)劃,可以:
為測(cè)試各項(xiàng)活動(dòng)制定一個(gè)現(xiàn)實(shí)可行的、綜合的計(jì)劃,包括每項(xiàng)測(cè)試活動(dòng)的對(duì)象、范圍、方法、進(jìn)度和預(yù)期結(jié)果;
確定測(cè)試所需要的時(shí)間和資源,以保證其可獲得性、有效;
確立每個(gè)測(cè)試階段測(cè)試完成以及測(cè)試成功的標(biāo)準(zhǔn)、要實(shí)現(xiàn)的目標(biāo);
識(shí)別出測(cè)試活動(dòng)中各種風(fēng)險(xiǎn),并消除可能存在的風(fēng)險(xiǎn),降低由不可能消除的風(fēng)險(xiǎn)所帶來(lái)的損失。
你看, 測(cè)試計(jì)劃的優(yōu)勢(shì)這么多:
向上:領(lǐng)導(dǎo)做宏觀調(diào)控;
向下:測(cè)試人員了解項(xiàng)目不同階段的測(cè)試任務(wù)。
你還覺(jué)得測(cè)試計(jì)劃的不重要嗎?
知道了測(cè)試計(jì)劃,那我們?cè)賮?lái)聊一聊性能測(cè)試計(jì)劃。簡(jiǎn)單的一句話概括:就是針對(duì)項(xiàng)目的性能制定的測(cè)試計(jì)劃。
測(cè)試計(jì)劃包含整體測(cè)試的各個(gè)階段:接口、功能、性能、自動(dòng)化、集成等……
而性能測(cè)試計(jì)劃,就是針對(duì)性能測(cè)試的計(jì)劃設(shè)定,理解了性能測(cè)試計(jì)劃,那:
性能測(cè)試計(jì)劃包含哪些內(nèi)容?
以及如何編寫有效的性能測(cè)試計(jì)劃呢?
如何讓你的性能測(cè)試計(jì)劃符合實(shí)際的項(xiàng)目呢?
帶著這些疑問(wèn),我們來(lái)逐一聊一聊。
性能測(cè)試計(jì)劃包含的內(nèi)容
說(shuō)到性能測(cè)試計(jì)劃, 我先上一個(gè)圖:
![]()
看到這份性能測(cè)試計(jì)劃, 是不是感覺(jué)似曾相識(shí)。是不是與你編寫的性能測(cè)試計(jì)劃的方案一樣?是不是覺(jué)得,這些內(nèi)容,已經(jīng)足夠了?
如果你是這樣想,那么,還請(qǐng)你思考以下幾個(gè)問(wèn)題:
如果沒(méi)有性能目標(biāo),你能否進(jìn)行性能測(cè)試;
如果沒(méi)有性能場(chǎng)景和性能指標(biāo),你能否編寫性能腳本;
如果沒(méi)有系統(tǒng)架構(gòu)圖, 你能否快速的了解系統(tǒng)架構(gòu)邏輯;
如果沒(méi)有部署監(jiān)控,你能否快速的定位及分析性能瓶頸。
你看,這些都是在實(shí)際的性能測(cè)試中需要的,那肯定就需要在性能測(cè)試計(jì)劃中列出來(lái)。否則, 如何進(jìn)行腳本設(shè)計(jì),如何進(jìn)行監(jiān)控部署,如何發(fā)現(xiàn)問(wèn)題,分析性能瓶頸呢?
按照上面的思路, 我再提供一張性能測(cè)試計(jì)劃圖,來(lái)對(duì)比一下:
![]()
通過(guò)這兩張圖的對(duì)比,可以發(fā)現(xiàn),第二張圖更完整,不管向上對(duì)老板,向下對(duì)員工,都是一目了然。所以,你可以發(fā)現(xiàn),一份好的性能測(cè)試計(jì)劃,即使給外行人看,也能知道要目的和要做的內(nèi)容。
這時(shí)候,你可能有疑問(wèn),我這份性能測(cè)試計(jì)劃這么多內(nèi)容,那要寫多長(zhǎng)時(shí)間呢?每一項(xiàng)的內(nèi)容,又要如何來(lái)寫呢?如何讓一個(gè)性能測(cè)試小白,快速掌握性能測(cè)試計(jì)劃的編寫要領(lǐng)呢?
這里,我就逐一進(jìn)行拆解。
背景
先描述項(xiàng)目背景, 再闡述本次項(xiàng)目性能測(cè)試背景。
性能目標(biāo)
結(jié)合性能測(cè)試的場(chǎng)景,設(shè)定測(cè)試目標(biāo),例如:
根據(jù)基準(zhǔn)場(chǎng)景:測(cè)試某接口的最大容量;
根據(jù)穩(wěn)定性場(chǎng)景:測(cè)試某接口的最大運(yùn)行時(shí)間。
壓測(cè)范圍
根據(jù)系統(tǒng)的主流程,篩選需要壓測(cè)的接口,如:
計(jì)算接口;
同步接口;
其他主要接口。
啟停準(zhǔn)則
這里主要包含:
啟動(dòng)準(zhǔn)則:完事具備,需要開始進(jìn)行性能測(cè)試;
結(jié)束準(zhǔn)則:所有測(cè)試任務(wù)都完成,結(jié)束測(cè)試;
暫停準(zhǔn)則:在測(cè)試過(guò)程中,因測(cè)試環(huán)境受到干擾無(wú)法進(jìn)行測(cè)試,導(dǎo)致暫停測(cè)試;
再啟動(dòng)準(zhǔn)則:解決完測(cè)試過(guò)程中的問(wèn)題,可以繼續(xù)進(jìn)行測(cè)試。
性能指標(biāo)
包含內(nèi)容,如下:
目標(biāo)接口;
目標(biāo)TPS;
TPS標(biāo)準(zhǔn)方差;
響應(yīng)時(shí)間;
響應(yīng)時(shí)間標(biāo)注方差。
系統(tǒng)架構(gòu)圖
系統(tǒng)邏輯架構(gòu)圖;
系統(tǒng)部署架構(gòu)圖。
壓測(cè)前準(zhǔn)備
主要是硬件資源,例如:
服務(wù)器臺(tái)數(shù):根據(jù)實(shí)際項(xiàng)目需要進(jìn)行申請(qǐng);
服務(wù)器用途:數(shù)據(jù)庫(kù)、緩存、集群、應(yīng)用服務(wù)、監(jiān)控服務(wù)部署等等;
服務(wù)器配置:需要根據(jù)上線的服務(wù)器配置一樣。
工具準(zhǔn)備
壓測(cè)工具:實(shí)際壓測(cè)的工具,例如:Jmeter、Ladrunner、Lcust等;
監(jiān)控工具:Prmethues、Grafana、Kafka、Lgstash、Spring Bt Admin等。
數(shù)據(jù)準(zhǔn)備
測(cè)試腳本數(shù)據(jù)的準(zhǔn)備:
讀取csv文件的數(shù)據(jù);
直接寫入數(shù)據(jù)庫(kù)的數(shù)據(jù)。
性能設(shè)計(jì)
包含兩部分,即:
性能測(cè)試策略:連續(xù)、遞增策略;
業(yè)務(wù)場(chǎng)景設(shè)計(jì):4種場(chǎng)景,如:基準(zhǔn)場(chǎng)景、容量場(chǎng)景、穩(wěn)定性場(chǎng)景、異常場(chǎng)景。
監(jiān)控設(shè)計(jì)
包含兩部分,如下:
全局監(jiān)控設(shè)計(jì):如 Prmetheus、Grafana、Spring Bt Admin等;
定向監(jiān)控設(shè)計(jì):對(duì)具體的應(yīng)用、數(shù)據(jù)庫(kù)等進(jìn)行監(jiān)控分析,如 jstack、mysqlreprt等。
項(xiàng)目組織架構(gòu)
參與性能測(cè)試的項(xiàng)目組成員:
PM
架構(gòu)師
開發(fā)工程師
性能測(cè)試工程師
性能腳本編寫工程師:性能測(cè)試分析工程師、運(yùn)維
成果輸出
包含三部分內(nèi)容,即
過(guò)程性輸出:性能測(cè)試腳本、性能缺陷列表;
性能測(cè)試報(bào)告;
性能調(diào)優(yōu)報(bào)告。
項(xiàng)目風(fēng)險(xiǎn)分析
主要通過(guò)以下幾點(diǎn)進(jìn)行分析:
業(yè)務(wù)層的需求是否明確;
環(huán)境問(wèn)題;
數(shù)據(jù)問(wèn)題;
業(yè)務(wù)模型;
人員問(wèn)題等等。
你看,我把性能測(cè)試計(jì)劃每一項(xiàng)的內(nèi)容進(jìn)行拆解, 這樣是不是就通俗易懂了。但是這個(gè)顆粒度,我覺(jué)得作為一名測(cè)試經(jīng)驗(yàn)不夠豐富的性能工程師來(lái)說(shuō),還是有些迷茫。
在下篇文章中,我會(huì)把上面的內(nèi)容再進(jìn)行拆分并落地,讓你徹底掌握編寫性能測(cè)試計(jì)劃的方法。
最后:在我的V :atstudy-js,可以免費(fèi)領(lǐng)取一份10G軟件測(cè)試工程師面試寶典文檔資料。以及相對(duì)應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!其中包括了有基礎(chǔ)知識(shí)、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫(kù)、抓包工具專題、接口測(cè)試工具、測(cè)試進(jìn)階-Python編程、Web自動(dòng)化測(cè)試、APP自動(dòng)化測(cè)試、接口自動(dòng)化測(cè)試、測(cè)試高級(jí)持續(xù)集成、測(cè)試架構(gòu)開發(fā)測(cè)試框架、性能測(cè)試、安全測(cè)試等。
![]()
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.