標籤:style blog http java 使用 io for ar 檔案
簡介
Apache JMeter是100%純java傳統型應用程式,被設計用來測試C/S結構的軟體(例如web應用程式)。它可以被用來測試包括基於靜態和動態資來源程式的效能,例如靜態檔案,Java Servlets,Java 對象,資料庫,FTP 伺服器等等。JMeter可以用來類比一個在伺服器、網路或者對象上大的負載來測試或者分析在不同的負載類型下的全面效能。
另外,JMeter能夠用斷言創造測試指令碼來驗證應用程式是否返回了我們期望的結果,從而協助我們進行迴歸測試。為了得到最大的靈活性,JMeter允許我們使用Regex建立斷言。
安裝windows版本
下載最新版本
http://jmeter.apache.org/download_jmeter.cgi
JMeter 2.11 (要求 Java 1.6 或更高)
解壓zip/tar檔案到任意目錄。
確保正確安裝JRE/JDK並且設定環境變數JAVA_HOME。
避免在一個有空格的路徑安裝 Jmeter,這將導致遠程測試出現問題。
運行使用者介面模式
運行 bin 目錄中的 JMeter (for Unix) 或者 JMeter.bat (for Windows) 檔案。
伺服器模式
為了分布測試 ,可以使用伺服器模式運行JMeter,然後通過使用者介面/或命令列控制每一台伺服器。
運行 bin 目錄中的 jmeter-server (for Unix) 或者 jmeter-server.bat (for Windows) 檔案。
命令列
jmeter -n -t filename.jmx
-n 這是指定JMeter在非使用者介面模式運行
-t [包含測試計劃的JMX檔案的名字]
jmeter-server -H my.proxy.server -P 8000
-H [Proxy 伺服器主機名稱或者ip地址]
-P [Proxy 伺服器連接埠,預設1099]
jmeter -n -t filename.jmx -R 192.168.101.116:1099,192.168.101.113:1099
測試計劃
一個測試計劃描述了一系列JMeter運行時要執行的步驟。一個完整的測試計劃包含一個或者多個線程組(thread groups),邏輯控制(logic controllers),取樣發生控制(sample generating controllers),監聽器(listeners)定時器(timers),斷言(assertions)和配置元件(configuration elements)。
添加和刪除元件 ( Elements )
在一個樹上通過右擊可以添加元件到一個測試計劃 ,從“add”列表中選擇一個新元件。或者通過選擇“open”選項從檔案載入。
刪除元件,確保元件被選中,在元件上右擊,然後選擇"remove"選項。
載入和儲存元件
從檔案載入元件,右擊目標元件,選擇“open”選項,然後選擇你的元件儲存檔案。JMeter將載入檔案中的所有元件。
儲存樹元件,在一個元件上右擊,選擇“save”選項。JMeter會儲存已選的元件,加上所有下面的子元件。用這種方法,你能夠儲存測試樹的一段、單獨元件、或者整個測試計劃。
運行一個測試計劃
運行一個測試計劃,從“run”功能表項目選擇“start”。停止你的測試計劃,從同樣的菜單選擇“stop”。
線程組
線程組是任何一個測試計劃的開始點. 所有的測試計劃中的元件都要在一個線程組中。
如名字顯示那樣,線程組控制了一組線程, JMeter使用這些線程來執行你的測試,你可以做如下操作:
- 控制thread group
- 設定線程的數量
- 設定ramp-up周期
- 設定測試執行的迴圈次數
每一個線程都會完全和獨立的執行測試計劃而不影響其他線程。多線程可以用於類比到你的伺服器程式的並發串連。
Ramp-up period 告訴JMeter需要多長時間來“ramp-up”去裝載全部的線程,如果30個線程被使用,而ramp-up period為120秒,那麼JMeter會花120秒來使得所有的30個線程運行,每個線程將在上個線程開始後4秒開始。延遲時間=ramp-up period時間數/線程數
預設的,一個thread group被設定為不限定的迴圈。你可以設定thread group迴圈的次數,如果設定為一次,那麼JMeter將執行測試一次然後停止。
Controllers
JMeter有兩種controller:Samplers和Logical Controllers
Samplers告知JMeter發送請求到伺服器。 例如,如果你想JMeter發送一個HTTP請求,就添加一個HTTP Request Sampler。當然你也可以定製一個請求,在Sampler中添加一個或多個Configuration Elements。
Logical Controllers使你可以定製JMeter發送請求的邏輯。例如,你可以添加一個Interleave Logic Controller來控制交替使用兩個HTTP Request Samplers。同樣,一個特定的Logic controller,作為Modification Manager,可以讓你修改請求的結果。
Samplers
Sampler 告知JMeter發送請求到server端。JMeter現在有如下的samplers:
- FTP Request
- HTTP Request
- JDBC Request
- Java Object Request
- LDAP Request
- SOAP/XML-RPC Request
- Web Service (SOAP) Request (Alpha Code)
每個sampler都有一些可以設定的properties。 你也可以在一個sampler中添加Configuration Elements來做更多的設定。當然, 值得注意的是JMeter按照request在tree中添加的次序來發送請求。
如果你想同時發送多個並發的同一種類的request,例如HTTP request,到同樣一台伺服器。可以考慮使用一個Defaults Configuration Element。每個Controller擁有一個或多個預設元素。
Listeners提供了擷取在JMeter運行過程中搜集到的資訊的訪問方式。最簡單的Listener,Graph Results Listener圖示出了回應時間。Listeners提供了一種圖型化的方式來查看JMeter運行過程中產生的資料。
另外, Listeners能夠直接將搜集的到資料存入到檔案中以備後用。任何一個listener都擁有一個設定該檔案儲存體地址的域。
Listener能夠加到測試中的任何位置。他們將僅僅收集同層級和所有低層級的elements產生的資料。
Windows下使用JMeter