連載|用盡荒洪之力總結(jié)之Loadrunner性能測試

上篇回顧:聽說軟件測試猛拴,錢多活少離家近

軟件測試火的一塌糊涂的時候,大家心里估計在顫抖霞捡。不就是點點系統(tǒng)嘛坐漏,能有什么大出息,軟件測試做幾年以后大家水平都差不多碧信,如何才能不被快速取代赊琳,去做性能測試呀。

測試做久了就會知道砰碴,性能測試是測試人員的終極夢想躏筏,這是為什么呢?工資高呀呈枉。我有朋友做了3年功能測試趁尼,感覺太機械,然后報培訓(xùn)班學(xué)習(xí)性能測試猖辫,目前從事性能測試工作酥泞。

萬事開頭難,我從想做性能測試到現(xiàn)在5個年頭過去了啃憎,現(xiàn)在把做性能測試過程中的迷茫芝囤、堅持、到后來的被認可寫下來荧飞,紀念下那年的加班歲月凡人。

我一直認為自己很幸運,在校期間就找了份實習(xí)工作叹阔,做金融方面的測試挠轴。銀行系統(tǒng)涉及到錢,所以從公司到銀行很重視測試耳幢。當(dāng)然了現(xiàn)在互聯(lián)網(wǎng)時代岸晦,性能測試就更重要了。

大三暑期實習(xí)時做了軟件測試睛藻,培訓(xùn)老師說軟件測試分為功能測試和性能測試启上,最牛逼的是做性能測試,那簡直是受萬人敬仰店印。

剛好學(xué)校開始選畢設(shè)課題冈在,看到了loadrunner性能測試題目,帶著想成為行業(yè)的大拿按摘,受到膜拜的幻想包券,于是乎選擇了這個課題纫谅,仿佛看到了未來做性能測試的樣子。

由于在學(xué)校老師沒教過這個溅固,所以得自學(xué)付秕,就連loadrunner工具也得自己在網(wǎng)上下載,loadrunner是大型商業(yè)軟件侍郭,小公司用的大都是開源工具询吴,公司做銀行系統(tǒng),所以性能測試是重中之重亮元,正好有此軟件猛计。

第一次聽培訓(xùn)老師講性能,特別認真的帶著本和筆坐第一排聽苹粟。培訓(xùn)老師在公司待10多年了有滑,講的很好跃闹∏断鳎“80%的交易是20%的時間完成的、tps望艺、tps拐點苛秕、腳本、并發(fā)用戶數(shù)找默、最大并發(fā)用戶數(shù)艇劫、單交易場景、混合交易場景等”聽的云里霧里惩激。

實習(xí)時在公司培訓(xùn)班待了一周店煞,做了個小型銀行系統(tǒng),大概只有賬戶查詢风钻、開戶顷蟀、存款貸款等小模塊。系統(tǒng)用于是乎我就在電腦里安裝了這個系統(tǒng)做性能測試骡技。

公司有配置庫鸣个,文檔包括各種類型,恰好有性能測試文檔布朦。由于公司有2人做性能測試囤萤,常年在客戶現(xiàn)場出差,所以一切都得自學(xué)是趴,帶我畢設(shè)的老師也是沒做過這方面的工作涛舍。

度娘里找答案,清一色全是loadrunner的工具使用唆途,如何設(shè)置參數(shù)富雅、如何錄制腳本缤削、腳本參數(shù)化等。到了這步就木有下文了吹榴,寶寶心里苦亭敢。

我最想看到的是錄制腳本后腳本運行成功(數(shù)據(jù)庫里有條成功數(shù)據(jù))、如何設(shè)置場景图筹、如何獲取有用的數(shù)據(jù)帅刀、以及如何測出瓶頸、以及如何解決瓶頸远剩、最后出份漂亮的性能測試報告扣溺。心理想著等我哪天做完性能測試一定和大家分享有用的知識。

