转帖Jmeter中的几个重要测试指标释义
Aggregate Report 是?JMeter?常用的一個(gè) Listener,中文被翻譯為“聚合報(bào)告”。今天再次有同行問(wèn)到這個(gè)報(bào)告中的各項(xiàng)數(shù)據(jù)表示什么意思,順便在這里公布一下,以備大家查閱。
如果大家都是做Web應(yīng)用的性能測(cè)試,例如只有一個(gè)登錄的請(qǐng)求,那么在Aggregate Report中,會(huì)顯示一行數(shù)據(jù),共有10個(gè)字段,含義分別如下。
Label:每個(gè) JMeter 的 element(例如 HTTP Request)都有一個(gè) Name 屬性,這里顯示的就是 Name 屬性的值
#Samples:表示你這次測(cè)試中一共發(fā)出了多少個(gè)請(qǐng)求,如果模擬10個(gè)用戶,每個(gè)用戶迭代10次,那么這里顯示100
Average:平均響應(yīng)時(shí)間——默認(rèn)情況下是單個(gè) Request 的平均響應(yīng)時(shí)間,當(dāng)使用了 Transaction Controller 時(shí),也可以以Transaction 為單位顯示平均響應(yīng)時(shí)間
Median:中位數(shù),也就是 50% 用戶的響應(yīng)時(shí)間
90% Line:90% 用戶的響應(yīng)時(shí)間
Note:關(guān)于 50% 和 90% 并發(fā)用戶數(shù)的含義,請(qǐng)參考下文
http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html
Min:最小響應(yīng)時(shí)間
Max:最大響應(yīng)時(shí)間
Error%:本次測(cè)試中出現(xiàn)錯(cuò)誤的請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù)
Throughput:吞吐量——默認(rèn)情況下表示每秒完成的請(qǐng)求數(shù)(Request per Second),當(dāng)使用了 Transaction Controller 時(shí),也可以表示類似?LoadRunner?的 Transaction per Second 數(shù)
KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量,相當(dāng)于LoadRunner中的Throughput/Sec
?
?
?
一、基本概念
1.測(cè)試計(jì)劃是使用?JMeter?進(jìn)行測(cè)試的起點(diǎn),它是其它?JMeter?測(cè)試元件的容器。
2.線程組:代表一定數(shù)量的并發(fā)用戶,它可以用來(lái)模擬并發(fā)用戶發(fā)送請(qǐng)求。實(shí)際的請(qǐng)求內(nèi)容在Sampler中定義,它被線程組包含。可以在“測(cè)試計(jì)劃->添加->線程組”來(lái)建立它,然后在線程組面板里有幾個(gè)輸入欄:線程數(shù)、Ramp-Up Period(in seconds)、循環(huán)次數(shù),其中Ramp-Up Period(in seconds)表示在這時(shí)間內(nèi)創(chuàng)建完所有的線程。如有8個(gè)線程,Ramp-Up = 200秒,那么線程的啟動(dòng)時(shí)間間隔為200/8=25秒,這樣的好處是:一開(kāi)始不會(huì)對(duì)服務(wù)器有太大的負(fù)載。線程組是為模擬并發(fā)負(fù)載而設(shè)計(jì)。
3、取樣器(Sampler):模擬各種請(qǐng)求。所有實(shí)際的測(cè)試任務(wù)都由取樣器承擔(dān),存在很多種請(qǐng)求。如:HTTP 、ftp請(qǐng)求等等。
4、監(jiān)聽(tīng)器:負(fù)責(zé)收集測(cè)試結(jié)果,同時(shí)也被告知了結(jié)果顯示的方式。功能是對(duì)取樣器的請(qǐng)求結(jié)果顯示、統(tǒng)計(jì)一些數(shù)據(jù)(吞吐量、KB/S……)等。
6、斷言:用于來(lái)判斷請(qǐng)求響應(yīng)的結(jié)果是否如用戶所期望,是否正確。它可以用來(lái)隔離問(wèn)題域,即在確保功能正確的前提下執(zhí)行壓力測(cè)試。這個(gè)限制對(duì)于有效的測(cè)試是非常有用的。
7、定時(shí)器:負(fù)責(zé)定義請(qǐng)求(線程)之間的延遲間隔,模擬對(duì)服務(wù)器的連續(xù)請(qǐng)求。
5、邏輯控制器:允許自定義JMeter發(fā)送請(qǐng)求的行為邏輯,它與Sampler結(jié)合使用可以模擬復(fù)雜的請(qǐng)求序列。
8. 配置元件維護(hù)Sampler需要的配置信息,并根據(jù)實(shí)際的需要會(huì)修改請(qǐng)求的內(nèi)容。
9. 前置處理器和后置處理器負(fù)責(zé)在生成請(qǐng)求之前和之后完成工作。前置處理器常常用來(lái)修改請(qǐng)求的設(shè)置,后置處理器則常常用來(lái)處理響應(yīng)的數(shù)據(jù)。
二、Jmeter報(bào)告 (轉(zhuǎn)載)
http://www.cnblogs.com/jackei/archive/2006/11/13/558720.html
1、Aggregate Report 解析
Aggregate Report 是?JMeter?常用的一個(gè) Listener,中文被翻譯為“聚合報(bào)告”。今天再次有同行問(wèn)到這個(gè)報(bào)告中的各項(xiàng)數(shù)據(jù)表示什么意思,順便在這里公布一下,以備大家查閱。
如果大家都是做Web應(yīng)用的性能測(cè)試,例如只有一個(gè)登錄的請(qǐng)求,那么在Aggregate Report中,會(huì)顯示一行數(shù)據(jù),共有10個(gè)字段,含義分別如下。
Label:每個(gè)?JMeter?的 element(例如 HTTP Request)都有一個(gè) Name 屬性,這里顯示的就是 Name 屬性的值
#Samples:表示你這次測(cè)試中一共發(fā)出了多少個(gè)請(qǐng)求,如果模擬10個(gè)用戶,每個(gè)用戶迭代10次,那么這里顯示100
Average:平均響應(yīng)時(shí)間——默認(rèn)情況下是單個(gè) Request 的平均響應(yīng)時(shí)間,當(dāng)使用了 Transaction Controller 時(shí),也可以以Transaction 為單位顯示平均響應(yīng)時(shí)間
Median:中位數(shù),也就是 50% 用戶的響應(yīng)時(shí)間
90% Line:90% 用戶的響應(yīng)時(shí)間
Note:關(guān)于 50% 和 90% 并發(fā)用戶數(shù)的含義,請(qǐng)參考下文
http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html
Min:最小響應(yīng)時(shí)間
Max:最大響應(yīng)時(shí)間
Error%:本次測(cè)試中出現(xiàn)錯(cuò)誤的請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù)
Throughput:吞吐量——默認(rèn)情況下表示每秒完成的請(qǐng)求數(shù)(Request per Second),當(dāng)使用了 Transaction Controller 時(shí),也可以表示類似 LoadRunner 的 Transaction per Second 數(shù)
KB/Sec:每秒從服務(wù)器端接收到的數(shù)據(jù)量,相當(dāng)于LoadRunner中的Throughput/Sec
基本知識(shí):
1、吞吐量:是指在沒(méi)有幀丟失的情況下,設(shè)備能夠接受的最大速率。
2、存儲(chǔ)的最小單位是字節(jié)Byte,對(duì)于存儲(chǔ)單位,有以下幾個(gè)單位,GB、MB和KB,那么這三者之間的換算關(guān)系是:1GB=1024MB,1MB=1024KB,1KB=1024Bytes。
Bit :“位”,稱為bit,也就是比特,有的時(shí)候也稱為位。一個(gè)字節(jié)為8位二進(jìn)制表示。
Byte:“字節(jié)”,一個(gè)字節(jié)就是8比特。
3、Mbps (million bits per second 兆位/秒) 代表每秒傳輸1,000,000比特。該縮寫用來(lái)描述數(shù)據(jù)傳輸速度。例如:4Mbps=每秒鐘傳輸4M比特。
數(shù)據(jù)傳輸速率的單位,字母b(bit)是比特和字母 B (Byte)是字節(jié)。
4、吞吐量與帶寬的區(qū)分:吞吐量和帶寬是很容易搞混的一個(gè)詞,兩者的單位都是Mbps.先讓我們來(lái)看兩者對(duì)應(yīng)的英語(yǔ),吞吐量:throughput ; 帶寬: Max net bitrate 。當(dāng)我們討論通信鏈路的帶寬時(shí),一般是指鏈路上每秒所能傳送的比特?cái)?shù)。我們可以說(shuō)以太網(wǎng)的帶寬是10Mbps。但是,我們需要區(qū)分鏈路上的可用帶寬(帶寬)與實(shí)際鏈路中每秒所能傳送的比特?cái)?shù)(吞吐量)。我們傾向于用“吞吐量”一次來(lái)表示一個(gè)系統(tǒng)的測(cè)試性能。這樣,因?yàn)閷?shí)現(xiàn)受各種低效率因素的影響,所以由一段帶寬為10Mbps的鏈路連接的一對(duì)節(jié)點(diǎn)可能只達(dá)到2Mbps的吞吐量。這樣就意味著,一個(gè)主機(jī)上的應(yīng)用能夠以2Mbps的速度向另外的一個(gè)主機(jī)發(fā)送數(shù)據(jù)。
5、方差和標(biāo)準(zhǔn)差都是用來(lái)描述一組數(shù)據(jù)的波動(dòng)性的(集中還是分散),標(biāo)準(zhǔn)差的平方就是方差。方差越大,數(shù)據(jù)的波動(dòng)越大。
三.利用BadBoy生成測(cè)試計(jì)劃(測(cè)試腳本)
badBoy可以非常容易的生成web的測(cè)試腳本。類似與LoadRunner的使用,輸入站點(diǎn)的URL,點(diǎn)擊Record開(kāi)始錄制。File –> Export toJmeter?,導(dǎo)出為Jmeter認(rèn)識(shí)的測(cè)試腳本。
四.一個(gè)簡(jiǎn)單的測(cè)試示例思路(目前自己思路,不斷改進(jìn))
a. 需要的“測(cè)試腳本”,對(duì)應(yīng)web的應(yīng)用使用badboy生成測(cè)試腳本。直接導(dǎo)入Jmeter,進(jìn)行配置。
b.如圖
TestPlan :是整個(gè)Jmeter測(cè)試執(zhí)行的容器。
ThreadGroup :模擬請(qǐng)求,定義線程數(shù)、Ramp-Up Period、循環(huán)次數(shù)。
Step1 :循環(huán)控制器 ,控制Sample的執(zhí)行次數(shù)。
Sample取樣器 :決定進(jìn)行那種類型的測(cè)試,如http、ftp等。
監(jiān)聽(tīng)器 :圖形結(jié)果、聚合報(bào)告。
定時(shí)器 :Random類型,定義線程請(qǐng)求的延遲。
c.聚合報(bào)告的解釋
Label :各個(gè)模擬測(cè)試的名稱
#Samples :各個(gè)測(cè)試的樣本總數(shù)
Average :每個(gè)請(qǐng)求的平均響應(yīng)時(shí)間
Median :中值,即50%請(qǐng)求的平均響應(yīng)時(shí)間
90%Line :90%請(qǐng)求的響應(yīng)時(shí)間
Min :最小響應(yīng)時(shí)間 ,Max :最大的響應(yīng)時(shí)間
Error% :錯(cuò)誤響應(yīng)的概率。即無(wú)法響應(yīng)的概率。
ThroughPut :吞吐量 -- 默認(rèn)情況下表示每秒完成的請(qǐng)求數(shù)(Request per Second)。
KB/Sec :每秒從服務(wù)器端接收到的數(shù)據(jù)量。
五.Jmeter常見(jiàn)問(wèn)題 (轉(zhuǎn)載) http://www.51testing.com/?uid-128005-action-viewspace-itemid-84094
說(shuō)明:這些問(wèn)答是從網(wǎng)上轉(zhuǎn)載的,自己修改了其中的一些內(nèi)容,如果大家興趣,可以將大家在使用Jmeter的時(shí)候碰到的問(wèn)題寫下來(lái),我們一起補(bǔ)充到這個(gè)問(wèn)答里面,共同努力完善jmeter的資料。
1.??JMeter的工作原理是什么?
向服務(wù)器提交請(qǐng)求;從服務(wù)器取回請(qǐng)求返回的結(jié)果。
2.??JMeter的作用?
????JMeter可以用于測(cè)試靜態(tài)或者動(dòng)態(tài)資源的性能(文件、Servlets、Perl腳本、java對(duì)象、數(shù)據(jù)庫(kù)和查詢、ftp服務(wù)器或者其他的資源)。JMeter用于模擬在服務(wù)器、網(wǎng)絡(luò)或者其他對(duì)象上附加高負(fù)載以測(cè)試他們提供服務(wù)的受壓能力,或者分析他們提供的服務(wù)在不同負(fù)載條件下的總性能情況。你可以用JMeter提供的圖形化界面分析性能指標(biāo)或者在高負(fù)載情況下測(cè)試服務(wù)器/腳本/對(duì)象的行為。
3.?? 怎樣能看到j(luò)meter提供的腳本范例?
在\JMeter\jakarta-jmeter-2.0.3\xdocs\demos目錄下。
4.?? 怎樣設(shè)置并發(fā)用戶數(shù)?
?? 選中可視化界面中左邊樹(shù)的Test Plan節(jié)點(diǎn),單擊右鍵,選擇Add-> Thread Group,其中Number of Threads參數(shù)用來(lái)設(shè)置發(fā)送請(qǐng)求的用戶數(shù)目。
5.??JMeter的運(yùn)行指示?
???Jmeter在運(yùn)行時(shí),右上角有個(gè)單選框大小的小框框,運(yùn)行是該框框?yàn)榫G色,運(yùn)行完畢后,該框框?yàn)榘咨?br />
6.? User Parameters的作用是什么?
??? 提高腳本可用性
7.?? 在result里會(huì)出現(xiàn)彩色字體的http response code,說(shuō)明什么呢?
Http response code是http返回值,彩色字體較引人注目,可以使用戶迅速關(guān)注。象綠色的302就說(shuō)明在這一步驟中,返回值取自本機(jī)的catch,而不是server。
8.?? 怎樣計(jì)算Ramp-up period時(shí)間?
Ramp-up period是指每個(gè)請(qǐng)求發(fā)生的總時(shí)間間隔,單位是秒。如果Number of Threads設(shè)置為5,而Ramp-up period是10,那么每個(gè)請(qǐng)求之間的間隔就是10/5,也就是2秒。Ramp-up period設(shè)置為0,就是同時(shí)并發(fā)請(qǐng)求。
9.??? Get和Post的區(qū)別?
?? 他們是http協(xié)議的2種不同實(shí)現(xiàn)方式。Get是指server從Request URL取得所需參數(shù)。從result中的request中可以看到,get可以看到參數(shù),但是post是主動(dòng)向server發(fā)送參數(shù),所以一般看不到這些參數(shù)的。
10. 哪些原因可能導(dǎo)致error的產(chǎn)生?
?? a.?? Http錯(cuò)誤,包括不響應(yīng),結(jié)果找不到,數(shù)據(jù)錯(cuò)誤等等;
?? b.???JMeter本身原因產(chǎn)生的錯(cuò)誤。
11. 為什么Aggregate Report結(jié)果中的Total值不是真正的總和?
JMeter給結(jié)果中total的定義是并不完全指總和,為了方便使用,它的值表現(xiàn)了所在列的代表值,比如min值,它的total就是所在列的最小值。下圖就是total在各列所表示的意思。
12.??JMeter的Thread Number是提供多個(gè)不同用戶并發(fā)的功能么?
不是,Thread Number僅僅是指并發(fā)數(shù),如果需要實(shí)現(xiàn)多個(gè)不同用戶并發(fā),我們應(yīng)該采用其它方法,比如通過(guò)在jmeter外建立csv文件的方法來(lái)實(shí)現(xiàn)。
13. 同時(shí)并發(fā)請(qǐng)求時(shí),若需要模擬不同的用戶同時(shí)向不同的server并發(fā)請(qǐng)求,怎樣實(shí)現(xiàn)呢?
?? 方法很靈活,我們可以將不同的server在thread里面預(yù)先寫好。或者預(yù)先將固定的變量值寫入csv文件,這樣還可以方便修改。然后將文件添加到User Parameters。
14.?? User Parameter中的DUMMY是什么意思?
???? 當(dāng)其具體內(nèi)容是${__CSVRead(${__property(user.dir)}${FILENAME},next())}時(shí)用來(lái)模擬讀文件的下一行。
15.?? 當(dāng)測(cè)試對(duì)象在多server間跳轉(zhuǎn)時(shí),應(yīng)該怎樣處理?
?? 程序運(yùn)行時(shí),有些http和隱函數(shù)會(huì)攜帶另外的server IP,我們可以從他們的返回值中獲取。
16.?? 為何測(cè)試對(duì)象是http和https混雜出現(xiàn)?
?? Https是加密協(xié)議,為了安全,一般不推薦使用http,但是有些地方,使用https過(guò)于復(fù)雜或者較難實(shí)現(xiàn),會(huì)采用http協(xié)議。
17.?? Http和https的默認(rèn)端口是什么?
?? Apache server (Http)的默認(rèn)端口是80;
?? SSL (Https)的默認(rèn)端口是443。
18.?? 為何在run時(shí),有些頁(yè)面失敗,但是最后不影響結(jié)果?
?? 原因較多,值得提及的一種是因?yàn)橹髁黜?yè)面與它不存在依賴關(guān)系,所以即使這樣的頁(yè)面出錯(cuò),也不會(huì)影響運(yùn)行得到正常結(jié)果,但是這樣會(huì)影響到測(cè)試的結(jié)果以及分析結(jié)果。
19. 為什么腳本剛開(kāi)始運(yùn)行就有錯(cuò)誤,其后來(lái)的腳本還可運(yùn)行?
?? 在Thread Group中有相關(guān)設(shè)置,如果選擇了continue,即使前面的腳本出現(xiàn)錯(cuò)誤,整個(gè)thread仍會(huì)運(yùn)行直到結(jié)束。選擇Stop Thread會(huì)結(jié)束當(dāng)前thread;選擇Stop Test則會(huì)結(jié)束全部的thread。推薦選項(xiàng)是Stop Thread。
20.???? 在Regular expression_r Extractor會(huì)看到Template的值是$1$,這個(gè)值是什么意思呢?
?? $1$是指取第一個(gè)()里面的值。如果Regular expression_r的數(shù)值有多個(gè),用這種方法可以避免不必要的麻煩。
21.??? Regular expression_r中的(.*)是什么意思?
?? 那是一個(gè)正則表達(dá)式(regular expression_r)?!?’等同于sql語(yǔ)言中的’?’,表示可有可無(wú)。’*’表示0個(gè)或多個(gè)?!?)’表示需要取值。(.*)表達(dá)任意長(zhǎng)度的字符串。
22.?? 在讀取Regular expression_r時(shí)要注意什么?
?? 一定要保證所取數(shù)值的絕對(duì)唯一性。
23.?? 怎樣才能判斷什么樣的情況需要添加Regular expression_r Extractor?
?? 檢查Http Request中的Send Parameters,如果有某個(gè)參數(shù)是其前一個(gè)page中所沒(méi)有給出的,就要到原文件中查找,并添加Regular expression_r Extractor到其前一page的http request中。
24.?? 在自動(dòng)獲取的腳本中有時(shí)會(huì)出現(xiàn)空的http request,是什么意思呢?
?? 是因?yàn)樵讷@取腳本時(shí)有些錯(cuò)誤,是腳本工具原因。在run時(shí)這種錯(cuò)誤不參與運(yùn)行的。
25.?? 在運(yùn)行結(jié)果中為何有rate為N/A的情況出現(xiàn)?
?? 可能因?yàn)镴Meter自身問(wèn)題造成,再次運(yùn)行可以得到正確結(jié)果。
26.?? 常用http錯(cuò)誤代碼有哪些?
??? 400無(wú)法解析此請(qǐng)求。
??? 403禁止訪問(wèn):訪問(wèn)被拒絕。
??? 404找不到文件或目錄。
??? 405用于訪問(wèn)該頁(yè)的HTTP動(dòng)作未被許可。
??? 410文件已刪除。
??? 500服務(wù)器內(nèi)部錯(cuò)誤。
??? 501標(biāo)題值指定的配置沒(méi)有執(zhí)行。
??? 502 Web服務(wù)器作為網(wǎng)關(guān)或代理服務(wù)器時(shí)收到無(wú)效的響應(yīng)。
27.??? Http request中的Send Parameters是指什么?
?? 是指code中寫定的值和自定義變量中得到的值,就是在運(yùn)行頁(yè)面時(shí)需要的參數(shù)。
28.??? Parameters在頁(yè)面中是不斷傳遞的么?
?? 是的。參數(shù)再產(chǎn)生后會(huì)在頁(yè)面中一直傳遞到所需頁(yè)面。所以我們可以在動(dòng)態(tài)參數(shù)產(chǎn)生時(shí)捕獲它,也可以在所需頁(yè)面的上一頁(yè)面捕獲。(但是這樣可能有錯(cuò)誤,最好在產(chǎn)生頁(yè)面獲取)
29.?? 在使用JMeter測(cè)試時(shí),是完全模擬用戶操作么?造成的結(jié)果也和用戶操作完全相同么?
?? 是的。JMeter完全模擬用戶操作,所以操作記錄會(huì)全部寫入DB.在運(yùn)行失敗時(shí),可能會(huì)產(chǎn)生錯(cuò)誤數(shù)據(jù),這就取決于腳本檢查是否嚴(yán)謹(jǐn),否則錯(cuò)誤數(shù)據(jù)也會(huì)進(jìn)入DB,給程序運(yùn)行帶來(lái)很多麻煩。
六.Jmeter測(cè)試心得(轉(zhuǎn)載) http://www.javaeye.com/topic/211216
企業(yè)應(yīng)用開(kāi)發(fā)過(guò)程中,性能測(cè)試是很重要的一個(gè)環(huán)節(jié),在這個(gè)環(huán)節(jié)中Apache的JMeter以它開(kāi)源、100%純Java、操作方便等優(yōu)點(diǎn)發(fā)揮著很大的作用。
經(jīng)過(guò)一段時(shí)間的使用,多少有些心得和技巧,拿出來(lái)共享,希望能有些幫助。
1、制作測(cè)試腳本:
手工制作測(cè)試腳本,需要你知道請(qǐng)求的url和攜帶的參數(shù)等等,太花費(fèi)時(shí)間,
所以可以用badboy工具錄制腳本。這個(gè)工具雖然不是開(kāi)源的,但是卻可以用來(lái)免費(fèi)的錄制成.jmx的腳本,使用起來(lái)很方便。
官方網(wǎng)站是:http://www.badboy.com.au/
2、出現(xiàn)亂碼了?
在用JMeter發(fā)行HTTPRequest時(shí),在請(qǐng)求參數(shù)中有中文時(shí),發(fā)現(xiàn)存儲(chǔ)到DB中后,相應(yīng)的字段是亂碼,
明明在參數(shù)后面的Encode選項(xiàng)中打了V。后來(lái)發(fā)現(xiàn)badboy錄制腳本的時(shí)候并沒(méi)有記錄編碼方式,所以修改腳本,
在Content encoding中設(shè)置正確的編碼方式就不會(huì)出現(xiàn)亂碼了。
3、JMeter的妙用---準(zhǔn)備測(cè)試數(shù)據(jù):
要求性能測(cè)試開(kāi)始前,先準(zhǔn)備5W條數(shù)據(jù)。當(dāng)然可以通過(guò)直接修改DB,但是如果這5W條數(shù)據(jù)涉及到很多表的關(guān)聯(lián),
甚至還要通過(guò)存儲(chǔ)過(guò)程的處理怎么辦,直接修改DB很容易出現(xiàn)錯(cuò)誤的數(shù)據(jù),要是在客戶的機(jī)器上弄錯(cuò),可就闖禍了。
這時(shí)候想到了JMeter,它本來(lái)是用來(lái)模擬大量用戶并發(fā)請(qǐng)求的,現(xiàn)在用它來(lái)批量的生成數(shù)據(jù)吧。
如果要求每條數(shù)據(jù)都不同,就要修改腳本,使用JMeter的函數(shù)來(lái)動(dòng)態(tài)產(chǎn)生數(shù)據(jù),比較常用的是CSVRead函數(shù),
記不住名的話Ctrl+F可以呼喚出函數(shù)助手。使用這個(gè)函數(shù)的時(shí)候需要注意幾點(diǎn),首先是csv文件的編碼格式,
使用ansi沒(méi)有問(wèn)題,使用unicode時(shí)會(huì)使讀取的第一行數(shù)據(jù)出現(xiàn)錯(cuò)誤;
${__CSVRead(data.txt,0)}---讀取本行的第一列值
${__CSVRead(data.txt,1)}${__CSVRead(data.txt,next)}---讀取本行的第二列值,并把行標(biāo)移動(dòng)到下一行
試驗(yàn)證明JMeter應(yīng)該做好了同步,在多線程環(huán)境下上面的調(diào)用方法沒(méi)有問(wèn)題;
最后,修改JMeter的線程數(shù)會(huì)加快數(shù)據(jù)生成的速度,原理是當(dāng)并發(fā)線程在20左右的時(shí)候會(huì)達(dá)到最大的吞吐量(request/分),
所以應(yīng)該設(shè)定線程數(shù)20左右。
4、JMeter中debug方法:
JMeter提供了log函數(shù)輸出log,但是有時(shí)候并不好用,比如我想輸出某個(gè)函數(shù)的返回值看是不是正確的,
${__log(${__CSVRead(data.txt,1)})}這樣的寫法是錯(cuò)誤的,JMeter會(huì)拋出異常,該怎么辦呢?
答案是巧用監(jiān)聽(tīng)器(Listener)來(lái)輸出想看到的數(shù)據(jù),結(jié)果顯示為樹(shù)的那個(gè)監(jiān)聽(tīng)器,
它可以讓你查看每個(gè)sampler的請(qǐng)求數(shù)據(jù)和響應(yīng)數(shù)據(jù),在請(qǐng)求數(shù)據(jù)中就有你想看到的信息。
5、常用的功能:
?使用HTTP Cookie Manager或URL重寫實(shí)現(xiàn)同一線程內(nèi)的多個(gè)請(qǐng)求共享Session。
?把Login的請(qǐng)求放到只執(zhí)行一次的控制器中,那么即使循環(huán)多次,Login也只請(qǐng)求一次。
?如果想讓多個(gè)線程在同一時(shí)刻同時(shí)請(qǐng)求,那么用Synchronizing Timer來(lái)做集合點(diǎn)。
?為了節(jié)省系統(tǒng)資源,使用非窗口模式運(yùn)行JMeter(jmeter?-n -t test.jmx)
?如果模擬并發(fā)用戶過(guò)多,比如200線程,那么可以分散到多臺(tái)機(jī)器上運(yùn)行Jmeter(比如4臺(tái)電腦,每臺(tái)50線程)
更多功能請(qǐng)參照使用手冊(cè)
中文手冊(cè)(未完成)http://wiki.javascud.org/pages/viewpage.action?pageId=5566
6、在winnt系統(tǒng)上,使用perfmon來(lái)幫助Jmeter采集服務(wù)器的系統(tǒng)資源數(shù)據(jù),可以配置log輸出這些數(shù)據(jù)作為性能瓶頸分析時(shí)使用。
七.置信區(qū)間 http://java.chinaitlab.com/tools/355421.html
對(duì)數(shù)據(jù)進(jìn)行更科學(xué)的分析,確定測(cè)試結(jié)果。類似于Jmeter聚合報(bào)告的90% Line給出的參考,而不能僅僅參考均值。
記:熟悉Jmeter使用之后,自己更應(yīng)該關(guān)注的是“測(cè)試實(shí)踐”,以及通過(guò)怎么樣的方法改進(jìn)性能。
鏈接地址:http://miss678.iteye.com/blog/1071435
轉(zhuǎn)載于:https://www.cnblogs.com/wvqusrtg/p/5355821.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的转帖Jmeter中的几个重要测试指标释义的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: BZOJ 3203 sdoi 2013
- 下一篇: 关于阿里面试的一个小题(推荐)