開(kāi)源項(xiàng)目地址:這里查看詳情
更多學(xué)習(xí)資料:這里查看詳情
LoadRunner v11.0性能測(cè)試流程及結(jié)果分析
性能測(cè)試目的
?什么是性能測(cè)試
性能測(cè)試是通過(guò)性能的測(cè)試工具模擬多種正常、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。
負(fù)載測(cè)試和壓力測(cè)試都屬于性能測(cè)試,兩者可以結(jié)合進(jìn)行。通過(guò)負(fù)載測(cè)試,確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測(cè)試當(dāng)負(fù)載逐漸增加時(shí),系統(tǒng)各項(xiàng)性能指標(biāo)的變化情況。壓力測(cè)試是通過(guò)確定一個(gè)系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),來(lái)獲得系統(tǒng)能提供的最大服務(wù)級(jí)別的測(cè)試。
性能測(cè)試分類(lèi)及術(shù)語(yǔ)
?測(cè)試分類(lèi)
負(fù)載測(cè)試(Load Testing):負(fù)載測(cè)試是指在一定的軟件、硬件及網(wǎng)絡(luò)環(huán)境下,運(yùn)行一種或多種業(yè)務(wù),在不同虛擬用戶數(shù)量的情況下,測(cè)試服務(wù)器的性能指標(biāo)是否在用戶的要求范圍內(nèi),以此確定系統(tǒng)所能承載的最大用戶數(shù)、最大有效用戶數(shù),以及不同用戶數(shù)下的系統(tǒng)響應(yīng)時(shí)間及服務(wù)器的資源利用率。
壓力測(cè)試(Stress Testing):壓力測(cè)試是指在一定的軟件、硬件及網(wǎng)絡(luò)環(huán)境下,模擬大量的虛擬用戶向服務(wù)器產(chǎn)生負(fù)載,是服務(wù)器資源處于極限狀態(tài)下并長(zhǎng)時(shí)間連續(xù)運(yùn)行,以測(cè)試服務(wù)器在高負(fù)載情況下是否能夠穩(wěn)定工作。與負(fù)載測(cè)試獲得峰值性能數(shù)據(jù)不同,壓力測(cè)試強(qiáng)調(diào)在極端情況下系統(tǒng)的穩(wěn)定性,此時(shí)處理能力已經(jīng)不重要了。
?專(zhuān)業(yè)術(shù)語(yǔ)
場(chǎng)景(Scenario):場(chǎng)景即測(cè)試場(chǎng)景。在LoadRunner的Controller部件中,可以設(shè)計(jì)與執(zhí)行用例的場(chǎng)景,設(shè)置場(chǎng)景的步驟主要包括:在Controller中選擇虛擬用戶腳本、設(shè)置虛擬用戶數(shù)量、配置虛擬用戶運(yùn)行時(shí)的行為、選擇負(fù)載發(fā)生器(Load Generator)、設(shè)置執(zhí)行時(shí)間等。
負(fù)載發(fā)生器(Load Generator):用來(lái)產(chǎn)生壓力的機(jī)器,受Controller控制,可以使用戶腳本在不同的主機(jī)上執(zhí)行。在性能測(cè)試工作中,通常由一個(gè)Controller控制多個(gè)Load Generator以對(duì)被測(cè)試系統(tǒng)進(jìn)行加壓。
虛擬用戶(Virtual User/Vuser):對(duì)應(yīng)于現(xiàn)實(shí)中的真實(shí)用戶,使用LoadRunner模擬的用戶稱(chēng)為虛擬用戶。性能測(cè)試模擬多個(gè)用戶操作可以理解為:這些虛擬用戶在跑腳本,以模擬多個(gè)真正用戶的行為。
虛擬用戶腳本(Vuser script):通過(guò)Vuser Generator錄制或開(kāi)發(fā)的腳本。這些腳本用來(lái)模擬用戶的行為。
事務(wù)(Transaction):測(cè)試人員可以將一個(gè)或多個(gè)操作步驟定義為一個(gè)事務(wù),可以通俗的理解事務(wù)為“人為定義的一系列請(qǐng)求(請(qǐng)求可以是一個(gè)或者多個(gè))”。在程序上,事務(wù)表現(xiàn)為被開(kāi)始標(biāo)記和結(jié)束標(biāo)記圈定的一段代碼區(qū)塊。Loadrunner根據(jù)事務(wù)的開(kāi)頭和結(jié)尾標(biāo)記,計(jì)算事務(wù)響應(yīng)時(shí)間、成功/失敗的事務(wù)數(shù)。
LoadRunner三大組件
?Loadrunner安裝
Loadrunner安裝破解可以百度
?Loadrunner組成
VuGen(虛擬用戶生成器):用于錄制系統(tǒng)性能測(cè)試腳本或者手動(dòng)創(chuàng)建編寫(xiě)性能測(cè)試腳本。
Controller (控制器):用于組織、驅(qū)動(dòng)、管理和監(jiān)控負(fù)載測(cè)試。
Analysis (分析器):用于查看、分析和比較性能結(jié)果。
?性能測(cè)試工作流程
【制定測(cè)試計(jì)劃】->【創(chuàng)建測(cè)試腳本】->【設(shè)計(jì)測(cè)試場(chǎng)景】->【執(zhí)行測(cè)試場(chǎng)景】
->【分析測(cè)試結(jié)果】->【系統(tǒng)性能調(diào)優(yōu)】
制定測(cè)試計(jì)劃方案:確定測(cè)試要求,如并發(fā)用戶數(shù)量、典型業(yè)務(wù)場(chǎng)景流程;測(cè)試計(jì)劃等。
創(chuàng)建Vuser腳本:使用Virtual User Generator錄制、手動(dòng)編寫(xiě)測(cè)試腳本。
設(shè)計(jì)測(cè)試場(chǎng)景:使用LoadRunner Controller 設(shè)置測(cè)試場(chǎng)景。
執(zhí)行場(chǎng)景:使用LoadRunner Controller 驅(qū)動(dòng)、管理并監(jiān)控場(chǎng)景的運(yùn)行。
分析測(cè)試結(jié)果:使用LoadRunner Analysis 生成報(bào)告和圖表并評(píng)估性能。
創(chuàng)建測(cè)試腳本
?錄制測(cè)試腳本
?測(cè)試腳本調(diào)試
?腳本參數(shù)化
?關(guān)聯(lián)變量
例如:"token":"1JYPO_yuDuqlSa5Gd9gnUBm4ShhmEKYSCohcnc6sNNw"獲取token值
?檢查點(diǎn)設(shè)置
設(shè)置場(chǎng)景運(yùn)行腳本
?運(yùn)行測(cè)試場(chǎng)景
Controller控制臺(tái)場(chǎng)景執(zhí)行圖,各部分圖數(shù)展示:
分析測(cè)試結(jié)果
?性能指標(biāo)
TPS:Transaction per second 指應(yīng)用系統(tǒng)每秒鐘處理完成的交易數(shù)量,是估算應(yīng)用系統(tǒng)性能的重要依據(jù)。一般而言,評(píng)價(jià)系統(tǒng)性能均以每秒完成的技術(shù)交易的數(shù)量來(lái)衡量。系統(tǒng)整體處理能力取決于處理能力最低模塊的TPS值。
HPS:Hit per second 每秒點(diǎn)擊次數(shù)指一秒鐘的時(shí)間內(nèi)用戶對(duì)web頁(yè)面的鏈接、提交按鈕等點(diǎn)擊總和。HPS一般與 TPS成正比關(guān)系,是B/S系統(tǒng)中非常重要的性能指標(biāo)之一。
事務(wù)響應(yīng)時(shí)間:Transaction Response Time 指腳本中開(kāi)始到結(jié)束的腳本測(cè)試過(guò)程中的響應(yīng)時(shí)間。
資源利用率:資源利用率是指系統(tǒng)在負(fù)載運(yùn)行期間,數(shù)據(jù)庫(kù)服務(wù)器、應(yīng)用服務(wù)器、web服務(wù)器的CPU、內(nèi)存、硬盤(pán)、外置存儲(chǔ),網(wǎng)絡(luò)帶寬的使用率。
?結(jié)果分析
通過(guò)執(zhí)行場(chǎng)景得到結(jié)果的相關(guān)數(shù)據(jù):TPS、響應(yīng)時(shí)間、CPU、IO等。根據(jù)性能測(cè)試方案中提到的性能指標(biāo),確認(rèn)結(jié)果是否符合要求。不符合則需要找到性能瓶頸并優(yōu)化。
配置項(xiàng)檢查:中間件活躍線程數(shù)、JVM相關(guān)內(nèi)存分配、數(shù)據(jù)庫(kù)連接池等
硬件資源:增加CPU、內(nèi)存等硬件資源(資源不夠情況下)以及增加服務(wù)器數(shù)量
SQL語(yǔ)句以及代碼分析:通過(guò)分析SQL和代碼,找出邏輯復(fù)雜執(zhí)行效率低的SQL或代碼并修改
系統(tǒng)架構(gòu)分析:風(fēng)險(xiǎn)較大。(一般由架構(gòu)師執(zhí)行)