現(xiàn)在回想起來瓜晤,當(dāng)初真是太可憐了锥余,錄制腳本后,回放錄制的視頻痢掠,界面一直顯示登錄超時驱犹,登陸腳本都無法登錄系統(tǒng),更別提之后的測試腳本了足画。

大四畢設(shè)做的很不好雄驹,沒人指導(dǎo),自己在瞎琢磨淹辞,沒有寫過測試腳本医舆,畢設(shè)答辯內(nèi)容很空洞,勉強通過象缀。

由于一直有做性能測試的心思蔬将,離開了第一家公司。之后找工作時拒絕了二包公司央星、拒絕了單純的界面測試霞怀,找了家功能測試、性能測試都涉及的等曼。然后就一直待這家公司里烦。

我主要做理財項目,涉及功能測試禁谦、接口測試胁黑、壓力測試、穩(wěn)定性測試州泊。

2014年銀行理財忽然賣的很火丧蘸,某城商行,系統(tǒng)承受不了壓力,然后要做壓力測試力喷。我作為項目組唯一的測試員刽漂,這項工作落在我頭上。真是又緊張又興奮弟孟,開心的是可以親手做性能測試了贝咙,緊張的是之前只有點基礎(chǔ)。

就像如開發(fā)人員初次學(xué)習(xí)寫代碼拂募,運行helloworld一樣庭猩,我首先得錄制登錄腳本,只要這個調(diào)通其他的也就迎刃而解陈症。

web系統(tǒng)蔼水,基于web(HTTP/HTML)腳本很快錄好了,可是運行顯示登錄超時录肯,百思不得其解趴腋,領(lǐng)導(dǎo)下命令今晚必須出結(jié)果,怎么辦论咏,打電話求助公司的性能測試部門优炬,他讓我在腳本里做了個關(guān)聯(lián)就可以了。

腳本調(diào)通后潘靖,運行腳本穿剖,查看日志顯示交易成功蚤蔓。保險期間我寫了個select語句查詢流水表卦溢,金額、賬戶都正確秀又,就是剛執(zhí)行腳本后插入的那條數(shù)據(jù)单寂。

終于成功了一把,最終熬到凌晨2點吐辙,設(shè)置了系統(tǒng)運行8小時宣决,回家睡覺去了。第二天查詢數(shù)據(jù)庫昏苏,成功了10萬多條沒有報錯尊沸,簡直好驚喜。

由于知識有限贤惯,第二天買了本性能測試書洼专,那段時間,只要閑下來就會錄制其他交易的腳本孵构,學(xué)習(xí)到了腳本參數(shù)化屁商、關(guān)聯(lián)等。那年別的項目也做性能颈墅,所以我學(xué)習(xí)了web蜡镶、socket雾袱、xml協(xié)議的腳本。

測試腳本

做性能測試第一步就是寫測試腳本官还,一個完美的腳本是成功的一半芹橡。

腳本分為2種模式:錄制、手動編寫望伦。

由于系統(tǒng)是web類型的僻族,所以直接用工具錄制,關(guān)鍵是當(dāng)初也不會寫啊屡谐。

圖片發(fā)自簡書App

腳本參數(shù)化:

添加事務(wù)

圖片發(fā)自簡書App

loadrunner11以上版本不添加事務(wù)述么,場景執(zhí)行后tps無值。

關(guān)聯(lián)

關(guān)聯(lián)分為自動關(guān)聯(lián)愕掏、手動關(guān)聯(lián)度秘,適合復(fù)核交易,通過流水號查詢交易饵撑,適用于http協(xié)議剑梳。

測試數(shù)據(jù)參數(shù)化

圖片發(fā)自簡書App

測試腳本中為了保證流水號的唯一性,添加時間數(shù)字+時間毫秒設(shè)置滑潘。

日志設(shè)置

f4設(shè)置log垢乙,選擇參數(shù)等。

圖片發(fā)自簡書Ap

