壓測噩夢后的小感想
近幾天有幸接到并完成人生中的***個壓力測試,2.5天的時間,從0到現(xiàn)在,感觸頗為復(fù)雜,特意記錄一下,捋一捋這幾天的收獲。我想分以下幾點展開本文:
- 接受壓力測試任務(wù)時的狀態(tài)
- 執(zhí)行壓力測試的過程
- ***對于這次經(jīng)歷的一個小總結(jié)
- 下一個階段想做的一點事情
剛接到任務(wù)時的凌亂
上周四下午,項目組讓復(fù)測一個功能,跟領(lǐng)導(dǎo)說了這事兒,本以為手動測測一下功能的瓶頸就夠了,結(jié)果快下班的時候,領(lǐng)導(dǎo)說讓寫一個腳本來壓一壓這個功能。其實,從一開始踏進(jìn)測試大門,我就堅定要學(xué)做壓力測試,并且還在寫績效合同時跟領(lǐng)導(dǎo)表達(dá)了我這一意向??扇缃瘢蝗唤拥筋I(lǐng)導(dǎo)這樣的指示,就兩個字——凌亂。
一直只知道loadrunner是做性能測試,但是目前還不知道怎么做,而且,似乎還有點復(fù)雜,什么場景設(shè)計,一看就懵。后來,同學(xué)推薦說可以用jmeter,說很好學(xué)用起來easy,我就下了個jmeter,裝了后,看看發(fā)現(xiàn)也是先錄制腳本,可以下載個badboy來錄制腳本,跟jmeter關(guān)聯(lián)可以導(dǎo)出腳本到j(luò)meter,也可以直接用jmeter來錄制。于是down下來jmeter,根據(jù)網(wǎng)絡(luò)上的教程裝了一下,研究了一下該怎么設(shè)置,怎么使用,自己也試著錄制,但是還是不是很明朗。后來同事說公司都統(tǒng)一使用LoadRunner,我就立馬再裝LR了,還好,裝成功了,在我本機(jī)。于是LR***站便開始了。
執(zhí)行壓力測試的過程
自己從書上、網(wǎng)上學(xué)習(xí)LR的腳本錄制/腳本重放/controllor的使用/怎樣設(shè)計場景,以及對于我現(xiàn)在要做的這個壓力測試,要如何設(shè)計場景才比較合適。
首先看到網(wǎng)上以及書上的負(fù)載處理的案例,我意識到,領(lǐng)導(dǎo)說的模擬連續(xù)向系統(tǒng)導(dǎo)入數(shù)據(jù),其實更好的或者說更正確的描述應(yīng)該還是多用戶并發(fā)向系統(tǒng)執(zhí)行極限數(shù)據(jù)量導(dǎo)入操作。于是,跟開發(fā)的同事確認(rèn)了,目前除了限制5個用戶,其余響應(yīng)時間等參數(shù),用戶都未提出需求,而只是我們給用戶做了一些限制。明確了負(fù)載的目的:5個用戶并發(fā)分別向系統(tǒng)導(dǎo)入15*100*6*400的這種數(shù)據(jù),看程序運行是否穩(wěn)定/服務(wù)器運行是否穩(wěn)定(資源占用情況)。
1、腳本錄制
在錄制過程中,又意識到每個用戶登錄時需要輸入驗證碼,但是驗證碼每次都是變化的,于是借鑒之前自動化測試,也讓該項目組同事將驗證碼屏蔽或者改為***驗證碼了。自己就開始錄制腳本,創(chuàng)建事務(wù),插入集合點、檢查點。***遍都會比較生疏不確定,但大膽操作兩邊就更有底氣了。
2、參數(shù)化
書上一直有提到的參數(shù)自動化,這一步還是挺模糊,初次接觸壓測,還以為參數(shù)化是要定義參數(shù)并賦值這樣的。后來書上內(nèi)容太多,于是請教了同事,將參數(shù)化弄明白并完成了參數(shù)化。
3、腳本重放
完成參數(shù)化,便replay一遍,結(jié)果是NO ERROR DETECT. 欣喜地進(jìn)行下一步,也是最最混沌的——場景設(shè)計。
4、場景設(shè)計
設(shè)計幾個用戶、如何初始化用戶(如幾秒鐘初始化一個)、何時作為集合點***、是讓其循環(huán)跑一段時間還是循環(huán)跑完任務(wù)就結(jié)束。其實,確定了這些,場景設(shè)計也差不多了。
5、使用controllor執(zhí)行腳本
在這個過程中,時常會出現(xiàn)一些問題,比如找不到文件、或者文件是個空文件、或者timeout。
對于找不到文件的問題,百度后發(fā)現(xiàn)是錄制時文件在哪里不重要,重要的是在重放腳本、controllor中跑腳本時,文件必須要在腳本的目錄下。
對于文件是個空文件的問題,經(jīng)常是因為錄制的問題,必須保證錄制時文件的導(dǎo)入執(zhí)行是正常的,對于功能上的正常報錯,在腳本錄制過程中若出現(xiàn)便會帶來問題。只能重錄了。
而對于timeout的問題,就是http請求/響應(yīng)的timeout、還有一個server 響應(yīng)時間的設(shè)大一點。***次改為1000時,發(fā)現(xiàn)還可以,后來改為1500都還是不行,不得不改為了10000😓??偹闶强梢粤?。
6、Analyse
這一塊兒,應(yīng)該是性能測試最難的部分,如何評估、優(yōu)化系統(tǒng)性能——我只能說我還只是個菜鳥💔💔。只能請假一些有經(jīng)驗的公司同事一致認(rèn)同的性能測試大神來幫助我了。對于其中有不合理的圖表情況,我就重新造數(shù)據(jù)再跑了一遍腳本,終究與其余場景結(jié)果達(dá)成了一致。
終于能出報告了,卻發(fā)現(xiàn),忘了監(jiān)控服務(wù)器資源使用情況。。悲了個大劇?。?!于是,在網(wǎng)上查怎么使用LR監(jiān)控遠(yuǎn)程服務(wù)器。發(fā)現(xiàn)有一步net user這個指令,成功地提示我53系統(tǒng)錯誤,按照網(wǎng)上查的方法找到服務(wù)器的lanmanserver開啟,😄😄,打開服務(wù)器的管理服務(wù)里,根本找不到這個玩意兒,好吧,為了快點出報告,我就先肉眼觀察cou使用情況了。。大神告訴我,我現(xiàn)在最適合肉眼觀察,使用LR遠(yuǎn)程監(jiān)控對于菜鳥來說還是要求有點高。當(dāng)然,這也將成為了我下一步必須克服的一個困難。
小總結(jié)
對于本次經(jīng)歷,我有兩點想說:
***,遇到一個新的任務(wù)或者問題,有壓力,也正是成長的時候,常在舒適區(qū),很 難進(jìn)步;
第二,做事情***要有條理,列好清單、流程,還得細(xì)心。比如測試過程中,我就是一不小心把文件名寫錯一個數(shù)字。
下一階段想做的事
a、能使用LR執(zhí)行遠(yuǎn)程監(jiān)控服務(wù)器,
b、熟練使用LR的analyse功能,為項目帶來性能上的優(yōu)化