使用多臺機器產生負載的操作步驟如下:
(1)在所有期望運行jmeter作為 負載生成器的機器上安裝jmeter, 并確定其中一臺機器作為 controller ,其他的的機器作為agent 。然后運行所有 agent 機器上的jmeter-server 文件(假定使用兩臺機器192.168.0.100 和192.168.0.101 作為agent)
(2)在controller機器的jmeter的bin目錄下,找到jmeter.properties 文件,編輯該文件:
查找:
remote_hosts=127.0.0.1
修改為:
remote_hosts=192.168.0.100:1099,192.168.0.101:1099
這里要特別注意端口后,有些資料說明端口1644為jmeter的controller 和agent 之間進行通信的默認RMI端口號,但是在測試時發現,設置為1644運行不成功,改成1099后運行通過。另外還要留意agent的機子是否開啟了防火墻等。
(3)啟動controller 機子上的jmeter應用,選擇菜單“運行”--->“遠程啟動”,來分別啟動agent ,也可以直接選擇“遠程全部啟動”來將所有的agent啟動。
啟動Debug 日志記錄
大多數測試元件都支持Debug 日志記錄。如果通過 GUI 運行測試計劃,那么在選中測試元件后,可以通過“幫助”菜單enable debug或者disable debug。在“幫助”菜單 中有一個選項“What’s this node? ”,
通過它可以查看GUI 和測試元件的類名,如圖 11 -7 所示。通過它們,測試人員可以決定修改哪一項JMeter 屬性,以便修改日志級別。
例如:我們可以點擊一個HTTP請求,選擇菜單欄“幫助”--->what's this node ?
在jmeter的bin\目錄下,找到jmeter.properties 文件,關于日志級別的屬性如下:
#Logging levels for the logging categories in JMeter. Correct values are FATAL_ERROR, ERROR, WARN, INFO, and DEBUG
# To set the log level for a package or individual class, use:
# log_level.[package_name].[classname]=[PRIORITY_LEVEL]
# But omit "org.apache" from the package name. The classname is optional. Further examples below.
log_level.jmeter=INFO
log_level.jmeter.junit=DEBUG
#log_level.jmeter.control=DEBUG
#log_level.jmeter.testbeans=DEBUG
#log_level.jmeter.engine=DEBUG
#log_level.jmeter.threads=DEBUG
#log_level.jmeter.gui=WARN
#log_level.jmeter.testelement=DEBUG
#log_level.jmeter.util=WARN
#log_level.jmeter.util.classfinder=WARN
#log_level.jmeter.test=DEBUG
#log_level.jmeter.protocol.http=DEBUG
# For CookieManager, AuthManager etc:
#log_level.jmeter.protocol.http.control=DEBUG
#log_level.jmeter.protocol.ftp=WARN
#log_level.jmeter.protocol.jdbc=DEBUG
#log_level.jmeter.protocol.java=WARN
#log_level.jmeter.testelements.property=DEBUG
log_level.jorphan=INFO
搜索功能
這是在使用一個變量或含有一定的URL或參數測試計劃樹和元素有時很難找到?,F在一個新的特點是從2.6開始,你可以訪問它的菜單搜索。它提供了搜索與下列選項:
* 使搜索區分大小寫區分大小寫:
* 正則表達式是一個正則表達式搜索文本,如果有的話將被搜索的正則表達式樹的組件,例如“\ BTEST \ b”將匹配任何組件,包含測試組件的搜索元素
線程之間傳遞變量
JMeter 變量作用域局限于所屬線程。這樣設計是經過深思熟慮的,目的是讓測試線程能夠獨立運轉。有時候用戶可能需要在不同線程間(可能屬于同一個線程組,也可能不屬于同一個線程組)傳遞變量。
其中一種方法就是使用屬性。屬性為所有 JMeter 線程所共享,因此當某個線程設置一個屬性后,其他線程就可以讀取更新后的值。
如果存在大量數據需要在線程間傳遞,那么可以考慮使用文件。例如,測試人員可以在一個線程中使用監聽器,保存響應到文件(Save Responses to a file )或者 BeanShell PostProcessor 。而在另外一個線程中使用HTTP 采樣器的“file: ”協議來讀取文件,接著使用一個后置處理器或者BeanShell 測試元件提取信息。
如果在測試啟動前測試人員就能獲得測試數據,那么最好將數據保存到文件中,使用CSV Dataset讀取。
----------------------------------------
這最后一個技巧,操作較為麻煩,暫時不給詳細的例子。算是提供個思路吧!知道有這當子事兒就行了。日后有機會再實踐^_^
原文轉自:http://www.cnblogs.com/fnng/archive/2012/12/29/2839420.html