腳本運行后语卤,日志框會顯示交易狀態(tài)追逮,遇到有參數(shù)時寫print語句,日志里可以看到參數(shù)取值是否正確粹舵。

socket腳本模版

xml腳本钮孵,保證發(fā)起報文和接收報文都是明文,接收端如果是密文眼滤,測試時先解密再測試巴席。

圖片發(fā)自簡書App

發(fā)送報文,報文長度必須正確诅需,接收報文內(nèi)容可以為空漾唉,長度數(shù)字寫大點,確保大于實際的報文長度堰塌。

公司針對測試接口有模擬工具所以可以直接錄制赵刑,也可以寫腳本。首先明白接口用的是什么報文然后再寫腳本蔫仙。

現(xiàn)在給大家一份性能測試報告

1料睛、測試背景

首先確保功能測試覆蓋率達到100%,缺陷通過率大于95%,其次做性能測試恤煞。銀行理財產(chǎn)品有銀行兜底屎勘,所以賣的很火,銀行發(fā)產(chǎn)品后客戶集中在一段時間搶購居扒,導(dǎo)致系統(tǒng)壓力概漱,出現(xiàn)大量失敗的交易,所以為了保證系統(tǒng)長期運行的穩(wěn)定性喜喂,針對典型交易做性能測試瓤摧。

2、測試目標

獲取系統(tǒng)的處理性能指標玉吁,滿足當(dāng)前生產(chǎn)系統(tǒng)及未來3年的業(yè)務(wù)發(fā)展需要照弥。

發(fā)現(xiàn)性能瓶頸,協(xié)助開發(fā)人員進行性能調(diào)優(yōu)进副。

3这揣、測試指標

平均事物響應(yīng)時間ART:

響應(yīng)時間遵循2、5影斑、8s原則给赞,本次測試響應(yīng)時間小于等于8s;

并發(fā)用戶數(shù):

現(xiàn)在高峰日操作人數(shù)500人矫户,20%的并發(fā)量計算片迅,高峰日并發(fā)用戶數(shù)大于等于100

規(guī)劃未來2年高峰操作達到600人,20%的并發(fā)量皆辽,并發(fā)用戶數(shù)大于等于120

規(guī)劃未來三年操作人數(shù)達到700人柑蛇,20%的并發(fā)量,用戶數(shù)大于等于140膳汪。

資源使用指標:

cpu使用率小于等于80%

內(nèi)存使用率小于等于80%

磁盤交換率小于等于80%

tps值:

每秒處理的業(yè)務(wù)筆數(shù)唯蝶,80%的交易在20%的時間完成,每天交易量10萬筆遗嗽,一天8小時

tps=80%*100000/(8*3600*20%)=13.89

并發(fā)交易成功率:大于等于95%

4、選取典型交易

性能測試主要針對交易量大的交易鼓蜒,如購買痹换、贖回、份額查詢都弹。

5娇豫、測試工具

loadrunner8.1

nmon監(jiān)測資源使用率,磁盤畅厢、cpu冯痢、內(nèi)存等。

6、測試類型

基準測試

單交易單用戶測試浦楣,典型交易在無壓力情況下獲取單筆交易處理的耗時袖肥,為之后的并發(fā)測試提供一個數(shù)據(jù)參考,一個用戶跑5分鐘振劳。

驗證測試腳本及測試參數(shù)的正確性椎组。

獲取單筆交易的性能數(shù)據(jù),主要是單筆交易平均響應(yīng)時間历恐、TPS寸癌。

并發(fā)測試

主要分為:單交易多用戶測試和混合交易多用戶測試,由于最后要跑穩(wěn)定性弱贼,本次只做單交易多用戶測試蒸苇。

每個典型交易通過單交易多用戶迭代執(zhí)行,獲取性能指標吮旅,比如TPS填渠、ART、系統(tǒng)資源使用情況鸟辅,根據(jù)需要進行性能調(diào)優(yōu)氛什。

