『壹』 怎麼用myeclipse來形成jmeter中的測試報告
1. 下載jmeter源碼,可以從下面SVN路徑上下載:
這里需要說明一下,如果你的jdk版本等於或者高於1.6,最好下載主幹的代碼(TRUNK),否則在後面編譯的時候會遇到各種由於java版本不匹配導致的問題。
2. 代碼下載完成之後,我們需要配置ant,即使你用的是myeclipse,它裡面已經繼承好了ant,但是我還是建議你自己在配置一版。 ANT的配置很簡單。
下載,之後配置ANT_HOME ,path和classpath即可。
比如我的為:
ANT_HOME=C:\apache-ant-1.9.4
Path 後面添加%ANT_HOME%\bin
Classpath 添加%ANT_HOME%\lib
配置完成後可以在cmd中輸入命令ant進行驗證
3. Ant安裝完成後,我們可以從cmd中進入我們剛剛下載的jmeter源碼目錄下,首先用
ant –p 可以看到build.xml中的編譯項,其中all為默認編譯項。
最關鍵的一步,輸入ant download_jars,它會自動下載需要的jar包,最後結果為Build success,則表示成功。
4. 包下載完成之後,我們現在在命令行直接輸入ant即可進行編譯。但是要想在myeclipse中進行編譯還需要把我們下載到lib目錄下的所有jar包倒入才行。
倒入方法: 右鍵項目名稱->build path->configure build path
5. 所有的jar導入完成後,右鍵build.xml文件->run as->ant build可以進行編譯,但是還是不能夠像其它java項目一樣直接run as運行以及debug。此時還需要後續關鍵的配置。
6. 右鍵項目名稱->properties->builders里新建編譯項。
1. 右鍵項目名稱->run as-> java application
之後會搜索jmeter的主函數,jmeter的主函數在package org.apache.jmeter中,類名為NewDriver。
8. 設置完成後嘗試運行,後可能會遇到讀取properties的文件的路徑錯誤的問題,該問題的原因是因為在NewDrivers類中的下面代碼:
tmpDir = System.getProperty("jmeter.home","");// Allow override $NON-NLS-1$ $NON-NLS-2$
我們可以將其屏蔽之後用下面的代碼替換即可。
tmpDir = System.getProperty("user.dir","");
『貳』 jmeter中http請求結果分析
選擇「線程組」-->右鍵-->添加-->察看結果樹,你按照這個操作把結果數的頁面打開,運行後,這個結果樹里會出現一個列表,表示你所有的請求,雙擊出錯的請求,樹狀結構會打開在下一級顯示一個「響應斷言」,點擊「響應斷言」就會出現你的錯誤信息。
『叄』 jmeter可以修改源碼嗎
必須是可以的
『肆』 jmeter二次開發源碼運行起來後發現有些菜單打不開
設代理伺服器是監聽瀏覽器在相應埠的操作。設置代理伺服器後點擊Jmeter下面的「開啟」開始錄制,可以打開網頁。錄制停止後只有將代理服務關閉才能打開網頁。
『伍』 JMeter的設置和分析
9.1 啟動你預備作負載(Vugen)的所有機子
Win:運行Jmeter.server.bat
Linux:運行Jmeter.server
9.2 配置你的Controller
1) 配置Jmeter.properties文件, 找到"remote_hosts",然後增加VuGen端機器的IP地址,各個IP地址使用逗號分隔。如:remote_hosts=host1,127.0.0.1,host2。也可以在命令行直接輸入jmeter –Jremote_hosts=host1,127.0.0.1,host2。
2) 啟動Jmeter。這時候,程序會自動運行rmiregistry和Jmeter。
3) 有時候,程序不自動運行rmiregistry時,需要手動去運行他。他一般放在jdk/bin目錄下。
4) 在打開的jmeter中run目錄下你可以看到Remote Start分支下多了你剛才所加的ip,你可以點擊ip去分別啟動遠程jmeter。同理,停止時也是在Remote Stop―ip下操作。
『陸』 Jmeter性能測試結果如何進行分析,測試過程主要記錄哪些欄位
主要有幾項啊:Throughput, KB/sec,這些可以在Aggregate Report里看到的
『柒』 jmeter用java代碼怎樣編寫介面測試源碼
我們在做性能測試時,有時需要自己編寫測試腳本,很多測試工具都支持自定義編寫測試腳本,比如LoadRunner就有很多自定義腳本的協議,比如"C Vuser","Java Vuser"等協議.同樣,Jmeter也支持自定義編寫的測試代碼,不過與LoadRunner不同的是,Jmeter沒有自帶編譯器,需要藉助第三方編譯器才能實現.下面舉一個簡單的Java自定義測試代碼例子,使用Java編譯器編寫測試代碼(Java編譯器可以用Eclipse,JBulider等),實現功能為:在測試前輸入任意一個字元串,然後判斷該字元串的長度是否大於5,如果大於則測試結果成功,否則測試結果位失敗,然後在放到Jmeter中模擬10個用戶測試,同時運行這段代碼,具體實現如下:
1.打開Java編譯器,新建一個項目"TestLength",然後新建一個包"app".
2.從Jmeter的安裝目錄lib/ext中拷貝兩個文件"ApacheJMeter_core.jar"和"ApacheJMeter_java.jar"到"Tester"的項目中,然後引入這兩個JAR文件.(具體的引入方法參考各個Java編譯器的使用方法)
3.在"app"包中新建一個類,名字叫"TestLength",不過這個類要繼承"AbstractJavaSamplerClient"類,如果項目引入步驟二中的兩個文件,就可以找到"AbstractJavaSamplerClient"類了.
4."TestLength"類在繼承"AbstractJavaSamplerClient"類的同時也會繼承四個方法,分別是"getDefaultParameters","setupTest","runTest"和"teardownTest"方法."getDefaultParameters"方法主要用於設置傳入的參數;"setupTest"方法為初始化方法,用於初始化性能測試時的每個線程."runTest"方法為性能測試時的線程運行體;"teardownTest"方法為測試結束方法,用於結束性能測試中的每個線程.
5.具體實現代碼如下:
package app;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import com.passpod.core.t8.*;
/**
* @author樂以忘憂
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class TestLength extends AbstractJavaSamplerClient{
private SampleResult results;
private String testStr;
//初始化方法,實際運行時每個線程僅執行一次,在測試方法運行前執行,類似於LoadRunner中的init方法
public void setupTest(JavaSamplerContext arg0) {
results = new SampleResult();
testStr = arg0.getParameter("testString", "");
if (testStr != null && testStr.length() > 0) {
results.setSamplerData(testStr);
}
}
//設置傳入的參數,可以設置多個,已設置的參數會顯示到Jmeter的參數列表中
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("testStr", ""); //定義一個參數,顯示到Jmeter的參數列表中,第一個參數為參數默認的顯示名稱,第二個參數為默認值
return params;
}
//測試執行的循環體,根據線程數和循環次數的不同可執行多次,類似於LoadRunner中的Action方法
public SampleResult runTest(JavaSamplerContext arg0) {
int len = 0;
results.sampleStart(); //定義一個事務,表示這是事務的起始點,類似於LoadRunner的lr.start_transaction
len = testStr.length();
results.sampleEnd(); //定義一個事務,表示這是事務的結束點,類似於LoadRunner的lr.end_transaction
if(len < 5){
System.out.println(testStr);
results.setSuccessful(false); //用於設置運行結果的成功或失敗,如果是"false"則表示結果失敗,否則則表示成功
}else
results.setSuccessful(true);
return results;
}
//結束方法,實際運行時每個線程僅執行一次,在測試方法運行結束後執行,類似於LoadRunner中的end方法
public void teardownTest(JavaSamplerContext arg0) {
}
}
6.把上面的例子打包,然後把生成的"TestLength.jar"文件拷貝到Jmeter的安裝目錄lib/ext下.
7.運行Jmeter,添加一個線程組,然後在該線程組下面添加一個Java請求(在Sampler中),在Java請求的類名稱中選擇咱們剛創建的類"app.TestLength",在下面參數列表的"testStr"後面輸入要測試的字元串,然後添加一個監聽器(聚合報告),設置一下模擬的用戶數就可以測試了.如果測試不成功,Jmeter會在它自己個輸出框中拋出這個字元串.
通過上面的例子我們可以發現,使用Jmeter自定義Java測試代碼,配合Jmeter自帶的函數,就可以實現出LoadRunner中"Java Vuser"協議的絕大多數功能,而且是沒有用戶數限制和完全免費的(嘿嘿).上面的例子非常簡單,而且沒有任何實際意義,只是一個簡單的Jmeter測試代碼示例,用於拋磚引玉,希望大家一起交流,共同 進步.