|—1、性能測(cè)試簡(jiǎn)介
指通過(guò)自動(dòng)化的測(cè)試工具]模擬多種正常、[峰值]以及[異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試
|—1.1、對(duì)性能的認(rèn)識(shí)
從用戶的角度:

從開發(fā)的角度:

從系統(tǒng)管理員的角度:

那么?測(cè)試應(yīng)該關(guān)注哪些呢?
測(cè)試人員通常是做為軟件質(zhì)量控制的一個(gè)角色,不僅僅是找bug,需要對(duì)整個(gè)軟件的質(zhì)量負(fù)責(zé),性能也屬于質(zhì)量的一部分,因此測(cè)試人員眼中的性能應(yīng)該是全面的,考慮的東西也需要全面:
? - 測(cè)試人員需要考慮全面的性能,包括[用戶、開發(fā)、管理員]等各個(gè)視角的性能。
? - 測(cè)試人員在做性能測(cè)試時(shí)除開要關(guān)注表面的現(xiàn)象如[響應(yīng)時(shí)間],也需要關(guān)注本質(zhì),比如用戶看不到的[服務(wù)器資料利用率],架構(gòu)設(shè)計(jì)是否合理?代碼是否合理等方方面面。
|—2、目的
? - 1. 系統(tǒng)的穩(wěn)定/可靠運(yùn)營(yíng)---長(zhǎng)時(shí)間、高負(fù)載測(cè)試下交易成功率、資源穩(wěn)定性。
? - 2. 成本的優(yōu)化配置--最優(yōu)CPU數(shù)量、內(nèi)存數(shù)量、服務(wù)器數(shù)量、專線帶寬
? - 3. 給用戶帶來(lái)更好的體驗(yàn),運(yùn)行速度快(平均響應(yīng)時(shí)間),流暢(占用我們的硬件資源少)
? - 4. 判斷目前系統(tǒng)的性能瓶頸,一到關(guān)鍵時(shí)候比較卡,一般是人多的時(shí)候比較卡(并發(fā))
? - 5. 系統(tǒng)應(yīng)用能夠適應(yīng)未來(lái)的業(yè)務(wù)增長(zhǎng)
|—3、性能測(cè)試工具
? - 1. JMeter
? - 2. LR(LoadRunner)
? - 3. postman
? - 4. SoupUI
|—4、性能測(cè)試的分類
? - 1. 并發(fā)測(cè)試
? - 2. 壓力測(cè)試(強(qiáng)度測(cè)試)
? - 3. 疲勞測(cè)試
? - 4. 負(fù)載測(cè)試
? - 5. 配置測(cè)試
? - 6. 可靠性測(cè)試
|—4.1、并發(fā)測(cè)試
并發(fā)測(cè)試就是模擬一群人同一時(shí)間做事并發(fā)測(cè)試就是對(duì)被測(cè)系統(tǒng)的并發(fā)處理能力進(jìn)行考察的一種測(cè)試手段(可以是某個(gè)功能模塊或數(shù)據(jù)記錄)一般都是看在絕對(duì)并發(fā)的情況下,系統(tǒng)能承載多大的并發(fā)量,是否存在死鎖或其者他性能問(wèn)題?;蛘咴谝欢ǖ牟l(fā)量下,系統(tǒng)的響應(yīng)時(shí)間是否是可接受的。
特點(diǎn):
- 1、這種性能測(cè)試方法主要關(guān)注系統(tǒng)可能存在的并發(fā)問(wèn)題,例如系統(tǒng)中的內(nèi)存泄漏、線程鎖和資源爭(zhēng)用方面的問(wèn)題。
- 2、這種性能測(cè)試方法可以在開發(fā)的各個(gè)階段使用需要相關(guān)的測(cè)試工具的配合和支持。也就是說(shuō),這種測(cè)試關(guān)注點(diǎn)是多個(gè)用戶同時(shí)(并發(fā))對(duì)一個(gè)模塊或操作進(jìn)行加壓。
- 1、絕對(duì)并發(fā):
一種是嚴(yán)格意義上的并發(fā),即所有的用戶在同一時(shí)刻做同一件事或操作,這種操作一般指做同一類型的業(yè)務(wù)。比如,所有用戶同一時(shí)刻做并發(fā)登陸,同一時(shí)刻做表單提交。
比如:12306春運(yùn)期間的放票,一到放票開始,N多的用戶在同一時(shí)間點(diǎn)對(duì)服務(wù)器發(fā)起買票的請(qǐng)求。比如8:00放票時(shí)段,有100萬(wàn)用戶對(duì)12306發(fā)起了買票的請(qǐng)求。
- 2、非絕對(duì)并發(fā):
另外一種并發(fā)是廣義范圍的并發(fā),這種并發(fā)與前一種并發(fā)的區(qū)別是,盡管多個(gè)用戶對(duì)系統(tǒng)發(fā)出了請(qǐng)求或者進(jìn)行了操作,但是這些請(qǐng)求或都操作可以是相同的,也可以是不同的。比如,在同一時(shí)刻有用戶在登錄,有用戶在提交表單。在一定的并發(fā)量下,***系統(tǒng)的響應(yīng)時(shí)間是否是可接受的
|—4.2、壓力測(cè)試
壓力測(cè)試是在接近用戶承載量極限以下一些(還不足以把系統(tǒng)壓垮的用戶量),較長(zhǎng)時(shí)間不間斷執(zhí)行的性能測(cè)試,是檢查系統(tǒng)穩(wěn)定性,系統(tǒng)性能瓶頸的一種常用場(chǎng)景。
壓測(cè)時(shí)間,一般場(chǎng)景都運(yùn)行10-15分鐘。如果是疲勞測(cè)試,可以壓一天或一周,根據(jù)實(shí)際情況來(lái)定。
壓力測(cè)試分兩種場(chǎng)景:
- 一種是單場(chǎng)景,壓一個(gè)接口的
- 第二種是混合場(chǎng)景,多個(gè)有關(guān)聯(lián)的接口。
|—4.3、疲勞測(cè)試
疲勞測(cè)試是采用系統(tǒng)穩(wěn)定運(yùn)行情況下能夠支持的最大[并發(fā)用戶數(shù)],持續(xù)執(zhí)行一段時(shí)間業(yè)務(wù),通過(guò)綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來(lái)確定系統(tǒng)處理最大工作量強(qiáng)度性能的過(guò)程。
一般情況下以服務(wù)器能夠正常穩(wěn)定響應(yīng)請(qǐng)求的最大[并發(fā)用戶數(shù)]進(jìn)行一定時(shí)間的疲勞測(cè)試,獲取交易執(zhí)行指標(biāo)數(shù)據(jù)和監(jiān)控?cái)?shù)據(jù)。如出現(xiàn)錯(cuò)誤導(dǎo)致測(cè)試不能成功執(zhí)行,則及時(shí)調(diào)整測(cè)試指標(biāo),例如降低用戶數(shù)、縮短測(cè)試周期等。還有一種情況的疲勞測(cè)試是對(duì)當(dāng)前系統(tǒng)性能的評(píng)估,用系統(tǒng)正常業(yè)務(wù)情況下[并發(fā)用戶數(shù)]為基礎(chǔ),進(jìn)行一定時(shí)間的疲勞測(cè)試。
|—4.4、負(fù)載測(cè)試
就是一批一批的加用戶,待到當(dāng)前在線用戶執(zhí)行穩(wěn)定后,再加下一批的用戶,像這樣不停的持續(xù)加壓,直至系統(tǒng)性能明顯下降或系統(tǒng)崩潰為止。是測(cè)試系統(tǒng)用戶上限,查找系統(tǒng)性能瓶頸的重要手段。通常在還不知道系統(tǒng)能承載多大業(yè)務(wù)量的情況下,為找到用戶承載量極限或?yàn)榱丝焖俣ㄎ幌到y(tǒng)性能瓶頸時(shí),會(huì)采用此種方式進(jìn)行測(cè)試。
特點(diǎn):
- 1、這種性能測(cè)試方法的主要目的是找到系統(tǒng)處理能力的極限。
- 2、這種性能測(cè)試方法需要在給定的測(cè)試環(huán)境下進(jìn)行,通常也需要考慮被測(cè)試系統(tǒng)的業(yè)務(wù)壓力量和典型場(chǎng)景、使得測(cè)試結(jié)果具有業(yè)務(wù)上的意義。
- 3、這種性能測(cè)試方法一般用來(lái)了解系統(tǒng)的性能容量,或是配合性能調(diào)優(yōu)來(lái)使用。
|—4.5、配置測(cè)試
配置測(cè)試方法通過(guò)對(duì)被測(cè)系統(tǒng)的軟\硬件環(huán)境的調(diào)整,了解各種不同對(duì)系統(tǒng)的性能影響的程度,從而找到系統(tǒng)各項(xiàng)資源的最優(yōu)分配原則。
也就是說(shuō),這種測(cè)試關(guān)注點(diǎn)是“微調(diào)”,通過(guò)對(duì)軟硬件的不段調(diào)整,找出這他們的最佳狀態(tài),使系統(tǒng)達(dá)到一個(gè)最強(qiáng)的狀態(tài)。
特點(diǎn):
- 1、這種性能測(cè)試方法的主要目的是了解各種不同因素對(duì)系統(tǒng)性能影響的程度,從而判斷出最值得進(jìn)行的調(diào)優(yōu)操作。
- 2、這種性能測(cè)試方法一般在對(duì)系統(tǒng)性能狀況有初步了解后進(jìn)行。
- 3、這種性能測(cè)試方法一般用于性能調(diào)優(yōu)和規(guī)劃能力。
|—4.6、可靠性測(cè)試
在給系統(tǒng)加載一定業(yè)務(wù)壓力的情況下,使系統(tǒng)運(yùn)行一段時(shí)間,以此檢測(cè)系統(tǒng)是否穩(wěn)定。
也就是說(shuō),這種測(cè)試的關(guān)注點(diǎn)是“穩(wěn)定”,不需要給系統(tǒng)太大的壓力,只要系統(tǒng)能夠長(zhǎng)期處于一個(gè)穩(wěn)定的狀態(tài)。
特點(diǎn):
- 1、這種性能測(cè)試方法的主要目的是驗(yàn)證是否支持長(zhǎng)期穩(wěn)定的運(yùn)行。
- 2、這種性能測(cè)試方法需要在壓力下持續(xù)一段時(shí)間的運(yùn)行。(2~3天)
- 3、測(cè)試過(guò)程中需要關(guān)注系統(tǒng)的運(yùn)行狀況。
備注:一般企業(yè)中作得比價(jià)多是并發(fā)測(cè)試,壓力測(cè)試,根據(jù)具體需求場(chǎng)景,有必要的話也會(huì)適當(dāng)?shù)淖饕恍┴?fù)載測(cè)試,疲勞測(cè)試。
和負(fù)載測(cè)試的概念比較接近的是壓力測(cè)試。通俗地講,壓力測(cè)試是為了發(fā)現(xiàn)在多大并發(fā)壓力下系統(tǒng)的性能會(huì)變得不可接受,或者出現(xiàn)性能拐點(diǎn)(崩潰)的情況。在加壓策略上,壓力測(cè)試會(huì)對(duì)被測(cè)系統(tǒng)逐步加壓,在加壓的過(guò)程中考察系統(tǒng)性能指標(biāo)的走勢(shì)情況,最終找出系統(tǒng)在出現(xiàn)性能拐點(diǎn)時(shí)的并發(fā)用戶數(shù),也就是系統(tǒng)支持的最大并發(fā)用戶數(shù)。
最后再說(shuō)下疲勞強(qiáng)度測(cè)試。其實(shí)疲勞強(qiáng)度測(cè)試的加壓策略跟負(fù)載測(cè)試也很接近,都是對(duì)系統(tǒng)模擬出系統(tǒng)能承受的最大業(yè)務(wù)負(fù)載量,差異在于,疲勞強(qiáng)度測(cè)試更關(guān)注系統(tǒng)在長(zhǎng)時(shí)間運(yùn)行情況下系統(tǒng)性能指標(biāo)的變化情況,例如,系統(tǒng)在運(yùn)行一段時(shí)間后,是否會(huì)出現(xiàn)事務(wù)處理失敗、響應(yīng)時(shí)間增長(zhǎng)、業(yè)務(wù)吞吐量降低、CPU/內(nèi)存資源增長(zhǎng)等問(wèn)題。
|—5、性能測(cè)試指標(biāo)
從維度上劃分,性能指標(biāo)主要分為兩大類,分別是業(yè)務(wù)性能指標(biāo)和系統(tǒng)資源性能指標(biāo)。
|—5.1、業(yè)務(wù)性能指標(biāo)可以直觀地反映被測(cè)系統(tǒng)的實(shí)際性能狀況,常用的指標(biāo)項(xiàng)有:
? 1.并發(fā)用戶數(shù)
? 2.事務(wù)吞吐率(TPS/RPS)
? 3.事務(wù)平均響應(yīng)時(shí)間
? 4.事務(wù)成功率
從以下幾個(gè)方面來(lái)評(píng)定指標(biāo)是否達(dá)標(biāo)
- ①.給出產(chǎn)品性能的主要指標(biāo),如在100000記錄中查詢一個(gè)特定數(shù)據(jù)的時(shí)間為0.5秒;
- ②.以某個(gè)已發(fā)布的版本為基線,如比上一個(gè)版本的性能提高30-50%;
- ③.和競(jìng)爭(zhēng)對(duì)手的同類產(chǎn)品比較。
|—5.2、服務(wù)器的性能指標(biāo)——nmon工具
- ①.CPU利用率;
- ②.內(nèi)存占用率;? 考慮是否存在內(nèi)存泄漏的情況。
- ③.磁盤I/O ;
- ④.網(wǎng)絡(luò)?? 網(wǎng)絡(luò)帶寬
|—6、性能測(cè)試專業(yè)術(shù)語(yǔ)
性能測(cè)試要求的指標(biāo):性能測(cè)試需求上有說(shuō)明,SE規(guī)定了要我們做哪些業(yè)務(wù)的性能,像:登錄,注冊(cè),下單,查詢,添加購(gòu)物車等,項(xiàng)目組只要求我們做了并發(fā),壓測(cè)這塊。
|—6.1、并發(fā)數(shù)
一、經(jīng)典公式1:
?? 一般來(lái)說(shuō),利用以下經(jīng)驗(yàn)公式進(jìn)行估算系統(tǒng)的平均并發(fā)用戶數(shù)和峰值數(shù)據(jù)
? 1)平均并發(fā)用戶數(shù)為 C = nL/T
? 2)并發(fā)用戶數(shù)峰值 C‘ = C + 3*根號(hào)C
?? ? C是平均并發(fā)用戶數(shù),n是login session的數(shù)量,L是login session的平均長(zhǎng)度,T是值考察的時(shí)間長(zhǎng)度
?? ? C’是并發(fā)用戶數(shù)峰值
舉例1,假設(shè)系統(tǒng)A,該系統(tǒng)有3000個(gè)用戶,平均每天大概有400個(gè)用戶要訪問(wèn)該系統(tǒng)(可以從系統(tǒng)日志從獲得),對(duì)于一個(gè)典型用戶來(lái)說(shuō),一天之內(nèi)用戶從登陸到退出的平均時(shí)間為4小時(shí),而在一天之內(nèi),用戶只有在8小時(shí)之內(nèi)會(huì)使用該系統(tǒng)。
平均并發(fā)用戶數(shù)為 C = 400*4/8=200
并發(fā)用戶數(shù)峰值? C`= 200 + 3*根號(hào)200=243
舉例2, 某公司為其170000名員工設(shè)計(jì)了一個(gè)薪酬系統(tǒng),員工可進(jìn)入該系統(tǒng)查詢自己的薪酬信息,但并不是每個(gè)人都會(huì)用這個(gè)系統(tǒng),假設(shè)只有50%的人會(huì)定期用該系統(tǒng),這些人里面有70%是在每個(gè)月的最后一周使用一次該系統(tǒng),且平均使用系統(tǒng)時(shí)間為5分鐘。
? 則一個(gè)月最后一周的平均并發(fā)用戶數(shù)為(朝九晚五):
? n = 170000*0.5*0.7/5 = 11900
? C= 11900*5/60/8 = 124
|—6.2、響應(yīng)時(shí)間(90%用戶的平均響應(yīng)時(shí)間)
0.幾秒算好的,1.幾秒都算比較好的,<=3秒 都算正常,>3秒,分析下。超過(guò)5s以上性能是不達(dá)標(biāo)。
|—6.3、吞吐率
100/sec
吞吐量計(jì)算為:F = Vu * R / T 單位為個(gè)/s? ?? 500 * 1/12s = 41.6請(qǐng)求數(shù)/sec? 1000 * 1/21s = 47.6/sec
|—6.4、吞吐量
指在一次性能測(cè)試過(guò)程中網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量的總和(單位應(yīng)該KB),也可以這樣說(shuō)在單次業(yè)務(wù)中,客戶端與服務(wù)器端進(jìn)行的數(shù)據(jù)交互總量;對(duì)交互式應(yīng)用來(lái)說(shuō),吞吐量指標(biāo)反映服務(wù)器承受的壓力,容量規(guī)劃的測(cè)試中,吞吐量是重點(diǎn)關(guān)注的指標(biāo),它能夠說(shuō)明系統(tǒng)級(jí)別的負(fù)載能力,另外,在性能調(diào)優(yōu)過(guò)程中,吞吐量指標(biāo)也有重要的價(jià)值;
并不是吞吐量越高越高,一個(gè)服務(wù)器的性能,要從多個(gè)方面去考慮:90%用戶的平均響應(yīng)時(shí)間,錯(cuò)誤率,吞吐量/吞吐量,CPU,內(nèi)存,磁盤IO,網(wǎng)絡(luò)的占用情況,還有服務(wù)器的配置。
吞吐量/傳輸時(shí)間,即單位時(shí)間內(nèi)網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量,也可以指單位時(shí)間內(nèi)處理客戶請(qǐng)求數(shù)量,它是衡量網(wǎng)絡(luò)性能的重要指標(biāo)。
通常情況下,吞吐率用“字節(jié)數(shù)/秒”來(lái)衡量,當(dāng)然,也可以用“請(qǐng)求數(shù)/秒”和“頁(yè)面數(shù)/秒”來(lái)衡量;
吞吐量/率和負(fù)載之間的關(guān)系:
①上升階段:吞吐量隨著負(fù)載的增加而增加,吞吐量和負(fù)載成正比;
②平穩(wěn)階段:吞吐量隨著負(fù)載的增加而保持穩(wěn)定,無(wú)太大變化或波動(dòng);
③下降階段:吞吐量隨著負(fù)載的增加而下降,吞吐量和負(fù)載成反比;
總結(jié):吞吐量/率干不過(guò)負(fù)載?。?!

|—6.5、內(nèi)存泄漏(memory leak)
是指程序在申請(qǐng)內(nèi)存后,無(wú)法釋放已申請(qǐng)的內(nèi)存空間,導(dǎo)致系統(tǒng)無(wú)法及時(shí)回收內(nèi)存并且分配給其他進(jìn)程使用。通常少次數(shù)的內(nèi)存無(wú)法及時(shí)回收并不會(huì)到程序造成什么影響,但是如果在內(nèi)存本身就比較少獲取多次導(dǎo)致內(nèi)存無(wú)法正?;厥諘r(shí),就會(huì)導(dǎo)致內(nèi)存不夠用,最終導(dǎo)致內(nèi)存溢出。
|—6.6、內(nèi)存溢出(out of memory):OOM
指程序申請(qǐng)內(nèi)存時(shí),沒(méi)有足夠的內(nèi)存供申請(qǐng)者使用,或者說(shuō),給了你一塊存儲(chǔ)int類型數(shù)據(jù)的存儲(chǔ)空間,但是你卻存儲(chǔ)long類型的數(shù)據(jù),那么結(jié)果就是內(nèi)存不夠用,此時(shí)就會(huì)報(bào)錯(cuò)OOM,即所謂的內(nèi)存溢出,簡(jiǎn)單來(lái)說(shuō)就是自己所需要使用的空間比我們擁有的內(nèi)存大內(nèi)存不夠使用所造成的內(nèi)存溢出。
|—6.7、內(nèi)存溢出原因
1.內(nèi)存中【加載的數(shù)據(jù)量過(guò)于龐大】,如一次從數(shù)據(jù)庫(kù)取出過(guò)多數(shù)據(jù);
2.集合類中【有對(duì)對(duì)象的引用,使用完后未清空】,使得JVM不能回收;
3.代碼中存在死循環(huán)或循環(huán)產(chǎn)生過(guò)多重復(fù)的對(duì)象實(shí)體;
4.使用的第三方軟件中的BUG;
5.啟動(dòng)參數(shù)內(nèi)存值設(shè)定的過(guò)小
|—6.8、內(nèi)存溢出的解決方案:
第一步,修改JVM啟動(dòng)參數(shù),直接增加內(nèi)存。(-Xms,-Xmx參數(shù)一定不要忘記加。)
第二步,檢查錯(cuò)誤日志,查看“OutOfMemory”錯(cuò)誤前是否有其 它異?;蝈e(cuò)誤。
第三步,對(duì)代碼進(jìn)行走查和分析,找出可能發(fā)生內(nèi)存溢出的位置。
|—6.9、重點(diǎn)排查以下幾點(diǎn):
2.1.檢查對(duì)數(shù)據(jù)庫(kù)查詢中,是否有一次獲得全部數(shù)據(jù)的查詢。一般來(lái)說(shuō),如果一次取十萬(wàn)條記錄到內(nèi)存,就可能引起內(nèi)存溢出。這個(gè)問(wèn)題比較隱蔽,在上線前,數(shù)據(jù)庫(kù)中數(shù)據(jù)較少,不容易出問(wèn)題,上線后,數(shù)據(jù)庫(kù)中數(shù)據(jù)多了,一次查詢就有可能引起內(nèi)存溢出。因此對(duì)于數(shù)據(jù)庫(kù)查詢盡量采用分頁(yè)的方式查詢。
2.檢查代碼中是否有死循環(huán)或遞歸調(diào)用。
3.檢查是否有大循環(huán)重復(fù)產(chǎn)生新對(duì)象實(shí)體。
4.檢查對(duì)數(shù)據(jù)庫(kù)查詢中,是否有一次獲得全部數(shù)據(jù)的查詢。一般來(lái)說(shuō),如果一次取十萬(wàn)條記錄到內(nèi)存,就可能引起內(nèi)存溢出。這個(gè)問(wèn)題比較隱蔽,在上線前,數(shù)據(jù)庫(kù)中數(shù)據(jù)較少,不容易出問(wèn)題,上線后,數(shù)據(jù)庫(kù)中數(shù)據(jù)多了,一次查詢就有可能引起內(nèi)存溢出。因此對(duì)于數(shù)據(jù)庫(kù)查詢盡量采用分頁(yè)的方式查詢。
5.檢查L(zhǎng)ist、MAP等集合對(duì)象是否有使用完后,未清除的問(wèn)題。List、MAP等集合對(duì)象會(huì)始終存有對(duì)對(duì)象的引用,使得這些對(duì)象不能被GC回收。
第四步,使用內(nèi)存查看工具動(dòng)態(tài)查看內(nèi)存使用情況
|—7、性能測(cè)試流程
一、準(zhǔn)備工作
1、首先要保證系統(tǒng)基礎(chǔ)功能驗(yàn)證通過(guò)
性能測(cè)試在什么階段適合實(shí)施?切入點(diǎn)很重要!一般而言,只有在系統(tǒng)基礎(chǔ)功能測(cè)試驗(yàn)證完成、系統(tǒng)趨于穩(wěn)定的情況下,才會(huì)進(jìn)行性能測(cè)試,否則性能測(cè)試是無(wú)意義的。
2、然后就是選擇好性能測(cè)試工具
綜合系統(tǒng)設(shè)計(jì)、工具成本、測(cè)試團(tuán)隊(duì)的技能來(lái)考慮,選擇合適的測(cè)試工具,最起碼應(yīng)該滿足一下幾點(diǎn):
①支持對(duì)web(這里以web系統(tǒng)為例)系統(tǒng)的性能測(cè)試,支持http和https協(xié)議;
②工具運(yùn)行在Windows平臺(tái)上;
③支持對(duì)webserver、前端、數(shù)據(jù)庫(kù)的性能計(jì)數(shù)器進(jìn)行監(jiān)控;
3、然后就是對(duì)預(yù)先的業(yè)務(wù)場(chǎng)景分析
為了對(duì)系統(tǒng)性能建立直觀上的認(rèn)識(shí)和分析,應(yīng)對(duì)系統(tǒng)較重要和常用的業(yè)務(wù)場(chǎng)景模塊進(jìn)行分析,針對(duì)性的進(jìn)行分析,以對(duì)接下來(lái)的測(cè)試計(jì)劃設(shè)計(jì)進(jìn)行準(zhǔn)備。
二、測(cè)試計(jì)劃
測(cè)試計(jì)劃階段最重要的是分析用戶場(chǎng)景,確定系統(tǒng)性能目標(biāo)。
1、性能測(cè)試領(lǐng)域分析(也就是確定測(cè)試范圍,是需要做哪方面的性能測(cè)試,并發(fā)測(cè)試,壓力測(cè)試,疲勞測(cè)試,負(fù)載測(cè)試)
根據(jù)對(duì)項(xiàng)目背景,業(yè)務(wù)的了解,確定本次性能測(cè)試要解決的問(wèn)題點(diǎn);是測(cè)試系統(tǒng)能否滿足實(shí)際運(yùn)行時(shí)的需要,還是目前的系統(tǒng)在哪些方面制約系統(tǒng)性能的表現(xiàn),或者,哪些系統(tǒng)因素導(dǎo)致
系統(tǒng)無(wú)法跟上業(yè)務(wù)發(fā)展?確定測(cè)試領(lǐng)域,然后具體問(wèn)題具體分析。
2、用戶場(chǎng)景剖析和業(yè)務(wù)建模
根據(jù)對(duì)系統(tǒng)業(yè)務(wù)、用戶活躍時(shí)間、訪問(wèn)頻率、場(chǎng)景交互等各方面的分析,整理一個(gè)業(yè)務(wù)場(chǎng)景表,當(dāng)然其中最好對(duì)用戶操作場(chǎng)景、步驟進(jìn)行詳細(xì)的描述,為測(cè)試腳本開發(fā)提供依據(jù)。
3、確定性能目標(biāo)(也就是確定各個(gè)用戶場(chǎng)景的性能指標(biāo))
前面已經(jīng)確定了本次性能測(cè)試的應(yīng)用領(lǐng)域,接下來(lái)就是針對(duì)具體的領(lǐng)域關(guān)注點(diǎn),確定性能目標(biāo)(指標(biāo));其中需要和其他業(yè)務(wù)部門進(jìn)行溝通協(xié)商,以及結(jié)合當(dāng)前系統(tǒng)的響應(yīng)時(shí)間等數(shù)據(jù),確定
最終我們需要達(dá)到的響應(yīng)時(shí)間和系統(tǒng)資源使用率等目標(biāo);比如:
①登錄請(qǐng)求到登錄成功的頁(yè)面響應(yīng)時(shí)間不能超過(guò)2秒;
②報(bào)表審核提交的頁(yè)面響應(yīng)時(shí)間不能超過(guò)5秒;
③文件的上傳、下載頁(yè)面響應(yīng)時(shí)間不超過(guò)8秒;
④服務(wù)器的CPU平均使用率小于70%,內(nèi)存使用率小于75%;
⑤各個(gè)業(yè)務(wù)系統(tǒng)的響應(yīng)時(shí)間和服務(wù)器資源使用情況在不同測(cè)試環(huán)境下,各指標(biāo)隨負(fù)載變化的情況等;
4、制定測(cè)試計(jì)劃的實(shí)施時(shí)間
預(yù)設(shè)本次性能測(cè)試各子模塊的起止時(shí)間,產(chǎn)出,參與人員等等。
三、測(cè)試腳本設(shè)計(jì)與開發(fā)
性能測(cè)試中,測(cè)試腳本設(shè)計(jì)與開發(fā)占據(jù)了很大的時(shí)間比重。
1、測(cè)試環(huán)境設(shè)計(jì)
本次性能測(cè)試的目標(biāo)是需要驗(yàn)證系統(tǒng)在實(shí)際運(yùn)行環(huán)境中的性能外,還需要考慮到不同的硬件配置是否會(huì)是制約系統(tǒng)性能的重要因素!因此在測(cè)試環(huán)境中,需要部署多個(gè)不同的測(cè)試環(huán)境,
在不同的硬件配置上檢查應(yīng)用系統(tǒng)的性能,并對(duì)不同配置下系統(tǒng)的測(cè)試結(jié)果進(jìn)行分析,得出最優(yōu)結(jié)果(最適合當(dāng)前系統(tǒng)的配置)。
這里所說(shuō)的配置大概是如下幾類:
①數(shù)據(jù)庫(kù)服務(wù)器
②應(yīng)用服務(wù)器
③負(fù)載模擬器
④軟件運(yùn)行環(huán)境,平臺(tái)
測(cè)試環(huán)境測(cè)試數(shù)據(jù),可以根據(jù)系統(tǒng)的運(yùn)行預(yù)期來(lái)確定,比如需要測(cè)試的業(yè)務(wù)場(chǎng)景,數(shù)據(jù)多久執(zhí)行一次備份轉(zhuǎn)移,該業(yè)務(wù)場(chǎng)景涉及哪些表,每次操作數(shù)據(jù)怎樣寫入,寫入幾條,需要多少的
測(cè)試數(shù)據(jù)來(lái)使得測(cè)試環(huán)境的數(shù)據(jù)保持一致性等等。
可以在首次測(cè)試數(shù)據(jù)生成時(shí),將其導(dǎo)出到本地保存,在每次測(cè)試開始前導(dǎo)入數(shù)據(jù),保持一致性。
2、測(cè)試場(chǎng)景設(shè)計(jì)
通過(guò)和業(yè)務(wù)部門溝通以及以往用戶操作習(xí)慣,確定用戶操作習(xí)慣模式,以及不同的場(chǎng)景用戶數(shù)量,操作次數(shù),確定測(cè)試指標(biāo),以及性能監(jiān)控等。
3、測(cè)試用例設(shè)計(jì)
確認(rèn)測(cè)試場(chǎng)景后,在系統(tǒng)已有的操作描述上,進(jìn)一步完善為可映射為腳本的測(cè)試用例描述,用例大概內(nèi)容如下:
用例編號(hào):查詢表單_xxx_x1(命名以業(yè)務(wù)操作場(chǎng)景為主,簡(jiǎn)潔易懂即可)
用例條件:用戶已登錄、具有對(duì)應(yīng)權(quán)限等。。。
操作步驟:
①進(jìn)入對(duì)應(yīng)頁(yè)面。。。。。。
②查詢相關(guān)數(shù)據(jù)。。。。。。
③勾選導(dǎo)出數(shù)據(jù)。。。。。。
④修改上傳數(shù)據(jù)。。。。。。
PS:這里的操作步驟只是個(gè)例子,具體以系統(tǒng)業(yè)務(wù)場(chǎng)景描述;
4、腳本和輔助工具的開發(fā)及使用
按照用例描述,可利用工具進(jìn)行錄制,然后在錄制的腳本中進(jìn)行修改;比如參數(shù)化、關(guān)聯(lián)、檢查點(diǎn)等等,最后的結(jié)果使得測(cè)試腳本可用,能達(dá)到測(cè)試要求即可;
PS:個(gè)人而言,建議盡量自己寫腳本來(lái)實(shí)現(xiàn)業(yè)務(wù)操作場(chǎng)景,這樣對(duì)個(gè)人技能提升較大;一句話:能寫就絕不錄制?。?!
四、測(cè)試執(zhí)行與管理
在這個(gè)階段,只需要按照之前已經(jīng)設(shè)計(jì)好的業(yè)務(wù)場(chǎng)景、環(huán)境和測(cè)試用例腳本,部署環(huán)境,執(zhí)行測(cè)試并記錄結(jié)果即可。
1、建立測(cè)試環(huán)境
按照之前已經(jīng)設(shè)計(jì)好的測(cè)試環(huán)境,部署對(duì)應(yīng)的環(huán)境,由運(yùn)維或開發(fā)人員進(jìn)行部署,檢查,并仔細(xì)調(diào)整,同時(shí)保持測(cè)試環(huán)境的干凈和穩(wěn)定,不受外來(lái)因素影響。
2、執(zhí)行測(cè)試腳本
這一點(diǎn)比較簡(jiǎn)單,在已部署好的測(cè)試環(huán)境中,按照業(yè)務(wù)場(chǎng)景和編號(hào),按順序執(zhí)行我們已經(jīng)設(shè)計(jì)好的測(cè)試腳本。
3、測(cè)試結(jié)果記錄
根據(jù)測(cè)試采用的工具不同,結(jié)果的記錄也有不同的形式;現(xiàn)在大多的性能測(cè)試工具都提供比較完整的界面圖形化的測(cè)試結(jié)果,當(dāng)然,對(duì)于服務(wù)器的資源使用等情況,可以利用一些計(jì)數(shù)器或
第三方監(jiān)控工具來(lái)對(duì)其進(jìn)行記錄,執(zhí)行完測(cè)試后,對(duì)結(jié)果進(jìn)行整理分析。
五、測(cè)試分析
1、測(cè)試環(huán)境的系統(tǒng)性能分析
根據(jù)我們之前記錄得到的測(cè)試結(jié)果(圖表、曲線等),經(jīng)過(guò)計(jì)算,與預(yù)定的性能指標(biāo)進(jìn)行對(duì)比,確定是否達(dá)到了我們需要的結(jié)果;如未達(dá)到,查看具體的瓶頸點(diǎn),然后根據(jù)瓶頸點(diǎn)的具體數(shù)據(jù),
進(jìn)行具體情況具體分析(影響性能的因素很多,這一點(diǎn),可以根據(jù)經(jīng)驗(yàn)和數(shù)據(jù)表現(xiàn)來(lái)判斷分析)。
2、硬件設(shè)備對(duì)系統(tǒng)性能表現(xiàn)的影響分析
由于之前設(shè)計(jì)了幾個(gè)不同的測(cè)試環(huán)境,故可以根據(jù)不同測(cè)試環(huán)境的硬件資源使用狀況圖進(jìn)行分析,確定瓶頸是再數(shù)據(jù)庫(kù)服務(wù)器、應(yīng)用服務(wù)器抑或其他方面,然后針對(duì)性的進(jìn)行優(yōu)化等操作。
3、其他影響因素分析
影響系統(tǒng)性能的因素很多,可以從用戶能感受到的場(chǎng)景分析,哪里比較慢,哪里速度尚可,這里可以根據(jù)2\5\8原則對(duì)其進(jìn)行分析;
至于其他諸如網(wǎng)絡(luò)帶寬、操作動(dòng)作、存儲(chǔ)池、線程實(shí)現(xiàn)、服務(wù)器處理機(jī)制等一系列的影響因素,具體問(wèn)題具體分析,這里就不一一表述了。
4、測(cè)試中發(fā)現(xiàn)的問(wèn)題
在性能測(cè)試執(zhí)行過(guò)程中,可能會(huì)發(fā)現(xiàn)某些功能上的不足或存在的缺陷,以及需要優(yōu)化的地方,這也是執(zhí)行多次測(cè)試的優(yōu)點(diǎn)。
|—如何使用nmon工具檢測(cè)服務(wù)器的資源
1、工具獲取
下載地址:
http://sourceforge.jp/projects/sfnet_nmon/releases/ 或者直接從這獲取,還包含分析工具??上螺d比較全的壓縮包:
nmon_linux_14i_newer_Linux_versions.tar.gz
官方地址:http://nmon.sourceforge.net/
2、使用
1. 解壓并獲取以對(duì)應(yīng)平臺(tái)的nmon工具文件: nmon_linux_14i_newer_Linux_versions.tar.gz
解壓后,可以看到各個(gè)平臺(tái)的文件,我們只需要使用適合的即可,一般是nmon_linux_x86_64。
2. 將nmon工具文件上傳至服務(wù)器的相應(yīng)目錄并增加可執(zhí)行權(quán)限
a.? ? ? 上傳成功后:
b.? ? ? 增加可執(zhí)行權(quán)限:
chmod 755 nmon_x86_64_centos6
3.使用nmon工具的實(shí)時(shí)監(jiān)控功能
?輸入 ./ nmon_x86_64_centos6
3、數(shù)據(jù)采集
為了實(shí)時(shí)監(jiān)控系統(tǒng)在一段時(shí)間內(nèi)的使用情況并將結(jié)果記錄下來(lái),我們可以通過(guò)運(yùn)行以下命令實(shí)現(xiàn):
$./nmon_x86_64_centos6 -ft? -m /nmon/log -s 1 -c 20
-f:按標(biāo)準(zhǔn)格式輸出文件:<hostname>_YYYYMMDD_HHMM.nmon;
-t:輸出中包括占用率較高的進(jìn)程;
-m 切換到路徑去保存日志文件
-s 30:每30秒進(jìn)行一次數(shù)據(jù)采集
-c 10:一共采集10次
-c 取出多少個(gè)抽樣數(shù)量,這里為120,即監(jiān)控=120*(30/60/60)=1小時(shí)
??? 根據(jù)小時(shí)計(jì)算這個(gè)數(shù)字的公式為:c=h*3600/s,比如要監(jiān)控10小時(shí),每隔30秒采樣一次,則c=10*3600/30=1200
輸入命令回車后,將自動(dòng)在當(dāng)前目錄生成一個(gè)hostname_timeSeries.nmon的文件,如果hostname為svcpreapp01,生成的文件為:svcpreapp01_151221_1738.nmon,如下:
./nmon_x86_64_centos6 -ft -s 1 -c 10 &
4、生成報(bào)告(生成圖形化結(jié)果)

該命令啟動(dòng)后,會(huì)在nmon所在目錄下生成監(jiān)控文件,并持續(xù)寫入資源數(shù)據(jù),直至360個(gè)監(jiān)控點(diǎn)收集完成——即監(jiān)控1小時(shí),這些操作均自動(dòng)完成,無(wú)需手工干 預(yù),測(cè)試人員可以繼續(xù)完成其他操作。如果想停止該監(jiān)控,需要通過(guò)“#ps –ef|grep nmon”查詢進(jìn)程號(hào),然后殺掉該進(jìn)程以停止監(jiān)控。
通過(guò)后臺(tái)監(jiān)控和定期監(jiān)控,我們可以得到擴(kuò)展名為nmon的監(jiān)控文件,這些文件記錄著系統(tǒng)資源的數(shù)據(jù),需要配合分析工具(nmon analyser)進(jìn)行解讀。
1)?? 使用FTP工具從服務(wù)器上取下生成結(jié)果文件/nmon/log/sjfx212_120318_1723.nmon到本機(jī)。
2)?? 打開nmon_analyser.zip 包下的nmon analyser v33g.xls 文件,點(diǎn)擊Analyse nomn data按鈕,選擇之前get下來(lái)的sjfx212_120318_1723.nmon文件。
5,數(shù)據(jù)分析
借助nmon analyser可以把nmon采集的數(shù)據(jù)生成直觀的Excel表,nmon analyser可以在IBM的官網(wǎng)下載,https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power+Systems/page/nmon_analyser
在windows上下載后解壓,有word和exce兩個(gè)文檔,Word是說(shuō)明文檔,包括更新日志,詳細(xì)參數(shù)等,其中的Excel就是nmon analyser工具了。
Nmon 是一個(gè)分析aix和linux性能的免費(fèi)工具(其主要是ibm為自己的aix操作系統(tǒng)開發(fā)的,但是也可以應(yīng)用在linux操作系統(tǒng)上),而nmon_analyser是nmon的一個(gè)工具可以把nmon生成的報(bào)告轉(zhuǎn)化成excel報(bào)表的形式供我們查看。下面先讓看下nmon_analyser生成的報(bào)表。
|—1、安裝JMeter插
新的版本提供了插件管理器,但是需要自行下載安裝。
下載路徑:? https://jmeter-plugins.org/downloads/all/

放在lib/ext目錄下,然后重啟Jmeter,會(huì)在菜單-選項(xiàng)下多一個(gè) Plugins Manager菜單,打開即可對(duì)插件進(jìn)行安裝、升級(jí)。

|—2、Jmeter 插件安裝
打開 Plugins Manager 菜單,在可獲得的插件列表中選擇自己需要的插件進(jìn)行安裝。
常用的插件:
? 支持Base64加解密等多個(gè)函數(shù)的插件?Custom JMeter Functions
? 用于服務(wù)器性能監(jiān)視的?PerfMon Metrics Collector
? 用于建立壓力變化模型的?Stepping Thread Group
? 用于Json解析的?JSON Path Extractor
? 用于展示響應(yīng)時(shí)間曲線的?Response Times Over Time
? 用于展示TPS曲線的?Transactions per Second
|—1、打開插件管理器Plugins Manager

可以看到:
? Installed Plugins: 已經(jīng)安裝的插件
? Avaliable Plugins: 可以下載的其他插件
? Upgrades:一些插件的更新
|—2、比如我們要用自定義線程組這個(gè)插件,它不是默認(rèn)安裝的,那就可以進(jìn)入Avaliable Plugins 來(lái)下載安裝

搜索thread,選中 Custom Thread Groups,點(diǎn)擊 Apply Changes and Restart JMeter
3、重啟后就可以添加自定義線程組了
|—3、安裝自定義線程組

|—1、自定義線程組設(shè)計(jì)測(cè)試場(chǎng)景
JMeter中我們使用線程組來(lái)控制測(cè)試場(chǎng)景,原線程組無(wú)法設(shè)計(jì)復(fù)雜測(cè)試場(chǎng)景,所以要用到JMeter插件提
供的線程組元件Ultimate Thread Group 和 Stepping Thread Group。
|—2、插件安裝:
JMeter插件的安裝參考:https://blog.csdn.net/galen2016/article/details/92806212
什么是實(shí)際的性能測(cè)試???
1)思考時(shí)間:用戶在做不同操作之間有時(shí)間停頓,或者延遲,思考時(shí)間就是模擬用戶的操作過(guò)程中的停頓的間。
2)步伐,速度:主要包括,大量用戶進(jìn)來(lái)的時(shí)間和退出時(shí)間,控制迭代之間的時(shí)間,例如,現(xiàn)場(chǎng)用戶20個(gè),設(shè)置5秒內(nèi)全部進(jìn)入,就是這樣的情況。
3)壓力測(cè)試時(shí)間:假如需要500個(gè)人同時(shí)測(cè)試30分鐘,這里持續(xù)30分鐘就是壓測(cè)時(shí)間。
|—3、Ultimate Thread Group
一、簡(jiǎn)單場(chǎng)景
100個(gè)線程,在10秒內(nèi)加載完,然后持續(xù)運(yùn)行600秒,最后在10秒內(nèi)結(jié)束所有線程,如下圖:

參數(shù)說(shuō)明:
? Start Threads Count:開始線程數(shù)量
? Initial Delay,sec:延時(shí)啟動(dòng)當(dāng)前行的線程,單位:秒
? Startup Time,sec:線程加載多長(zhǎng)時(shí)間,單位:秒
? Hold Load For,sec:當(dāng)前行線程達(dá)到峰值后的穩(wěn)定加載時(shí)間,單位:秒
? Shutdown Time:線程在多長(zhǎng)時(shí)間內(nèi)停止下來(lái),單位:秒
二、浪涌場(chǎng)景

說(shuō)明:
第一次從0秒開始,在10秒內(nèi)啟動(dòng)100個(gè)線程,然后持續(xù)運(yùn)行600秒,再在10秒內(nèi)停止這100個(gè)線程
第二次從第620秒開始,在10秒內(nèi)啟動(dòng)100個(gè)線程,然后持續(xù)運(yùn)行600秒,再在10秒內(nèi)停止這100個(gè)線程
第三次第四次 依次類推,只需改動(dòng)Initial Delay的值,本次Initial Delay的值=等于上一次的(Initial Delay+Startup Time+Hold Load For + Shutdown Time)
三、持續(xù)加壓場(chǎng)景

說(shuō)明:
這是一個(gè)負(fù)載不斷增大的場(chǎng)景,有3條線程任務(wù)作業(yè),每一個(gè)持續(xù)時(shí)間是600秒,100個(gè)線程運(yùn)行600秒后再加100個(gè),共300個(gè)線程。然后從第1810秒開始,沒(méi)10秒停止100個(gè)線程。整個(gè)場(chǎng)景共運(yùn)行1840秒
注意:Hold Load For的值要從最后一個(gè)任務(wù)往前推算
|—4、Stepping Thread Group
下圖是100個(gè)線程按階梯狀遞增運(yùn)行,每5秒內(nèi)加載20個(gè)線程直到100,每個(gè)階梯是600秒,最后一個(gè)階梯是1000秒,即并發(fā)100個(gè)線程時(shí),運(yùn)行1000秒。最后每秒停止10個(gè)線程。
這是一個(gè)典型的負(fù)載測(cè)試場(chǎng)景,持續(xù)增加負(fù)載,檢驗(yàn)服務(wù)器在不同負(fù)載下的性能。

參數(shù)說(shuō)明:
? This group will start:加載多少線程
? First,wait for:等待多長(zhǎng)時(shí)間開始加載線程
? Then start:初次加載多少個(gè)線程
? Next,add:下一次加載多少個(gè)線程
? Threads every:當(dāng)前運(yùn)行多長(zhǎng)時(shí)間后再次加載線程
? Using ramp_up:加載線程時(shí)間
? Then hold load for:線程全部加載完成后運(yùn)行多長(zhǎng)時(shí)間
? Finally,stop /threads every:多長(zhǎng)時(shí)間停止多少個(gè)線程
|—性能分析
排除法
1,響應(yīng)是太長(zhǎng)? 5s
1,中間件問(wèn)題? apache中間件
?? ? ? ?? 添加中間件的線程數(shù)
?? ? ? ? ? ? ? linux? 查看當(dāng)前http線程數(shù)量
?? ? ? ? ? ? ? ps -ef|grep httpd|wc -l
?? ? ? ? ? ? ? ps -ef 查看進(jìn)程? grep httpd 過(guò)濾進(jìn)程 httpd
?? ? ? ? ? ? ? wc -l? 統(tǒng)計(jì)數(shù)量
?? ? ? ? ? ? ? http.conf文件中 修改 最大連接數(shù)? ? ? ? ? ?
?? ? ? ? ? ? ? /etc/httpd/conf/httpd.conf
2、后臺(tái)代碼
?? ? a. 代碼架構(gòu)合不合理
?? ? b. 代碼算法是否存在優(yōu)化的空間
3、數(shù)據(jù)庫(kù)問(wèn)題
?? ? a.查看數(shù)據(jù)庫(kù)的最大連接數(shù)
?? ?? mysql -u root -p123456
?? ?? 查詢最大連接數(shù)據(jù):show VARIABLES like '%max_connect%'
?? ?? 最多? 支持3000-4000
?? ?? set GLOBAL MAX_CONNECTIONS=1000? 修改連接數(shù)
?? ? b.查看sql運(yùn)行時(shí)間
?? ?? show full PROCESSLIST 展示所有sql運(yùn)行的時(shí)間
?? ?? 如果 運(yùn)行時(shí)間過(guò)長(zhǎng),進(jìn)行sql語(yǔ)句優(yōu)化? ??
?? ?? 1,進(jìn)行sql優(yōu)化
?? ?? 2,建立索引文件(增加查詢速度)? ??
??? c.索引緩存大小
?? ? ? show VARIABLES like 'key_buffer_size%'? 查看緩存空間大小
?? ? ? key_reads 從磁盤讀取數(shù)據(jù)
?? ? ? Key_read_requests 總的數(shù)據(jù)讀取
?? ? ? 命中率:
?? ? ? 命中率:
?? ? ? 命中率計(jì)算=key_reads/Key_read_requests*100=1.7%? ? ? ? ? ? ??
?? ? ? 命中率計(jì)算=key_reads/Key_read_requests*100%=1.7%
?? ? ? 當(dāng)命中率 低于0.1% 算ok 高于0.1% 提高緩存空間大小
?? ? ? 當(dāng)命中率小于0.01% 適當(dāng)減少一些緩存空間大小
?? ? d,sleep過(guò)多
?? ? e,臨時(shí)表空間? ??
?4、 排除網(wǎng)絡(luò)問(wèn)題? ? ? ? ? ? ? ?? #抓包數(shù)據(jù)
?? ?? 提升網(wǎng)絡(luò)帶寬? 200M? 看響應(yīng)時(shí)間? 會(huì)不會(huì)大幅度縮短
?5,提升服務(wù)器硬件設(shè)備
?? ?? cpu,內(nèi)存,磁盤
|—分布式壓測(cè)
一臺(tái)主控機(jī),多臺(tái)客戶機(jī)
1、在主控機(jī)上編寫性能測(cè)試腳本
2、修改主控機(jī)的配置文件jemeter.properties文件,將所有的客戶機(jī)的IP地址及端口設(shè)置好
3、在主控機(jī)的Jmeter頁(yè)面啟動(dòng)客戶機(jī)?
?? ? ? 運(yùn)行->遠(yuǎn)程啟動(dòng)(指定啟動(dòng)哪一臺(tái))
?? ? ? 運(yùn)行->遠(yuǎn)程啟動(dòng)所有
備注說(shuō)明:如果客戶機(jī)不夠,也可以將主控機(jī)用來(lái)當(dāng)成客戶機(jī)向服務(wù)器發(fā)請(qǐng)求,這里需要在jemeter.properties配置文件中把主控機(jī)的ip地址及端口加入,并啟動(dòng)主控機(jī)的jmeter-server.bat文件即可。
所有客戶機(jī)的數(shù)據(jù)全部會(huì)自動(dòng)發(fā)送給主控機(jī),并進(jìn)行分析。