tps出現(xiàn)拐點時,繼續(xù)測2組數(shù)據(jù)匪凉,如果這2組數(shù)據(jù)tps明顯下降枪眉,此時就測出了最大并發(fā)用戶數(shù)。

備注:交易數(shù)據(jù)庫有當(dāng)前流水表和歷史流水表再层,所以每次跑場景前刪除當(dāng)前流水表的數(shù)據(jù)贸铜。

穩(wěn)定性測試

多交易多用戶的并發(fā)混合模式,對被測系統(tǒng)進行長時間的穩(wěn)定測試聂受,獲取持續(xù)加壓下的性能指標蒿秦。考察是否會出現(xiàn)宕機蛋济、響應(yīng)時間變長棍鳖、交易成功率下降、資源使用率達99%的情況碗旅。

選取單交易并發(fā)時的最大用戶并發(fā)數(shù)取中間值跑穩(wěn)定性渡处。

7、測試總結(jié)

目前我遇到的瓶頸和解決方式

1祟辟、磁盤交換率達到99%医瘫;

2、內(nèi)存使用率5%左右旧困;加大系統(tǒng)進程數(shù)并增加并發(fā)用戶數(shù)醇份。

3稼锅、內(nèi)存使用率高達99%;經(jīng)查看系統(tǒng)實時刷日志僚纷,原因是某個可有可無的參數(shù)沒配置矩距。

4、單交易sql執(zhí)行時間2s畔濒;增加索引剩晴。

5、單交易執(zhí)行時間過長侵状;每次sum金額時赞弥,交易太多,執(zhí)行時間過長趣兄,增加一張表每做一條交易sum一次绽左,分擔(dān)了壓力。

6艇潭、tps值明顯在某個時間點降低拼窥,經(jīng)查詢當(dāng)前流水表數(shù)據(jù)大于100萬條;這個目前無解得對數(shù)據(jù)庫進行調(diào)優(yōu)蹋凝。

實踐出真知鲁纠,知識有限,就分享這么多了鳍寂,寫這篇文章已經(jīng)用盡了我的荒洪之力改含。



小白測試系列連載中…

有些文章會有一些邏輯顛倒問題,我實時發(fā)現(xiàn)實時修改迄汛,簡書是最新版捍壤。

謝謝閱讀,如文中有一個字一句話觸動到你鞍爱,留個喜歡可好鹃觉?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市睹逃,隨后出現(xiàn)的幾起案子盗扇,更是在濱河造成了極大的恐慌,老刑警劉巖唯卖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粱玲,死亡現(xiàn)場離奇詭異,居然都是意外死亡拜轨,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門允青,熙熙樓的掌柜王于貴愁眉苦臉地迎上來橄碾,“玉大人卵沉,你說我怎么就攤上這事》ㄉ” “怎么了史汗?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長拒垃。 經(jīng)常有香客問我停撞,道長,這世上最難降的妖魔是什么悼瓮? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任戈毒,我火速辦了婚禮,結(jié)果婚禮上横堡,老公的妹妹穿的比我還像新娘埋市。我一直安慰自己,他們只是感情好命贴,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布道宅。 她就那樣靜靜地躺著,像睡著了一般胸蛛。 火紅的嫁衣襯著肌膚如雪污茵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天葬项,我揣著相機與錄音泞当,去河邊找鬼。 笑死玷室,一個胖子當(dāng)著我的面吹牛零蓉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播穷缤,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼敌蜂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了津肛?” 一聲冷哼從身側(cè)響起章喉,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎身坐,沒想到半個月后秸脱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡部蛇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年摊唇,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涯鲁。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡巷查,死狀恐怖有序,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情岛请,我是刑警寧澤旭寿,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站崇败,受9級特大地震影響盅称,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜后室,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一缩膝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咧擂,春花似錦逞盆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至贸桶,卻和暖如春舅逸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背皇筛。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工琉历, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人水醋。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓旗笔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拄踪。 傳聞我的和親對象是個殘疾皇子蝇恶,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容