1.0. 前言
? 在性能測(cè)試中,牽扯導(dǎo)了許多比較雜的知識(shí)點(diǎn),這里將給大家說(shuō)一下,loadrunner性能測(cè)試前需要做的一些準(zhǔn)備,本節(jié)中我們將先從性能測(cè)試的一些術(shù)語(yǔ)入手,再到HTTP的一些知識(shí),最后導(dǎo)我們loadrunner12.55的環(huán)境配置。
1.1 性能測(cè)試術(shù)語(yǔ)介紹
1.1.1 響應(yīng)時(shí)間(Response time)
? 響應(yīng)時(shí)間就是用戶(hù)感受軟件系統(tǒng)為其服務(wù)所耗費(fèi)的時(shí)間
1.1.2 并發(fā)用戶(hù)數(shù)
? 用來(lái)度量服務(wù)器并發(fā)容量和同步協(xié)調(diào)能力,在客戶(hù)端指一批用戶(hù)同時(shí)執(zhí)行一個(gè)操作
C
=
n
L
T
C= {nL \over T}
C=TnL?
KaTeX parse error: Got function '\hat' with no arguments as superscript at position 3: ^\?h?a?t? ?C ≈ C + 3\sqrt …
C是平均并發(fā)用戶(hù)數(shù);n是login session的數(shù)量;L是login session的平均長(zhǎng)度;T指考察的時(shí)間段長(zhǎng)度;
KaTeX parse error: Got function '\hat' with no arguments as superscript at position 3: ^\?h?a?t? ?C
是并發(fā)用戶(hù)數(shù);
(實(shí)際上,這個(gè)公式我們基本上不用)
**舉個(gè)例子:**一架電梯同時(shí)能夠搭載的乘客數(shù)就可以看作是他的用戶(hù)并發(fā)數(shù)
1.1.3 吞吐量(Throughput)
? 吞吐量是指單位時(shí)間內(nèi)系統(tǒng)能夠完成的工作量,它衡量的是軟件系統(tǒng)服務(wù)器的處理能力,就是在一秒中統(tǒng)計(jì)所完成的工作量。是指在一次性能測(cè)試過(guò)程中網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量的總和。、
? 通常是不需要用吞吐量這個(gè)概念的。因?yàn)樗诓煌说哪X子里會(huì)存在一些誤解。
? 用吞吐量來(lái)衡量一個(gè)系統(tǒng)的輸出能力是極其不準(zhǔn)確的,用個(gè)最簡(jiǎn)單的例子說(shuō)明,一個(gè)水龍頭開(kāi)一天一夜,流出 10 噸水;10 個(gè)水龍頭開(kāi) 1 秒鐘,流出 0.1 噸水。當(dāng)然是一個(gè)水龍頭的吞吐量大。你能說(shuō) 1 個(gè)水龍頭的出水能力是 10 個(gè)水龍頭的強(qiáng)?所以,我們要加單位時(shí)間,看誰(shuí) 1 秒鐘的出水量大。這就是吞吐率。
? 比如說(shuō),有些人說(shuō)吞吐量就是在說(shuō)TPS。有些人說(shuō)吞吐量是說(shuō)的每秒字節(jié)數(shù)。所以不建議用這個(gè)概念來(lái)承載性能指標(biāo),「有TPS就夠了」。
1.1.4 吞吐率(Throughout)
? 指一個(gè)業(yè)務(wù)系統(tǒng)在單位時(shí)間內(nèi)提供的產(chǎn)量(或服務(wù)量)。
1.1.5 TPS(Transaction Per Second)
? 那么我們就來(lái)看看TPS
? TPS是指每秒事務(wù)處理量。每秒鐘系統(tǒng)能夠處理的交易或事務(wù)的數(shù)量。它是衡量系統(tǒng)處理能力的重要指標(biāo)
? TPS = 并發(fā)數(shù)/平均響應(yīng)時(shí)間
TPS是由并發(fā)數(shù)和平均響應(yīng)時(shí)間計(jì)算得到,是否可以認(rèn)為T(mén)PS是通過(guò)并發(fā)數(shù)和平均響應(yīng)時(shí)間計(jì)算得到的一秒所處理的事務(wù)數(shù),而吞吐量就是一秒內(nèi)完成的事務(wù)數(shù)量。
**舉個(gè)例子:**博爾特1秒跑10米,就計(jì)算得一小時(shí)能跑:10*3600=36000m,其實(shí)博爾特就跑了10s,而36000m這個(gè)數(shù)的大小,是我們計(jì)算出認(rèn)為如果博爾特跑3600s可以跑36000m。
但是實(shí)際上讓博爾特真的跑上一個(gè)小時(shí),可能就跑了20000s(吞吐量),因?yàn)樗滩灰欢ǘ际潜3?秒10米,后面就累了,可能1s也就跑7m,
也就是TPS強(qiáng)調(diào)時(shí)刻,但是吞吐量強(qiáng)調(diào)時(shí)間。
1.1.6 QPS(Query Per Second)
? 每秒查詢(xún)數(shù),即控制服務(wù)器每秒處理的指定請(qǐng)求的數(shù)量。
1.1.7 點(diǎn)擊率(Hit Per Second)
? 指每秒發(fā)送的HTTP請(qǐng)求的數(shù)量。點(diǎn)擊率越大對(duì)server造成的壓力就越大。
? 點(diǎn)擊率可以看做是 TPS 的一種特定情況。點(diǎn)擊率更能體現(xiàn)用戶(hù)端對(duì)服務(wù)器的壓力。TPS 更能體現(xiàn)服務(wù)器對(duì)客戶(hù)請(qǐng)求的處理能力。
? 每秒鐘用戶(hù)向 web 服務(wù)器提交的 HTTP 請(qǐng)求數(shù)。這個(gè)指標(biāo)是 web 應(yīng)用特有的一個(gè)指標(biāo);web 應(yīng)用是 “請(qǐng)求 - 響應(yīng)” 模式,用戶(hù)發(fā)一個(gè)申請(qǐng),服務(wù)器就要處理一次,所以點(diǎn)擊是 web 應(yīng)用能夠處理的交易的最小單位。**如果把每次點(diǎn)擊定義為一個(gè)交易,點(diǎn)擊率和 TPS 就是一個(gè)概念。**容易看出,點(diǎn)擊率越大。對(duì)服務(wù)器的壓力也越大,點(diǎn)擊率只是一個(gè)性能參考指標(biāo),重要的是分析點(diǎn)擊時(shí)產(chǎn)生的影響。
? 需要注意的是,這里的點(diǎn)擊不是指鼠標(biāo)的一次 “單擊” 操作,因?yàn)橐淮?“單擊” 操作中,客戶(hù)端可能向服務(wù)器發(fā)現(xiàn)多個(gè) HTTP 請(qǐng)求。
1.1.8 性能計(jì)數(shù)器(Counter)
? 描述服務(wù)器或操作系統(tǒng)性能的一些數(shù)據(jù)指標(biāo)
1.1.9 思考時(shí)間(Think Time)
? 也稱(chēng)“休眠時(shí)間”。指用戶(hù)在操作時(shí),每個(gè)請(qǐng)求之間的時(shí)間間隔。
R
=
T
T
S
R = {T \over T _S}
R=TS?T?
R是請(qǐng)求數(shù);T是時(shí)間;Ts是思考時(shí)間;
1.1.10 資源利用率
? 指服務(wù)器系統(tǒng)中不同硬件資源被使用的程度,資源利用率=資源實(shí)際使用量/總的可用資源量
常見(jiàn)資源指標(biāo)
? CPU使用率:不高于75%-85%
? 內(nèi)存大小使用率:不高于80%
? 磁盤(pán)IO(速率):不高于90%
? 網(wǎng)路(速率):不高于80%
1.1.11 事務(wù)
? 前面我們提到了事務(wù),那么這里就給大家也順帶講下事務(wù)
? 用戶(hù)自定義的一個(gè)標(biāo)識(shí),用來(lái)度量服務(wù)器響應(yīng)時(shí)間的任務(wù)或操作集,事務(wù)時(shí)間反映的是一個(gè)操作過(guò)程的響應(yīng)時(shí)間。
? 事務(wù)的處理過(guò)程可以理解為:發(fā)送請(qǐng)求–>網(wǎng)絡(luò)傳輸–>收到響應(yīng)
? 關(guān)注某個(gè)業(yè)務(wù)的響應(yīng)時(shí)間,可以將該業(yè)務(wù)定義為事務(wù)
1.1.12 集合點(diǎn)
? 模擬系統(tǒng)上較重用戶(hù)負(fù)載時(shí),配置多個(gè)用戶(hù)同時(shí)執(zhí)行操作,當(dāng)用戶(hù)到達(dá)集合點(diǎn)時(shí)將進(jìn)行等待,直到指定數(shù)量的虛擬用戶(hù)到達(dá)后再進(jìn)行用戶(hù)并發(fā)操作。
? 見(jiàn)文知意,集合點(diǎn)就是集合的地方,比如我們需要對(duì)登錄進(jìn)行壓力測(cè)試,那么我們就需要用戶(hù)在集合點(diǎn)集合,再同時(shí)進(jìn)行登錄操作
? 模擬多個(gè)用戶(hù)同一時(shí)間發(fā)出請(qǐng)求,可以在腳本中設(shè)置集合點(diǎn)。
1.1.13 檢查點(diǎn)
? 一般與事務(wù)相配合使用,作用為在編譯錄制腳本、replay腳本的時(shí)候用來(lái)檢查腳本執(zhí)行情況,檢查特定的文本字符串或圖片。
1.1.14 平均響應(yīng)時(shí)間
? 處理一個(gè)事務(wù)所需要的時(shí)間。平均響應(yīng)時(shí)間越小、響應(yīng)時(shí)間平均值越小,說(shuō)明處理速度越快,軟件的效率就越好。
1.2 性能測(cè)試分類(lèi)
1.2.1 性能測(cè)試
? 性能測(cè)試是通過(guò)自動(dòng)化測(cè)試工具模擬多種正常、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。
1.2.2 負(fù)載測(cè)試(Load Testing)
? 指的是最常見(jiàn)的驗(yàn)證一般性需求進(jìn)行的性能測(cè)試,考察軟件系統(tǒng)在既定負(fù)載下的性能表現(xiàn)
1.2.3 壓力測(cè)試(Stress Testing)
? 考察系統(tǒng)在極端條件下的表現(xiàn),極端條件可以是超負(fù)荷的交易量和并發(fā)用戶(hù)數(shù)
1.2.4 配置測(cè)試(Configuration Testing)
? 指通過(guò)對(duì)被測(cè)系統(tǒng)軟硬件環(huán)境的調(diào)整,了解各種不同環(huán)境對(duì)系統(tǒng)性能影響的程度,從而找到系統(tǒng)各項(xiàng)資源的最優(yōu)分配原則。
1.2.5 并發(fā)測(cè)試(Concurrency Testing)
? 指當(dāng)測(cè)試多用戶(hù)并發(fā)訪問(wèn)同一個(gè)應(yīng)用、模塊、數(shù)據(jù)時(shí)是否產(chǎn)生隱藏的并發(fā)問(wèn)題,如內(nèi)存泄漏、線程鎖、資源爭(zhēng)用問(wèn)題,幾乎所有的性能測(cè)試都會(huì)涉及并發(fā)測(cè)試。
1.2.6 可靠性測(cè)試(Reliability Testing)
? 為了評(píng)估產(chǎn)品在規(guī)定的壽命期間內(nèi),在預(yù)期的使用、運(yùn)輸或儲(chǔ)存等所有環(huán)境下,保持功能可靠性而進(jìn)行的活動(dòng)。
1.2.7 容量測(cè)試(Volume Testing)
? 通過(guò)測(cè)試預(yù)先分析出反映軟件系統(tǒng)應(yīng)用特征的某項(xiàng)指標(biāo)的極限值,系統(tǒng)在其極限狀態(tài)下沒(méi)有出現(xiàn)任何軟件故障或還能保持主要功能正常運(yùn)行。
1.2.8 基準(zhǔn)測(cè)試
? 指通過(guò)設(shè)計(jì)科學(xué)的測(cè)試方法、測(cè)試工具和測(cè)試系統(tǒng),實(shí)現(xiàn)對(duì)一類(lèi)測(cè)試對(duì)象的某項(xiàng)性能指標(biāo)進(jìn)行定量的和可對(duì)比的測(cè)試。
1.2.9 穩(wěn)定性測(cè)試
? 測(cè)試系統(tǒng)在一定負(fù)載下運(yùn)行長(zhǎng)時(shí)間后是否會(huì)發(fā)生問(wèn)題
1.2.10 可恢復(fù)測(cè)試
? 主要檢查系統(tǒng)的容錯(cuò)能力。當(dāng)系統(tǒng)出錯(cuò)時(shí),能否在指定時(shí)間間隔內(nèi)修正錯(cuò)誤并重新啟動(dòng)系統(tǒng)。
1.3 HTTP我們需要知道的
1.1.1 客戶(hù)端向服務(wù)器請(qǐng)求的HTTP方法
GET
? 獲取資源
POST
? 傳輸實(shí)體主體
PUT
? 傳輸文件
HEAD
? 獲得報(bào)文首部
DELETE:
? 刪除文件
OPTIONS
? 詢(xún)問(wèn)支持的方法,客戶(hù)端用來(lái)詢(xún)問(wèn)服務(wù)器端支持哪一些方法
1.1.2 HTTP響應(yīng)狀態(tài)碼
狀態(tài)碼 | 含義 |
---|---|
100 | 請(qǐng)求者應(yīng)當(dāng)繼續(xù)提出請(qǐng)求。服務(wù)器返回此代碼表示已收到請(qǐng)求的第一部分,正在等待其余部分 |
200 | 服務(wù)器已成功處理了請(qǐng)求 |
302 | 重寫(xiě)向,會(huì)自動(dòng)將請(qǐng)求者轉(zhuǎn)到不同的位置 |
400 | 服務(wù)器不理解請(qǐng)求的語(yǔ)法。 |
401 | 請(qǐng)求要求身份驗(yàn)證。對(duì)于登錄后請(qǐng)求的網(wǎng)頁(yè),服務(wù)器可能返回此響應(yīng)。 |
404 | 服務(wù)器找不到網(wǎng)頁(yè) |
500 | 服務(wù)器內(nèi)部錯(cuò)誤 |
502 | 網(wǎng)關(guān)錯(cuò)誤 |
504 | 網(wǎng)關(guān)超時(shí) |
1.4 Loadrunner 12.55安裝
1.4.1 安裝教程
安裝包:
下載鏈接: https://pan.baidu.com/s/10BdYFXLPYdW6N7Q67D8mjQ
提取碼: a3pi
安裝注意事項(xiàng):
- 安裝前,把所有的殺毒軟件和防火墻關(guān)閉;
- 若以前安裝過(guò)LoadRunner,需將其卸載;
- 安裝路徑不要帶中文字符;
- LoadRunner 12已經(jīng)不再支持XP系統(tǒng),瀏覽器建議使用IE10以上版本。;同時(shí)win 11的小朋友們請(qǐng)注意,Loadrunner需要有IE支持
啟動(dòng)安裝包
鼠標(biāo)右鍵點(diǎn)擊HPE LoadRunner 12.55 Community Edition.exe安裝程序,選擇“以管理員身份運(yùn)行”,彈出窗口,選擇文件存放地址,可選擇默認(rèn)路徑,點(diǎn)擊“Install”。
若安裝過(guò)程中被電腦安裝的殺毒軟件攔截時(shí),均選擇允許操作。
安裝向?qū)?huì)驗(yàn)證電腦是否含有軟件安裝運(yùn)行的必備組件,缺少組件時(shí),會(huì)彈出窗口顯示需安裝的組件。點(diǎn)擊“確定”按鈕將自動(dòng)安裝所需組件,必須先安裝這些必備程序才能安裝HPE LoadRunner。
必備組件安裝完成后,會(huì)彈出HPE LoadRunner安裝向?qū)Т翱?,選擇要安裝的產(chǎn)品,這里選擇LoadRunner,點(diǎn)擊“下一步”。
最終用戶(hù)許可協(xié)議,勾選“我接受許可協(xié)議中的條款”,點(diǎn)擊“下一步”。
目標(biāo)文件夾,選擇安裝路徑,安裝路徑不能含有中文字符,點(diǎn)擊“下一步”。
已準(zhǔn)備好安裝HPE LoadRunner,點(diǎn)擊“安裝”將進(jìn)行程序的安裝。
正在安裝HPE LoadRunner。
LoadRunner安裝完成,點(diǎn)擊“完成”,關(guān)閉安裝彈窗。
安裝完成,我們桌面上會(huì)出現(xiàn)三個(gè)軟件,我們一一介紹一下:
使用順序:Virtual User Generator -> Controller -> Analysis
1.4.2 Virtual User Generator介紹
? Virtual User Generator(用戶(hù)腳本)錄制與編寫(xiě)腳本的地方,就是通過(guò)錄制或編寫(xiě)腳本來(lái)模擬用戶(hù)的行為,同時(shí)會(huì)打印出日志信息,方便調(diào)試腳本;VuGen也是一個(gè)集成開(kāi)發(fā)調(diào)試環(huán)境,在這里完成腳本開(kāi)發(fā)并調(diào)試通過(guò)后就可以放到Controller中創(chuàng)建場(chǎng)景。
? 簡(jiǎn)單說(shuō),就是我們將會(huì)用VuGen對(duì)我們需要測(cè)試的流程進(jìn)行錄制,然后對(duì)錄制下來(lái)的流程進(jìn)行一些配置調(diào)試。
1.4.3 Loadrunner中最核心模塊——Controller介紹
? 場(chǎng)景(Scenario)是一種用來(lái)模擬大量用戶(hù)操作的技術(shù)手段,通過(guò)配置和執(zhí)行場(chǎng)景向服務(wù)器產(chǎn)生負(fù)載,驗(yàn)證系統(tǒng)各項(xiàng)性能指標(biāo)是否達(dá)到用戶(hù)要求,而Controller可以幫助我們對(duì)場(chǎng)景進(jìn)行設(shè)計(jì)、執(zhí)行以及監(jiān)控進(jìn)行管理。
從性能角度來(lái)說(shuō),場(chǎng)景一般可以分為兩種類(lèi)型即可:
- 單一場(chǎng)景:在一個(gè)場(chǎng)景中,只有一個(gè)腳本(業(yè)務(wù))
- 理論基石:在任何系統(tǒng)中,如果單一業(yè)務(wù)單獨(dú)執(zhí)行,性能能夠通過(guò),則意味著每個(gè)業(yè)務(wù)本身其實(shí)是能夠達(dá)到性能需求的。
- 混合場(chǎng)景:在一個(gè)場(chǎng)景中,一次執(zhí)行多個(gè)腳本(業(yè)務(wù))
目的:是為了測(cè)試不同業(yè)務(wù)之間是否存在并發(fā)(廣義的并發(fā),即在線即并發(fā))沖突的現(xiàn)象
注意:
- 負(fù)載用戶(hù)的數(shù)量:和一次執(zhí)行N個(gè)腳本沒(méi)有關(guān)系,應(yīng)該就是最大負(fù)載用戶(hù)數(shù)(在線用戶(hù)數(shù))。
- 負(fù)載用戶(hù)分配比例:通過(guò)統(tǒng)計(jì)數(shù)據(jù)(業(yè)務(wù)量占比)來(lái)進(jìn)行虛擬用戶(hù)的分配。
LoadRunner中是通過(guò)Controller組件來(lái)進(jìn)行場(chǎng)景的設(shè)計(jì)和執(zhí)行的,Controller中的場(chǎng)景分為兩種:目標(biāo)場(chǎng)景(基本不適用)、手工場(chǎng)景。
1.4.4 Analysis介紹
? 是收集測(cè)試數(shù)據(jù)后生成圖表報(bào)告的地方,幫助我們分析數(shù)據(jù)并產(chǎn)生圖片,方便對(duì)負(fù)載生成后的相關(guān)數(shù)據(jù)進(jìn)行整理分析。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-426469.html
以上就是這節(jié)的全部?jī)?nèi)容,如有錯(cuò)誤,還請(qǐng)各位指正!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-426469.html
到了這里,關(guān)于【性能測(cè)試】loadrunner12.55(一)--知識(shí)準(zhǔn)備的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!