性能測(cè)試個(gè)人經(jīng)驗(yàn)小結(jié)
性能測(cè)試定義:
通過一定的工具結(jié)合相應(yīng)的測(cè)試方法,對(duì)部署的系統(tǒng)應(yīng)用進(jìn)行測(cè)試,發(fā)現(xiàn)系統(tǒng)應(yīng)用內(nèi)部存在的代碼邏輯問題及應(yīng)用部署的機(jī)器硬件資源瓶頸問題及應(yīng)用部署架構(gòu)存在架構(gòu)錯(cuò)誤問題,如:網(wǎng)絡(luò)端、客戶端、服務(wù)端搭建的架構(gòu)問題;
負(fù)載測(cè)試:是一個(gè)分析軟件應(yīng)用程序和支撐架構(gòu)、模擬真實(shí)環(huán)境的使用,從而來確定能夠接收的性能過;
壓力測(cè)試(Stress Testing):是通過確定一個(gè)系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),來獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試;
性能測(cè)試的目的:
性能測(cè)試的目的主要體現(xiàn)在三個(gè)方面:以真實(shí)的業(yè)務(wù)為依據(jù),選擇有代表性的、關(guān)鍵的業(yè)務(wù)操作設(shè)計(jì)測(cè)試案例,以評(píng)價(jià)系統(tǒng)的當(dāng)前性能;當(dāng)擴(kuò)展應(yīng)用程序的功能或者新的應(yīng)用程序?qū)⒁徊渴饡r(shí),負(fù)載測(cè)試會(huì)幫助確定系統(tǒng)是否還能夠處理期望的用戶負(fù)載,以預(yù)測(cè)系統(tǒng)的未來性能;通過模擬成百上千個(gè)用戶,重復(fù)執(zhí)行和運(yùn)行測(cè)試,可以確認(rèn)性能瓶頸并優(yōu)化和調(diào)整應(yīng)用,目的在于尋找到瓶頸問題;
項(xiàng)目開發(fā)周期:初始時(shí)刻,項(xiàng)目更多關(guān)注的是功能實(shí)現(xiàn),此時(shí)功能測(cè)試顯得尤為重要,測(cè)試的提前介入,可以提前預(yù)測(cè)風(fēng)險(xiǎn),減少項(xiàng)目開發(fā)周期、節(jié)約開發(fā)成本;功能測(cè)試后的階段,個(gè)人認(rèn)為應(yīng)該是性能測(cè)試(試想,如果一個(gè)項(xiàng)目連功能都實(shí)現(xiàn)不了,更何談性能測(cè)試);在功能完畢之后,引入性能測(cè)試,通過性能測(cè)試對(duì)開發(fā)項(xiàng)目潛在的問題進(jìn)行排查(功能測(cè)試,僅僅是幾個(gè)人或者幾十個(gè)人簡(jiǎn)單的對(duì)應(yīng)用功能的一個(gè)測(cè)試,對(duì)于應(yīng)用真正上線后的大量用戶使用,應(yīng)用存在的潛在風(fēng)險(xiǎn),并不能做很好的預(yù)估,尤其是當(dāng)前空前的競(jìng)爭(zhēng)壓力下,應(yīng)用上線后的失敗,很可能導(dǎo)致整個(gè)項(xiàng)目的失敗;例如:12306訂票網(wǎng)站,使用量之大,可能全世界前所未有,調(diào)動(dòng)全國(guó)人力去測(cè)試應(yīng)用性能問題,肯定是不可能的。如果事先不經(jīng)過性能測(cè)試,貿(mào)然上線,在如此之多的用戶使用情況下,系統(tǒng)崩潰將是怎樣的一種后果。);
案例分享:編者曾經(jīng)從事過一個(gè)項(xiàng)目,伴隨項(xiàng)目的始終。前期階段,由于測(cè)試提前介入,以及項(xiàng)目開發(fā)采用的敏捷開發(fā)方式,項(xiàng)目很快在不到半年的時(shí)間內(nèi),功能近乎完美完成。項(xiàng)目經(jīng)理本著穩(wěn)妥起見,引入性能測(cè)試,對(duì)項(xiàng)目潛在的風(fēng)險(xiǎn)進(jìn)行評(píng)估,然后就搭建了一套模擬環(huán)境,專用于性能測(cè)試,搭建的模擬環(huán)境30用戶并發(fā)運(yùn)行,項(xiàng)目一點(diǎn)問題沒有,進(jìn)一步提升并發(fā)用戶數(shù),各種問題接踵而來;經(jīng)過系統(tǒng)調(diào)優(yōu)后(發(fā)布的應(yīng)用系統(tǒng)參數(shù)等),部分問題解決;為了進(jìn)一步測(cè)試實(shí)際情況下存在問題,性能測(cè)試環(huán)境由模擬環(huán)境切到了生產(chǎn)環(huán)境上,此時(shí)是大量用戶下的并發(fā),部分業(yè)務(wù)是沒有問題的,但是更多的問題是集中在涉及到工作流的一些業(yè)務(wù)場(chǎng)景上,后臺(tái)日志各種報(bào)錯(cuò);通過抓取后臺(tái)日志,對(duì)問題進(jìn)行定位分析,很快排查解決了代碼開發(fā)中存在的一些邏輯問題;代碼修復(fù)后重新上線,問題已基本不存在了;項(xiàng)目也很快結(jié)束,大大的縮短了項(xiàng)目開發(fā)周期、節(jié)約了開發(fā)成功、更好的適用于用戶;
性能測(cè)試注意點(diǎn):
錄制腳本盡量模擬實(shí)際用戶操作,在場(chǎng)景設(shè)計(jì)時(shí),盡量與實(shí)際場(chǎng)景一致,對(duì)于用戶使用比較多的業(yè)務(wù),應(yīng)著重關(guān)注;
性能測(cè)試盡可能在實(shí)際生產(chǎn)環(huán)境上進(jìn)行,普通模擬環(huán)境并不能真正發(fā)現(xiàn)實(shí)際生產(chǎn)環(huán)境下,應(yīng)用存在的問題,但是并非棄用模擬環(huán)境;
性能測(cè)試,對(duì)于應(yīng)用系統(tǒng)部署的環(huán)境上,可能需要部署一些系統(tǒng)性能監(jiān)控軟件,在軟件的選取上,盡可能降低軟件自身運(yùn)行對(duì)系統(tǒng)性能的影響;
性能測(cè)試,特別是應(yīng)用與數(shù)據(jù)庫交互的業(yè)務(wù)操作上,需要提前預(yù)制符合性能測(cè)試業(yè)務(wù)需求的數(shù)據(jù),在此基礎(chǔ)上,盡量讓環(huán)境測(cè)試環(huán)境可多次重復(fù)使用,這就要求數(shù)據(jù)、應(yīng)用可還原;
性能測(cè)試技能掌握要求:
測(cè)試環(huán)境搭建,環(huán)境搭建不僅僅是性能測(cè)試所需要具備的技能,也是測(cè)試人員所需要具備的基本技能;很多測(cè)試,包括應(yīng)用的安裝卸載,都需要測(cè)試人員具備這一技能;
應(yīng)用搭建使用協(xié)議的了解,很多情況下,性能測(cè)試人員需要錄制測(cè)試腳本,這就要測(cè)試人員對(duì)應(yīng)用采用的協(xié)議有充分的了解;
服務(wù)器架構(gòu)的了解,單一的一臺(tái)服務(wù)器、多臺(tái)服務(wù)器情況下的集群架構(gòu)等,了解服務(wù)器架構(gòu),可以為性能測(cè)試人員初期性能調(diào)優(yōu)提供幫助;
操作系統(tǒng)機(jī)能的掌握,特別是Linux操作系統(tǒng)的了解,當(dāng)前大多數(shù)的應(yīng)用部署在Linux操作系統(tǒng)之上,性能測(cè)試人員需要掌握操作系統(tǒng)知識(shí)這一基礎(chǔ)技能;
數(shù)據(jù)庫知識(shí),面對(duì)大數(shù)據(jù)時(shí)代,數(shù)據(jù)庫機(jī)能的掌握不僅僅可以為性能測(cè)試服務(wù),還可以為你今后的華麗轉(zhuǎn)型,提供良好保障,華麗的DBA;
良好的編碼思量。基礎(chǔ)的編碼知識(shí),對(duì)于編碼的了解,可以為你今后沖擊高級(jí)性能測(cè)試工程師提供有力保障,一個(gè)高級(jí)性能測(cè)試工程師,應(yīng)當(dāng)具有性能調(diào)優(yōu)這一技能,編碼就顯得尤為重要;
對(duì)于新技術(shù)、新思想的一種追求與掌握;
posted on 2014-07-30 09:38 順其自然EVO 閱讀(380) 評(píng)論(0) 編輯 收藏 所屬分類: 性能測(cè)試