1. 程式人生 > >十八.jmete java工程測試

十八.jmete java工程測試

lips .proto 設置 nbsp apache sam getpara params ini

1.在eclipse裏面新建一個工程

2.從jmeter的安裝目錄lib/ext中引入兩個文件“ApacheJmeter_core.jar”和“ApacheJmeter_java.jar“到java工程
技術分享
技術分享
導入架包 技術分享
技術分享
添加需要添加的架包 技術分享
技術分享
因為jmeter有自己編譯的方法和類,如果不導入,編譯的時候會報錯 技術分享
技術分享

3.編寫jmeter輔助函數 技術分享
技術分享

執行的先後順序為:
getDefaultParameters()-----> setup Test(javaSamplerContext context)----->runTest(javaSamplerContext context)----->teardownTest(javaSamplerContext)
先賦予參數----->初始化----->運行----->結束

實例代碼:
package com.jmeter_test;
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;

/**
* Jmeter自定義腳本測試類.
* 該腳本功能為發送輸入框中的字符串。
* @param <log>
* @param <log>
* @param <Logger>
*/
public class jmeter_test<log, log, Logger> extends AbstractJavaSamplerClient {
/**
* 輸出到Jmeter控制臺的日誌類.
* 需要引用Jmeter lib目錄下的logkit-2.0.jar.
*/
private Logger log = getLogger();
private SampleResult results; // 運行結果.
private String testStr; // Jmeter控制臺輸入的參數.

/**
* 設置傳入的參數,可以設置多個,已設置的參數會顯示到Jmeter的參數列表中.
*/
public Arguments getDefaultParameters() {
log.info("execute getDefaultParameters...");
Arguments params = new Arguments();
/*
* 定義一個參數,顯示到Jmeter的參數列表中,
* 第一個參數為參數默認的顯示名稱,
* 第二個參數為默認值
*/
params.addArgument("testStr", "");
return params;
}

/**
* 初始化方法,實際運行時每個線程僅執行一次,在測試方法運行前執行,
* 類似於LoadRunner中的init方法.
*/
public void setupTest(JavaSamplerContext arg0) {
log.info("start execute setupTest...");
results = new SampleResult();
testStr = arg0.getParameter("testStr", "");
if (testStr != null && testStr.length() > 0) {
results.setSamplerData(testStr);
}
}

/**
* 測試執行的循環體,根據線程數和循環次數的不同可執行多次,類似於LoadRunner中的Action方法
*/
public SampleResult runTest(JavaSamplerContext arg0) {
log.info("execute runTest...");
//定義一個事務,表示這是事務的起始點,類似於LoadRunner的lr.start_transaction
// results.sampleStart();
//定義一個事務,表示這是事務的結束點,類似於LoadRunner的lr.end_transaction
// results.sampleEnd();
if(testStr.length() < 5){
log.info("fail...");
//用於設置運行結果的成功或失敗,如果是"false"則表示結果失敗,否則則表示成功
results.setSuccessful(false);
} else {
log.info("TestString is\t "+testStr);
results.setSuccessful(true);
}
return results;
}
/**
* 結束方法,實際運行時每個線程僅執行一次,在測試方法運行結束後執行,<br>
* 類似於LoadRunner中的end方法.
*/
public void teardownTest(JavaSamplerContext arg0) {
}
/**main函數用於本地調試,打包時要註釋掉*/
//*
public static void main(String[] args)
{
Arguments params = new Arguments();
params.addArgument("testStr", "51zxw");//設置參數,並賦予默認值1
JavaSamplerContext arg0 = new JavaSamplerContext(params);
jmeter_test test = new jmeter_test();
test.setupTest(arg0);
test.runTest(arg0);
test.teardownTest(arg0);
}/**/
}


常用的方法:
1)addArgument(*name*,*value*)定義參數
2)sampleStart()定義事物的開始,類似於LR的Lr start transaction,和LR一樣事物間不要放無關代碼
3)sampleEnd()定義事物的結束,類似於LR的lr_end_transation
4)setSuccessful(true,false)設置運行結果的成果或失敗,jmeter統計成果失敗,在聚合報告中能夠體現

4.將工程導出成jar,放置於$jmeter安裝目錄$/lib/ext/下,其他依賴的jar放置於$安裝目錄/lib/下

選擇需要導出的工程--->file--->Export---->java---->java file--->next---->在java file的路徑中,選擇放置於$jmeter安裝目錄$/lib/ext/下,java文件叫StrTrest.java----->勾選需要導出的項目------>finish


5.運行腳本
1)選中主界面左側的“測試計劃”,右鍵菜單-->添加--->Threads(Users)--->線程組
2)再選中剛才新增的“線程組”,右鍵菜單--添加---sampler---java請求
3)再選中剛才新增的“java請求“,右鍵菜單---添加---監視器---聚合報告
4)在“java請求”選項卡中可以選擇你想測試的類名,在“線程組”選項中可以輸入想循環的次數及並發數
技術分享

技術分享




十八.jmete java工程測試