一影锈、基本概念
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 to Jmeter 蹦狂,導(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)榘咨?/p>
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)性能。