直接壓測、調(diào)用java工程中的方法。(沒有http等的入口)
為靈武等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及靈武網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、靈武網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!二、java項目改造一個java項目,想要壓測其中的幾個方法。我們需要在該工程中,添加一個壓測入口的類,
這個類必須繼承或者實現(xiàn)jmeter提供的接口/類。
舉例子,如原來的一個maven項目。
在HelloWorld類下,有個hi 的方法。 傳入 name,返回 hi+name。
package cn.cs.hello;
public class HelloWorld {
public String hi(String name){
return "hi"+name;
}
}
我們想要對 hi方法,使用jmeter進行壓測。
2.1 依賴?需要在pom文件中新增兩個依賴。
org.apache.jmeter ApacheJMeter_core3.0 org.apache.jmeter ApacheJMeter_java3.0
2.2 新建壓測入口新建一個TestHello 類,作為壓測的入口。 這個類,必須實現(xiàn) 接口JavaSamplerClient。
package cn.cs.test;
import cn.cs.hello.HelloWorld;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
public class TestHello implements JavaSamplerClient {
@Override
public void setupTest(JavaSamplerContext javaSamplerContext) {
}
@Override
public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
// 創(chuàng)建一個jmeter 要求的返回類型SampleResult
SampleResult sr = new SampleResult();
try{
sr.sampleStart();
HelloWorld helloWorld = new HelloWorld();
// 獲取java請求的參數(shù)
String name=javaSamplerContext.getParameter("張三");
String str = helloWorld.hi(name);
// 給jmeter 設(shè)置響應(yīng)結(jié)果。 將str設(shè)置為響應(yīng)結(jié)果。null 這應(yīng)該應(yīng)該填結(jié)果的編碼,我們這里填null也可以。
sr.setResponseData(str,null);
// 設(shè)置是否成功
sr.setSuccessful(true);
} catch (Exception e){
// 設(shè)置 為失敗,的返回結(jié)果
sr.setSuccessful(false);
// 設(shè)置SampleData 為異常信息
sr.setSamplerData(e.getMessage());
// 打印異常棧
e.printStackTrace();
}
sr.sampleEnd();
return sr;
}
@Override
public void teardownTest(JavaSamplerContext javaSamplerContext) {
}
// java請求的參數(shù)
@Override
public Arguments getDefaultParameters() {
Arguments arguments = new Arguments();
arguments.addArgument("name","張三");
return arguments;
}
}
方法講解:
getDefaultParameters 方法,設(shè)置請求的默認參數(shù)
在本次例子中,hi方法,只需要一個name的參數(shù)。則jmeter腳本中,傳參數(shù)也只需要一個。
設(shè)置一個默認的name 為張三。 當(dāng)jmeter沒有穿參時,name=張三。
當(dāng)jmeter傳參數(shù)時,name取傳的值。
方法:public SampleResult runTest(JavaSamplerContext javaSamplerContext)? 進行邏輯處理(調(diào)用需要壓測的方法,及返回結(jié)果)
@Override
public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
// 創(chuàng)建一個jmeter 要求的返回類型SampleResult
SampleResult sr = new SampleResult();
try{
sr.sampleStart();
HelloWorld helloWorld = new HelloWorld();
// 獲取java請求的參數(shù)
String name=javaSamplerContext.getParameter("張三");
String str = helloWorld.hi(name);
// 給jmeter 設(shè)置響應(yīng)結(jié)果。 將str設(shè)置為響應(yīng)結(jié)果。null 這應(yīng)該應(yīng)該填結(jié)果的編碼,我們這里填null也可以。
sr.setResponseData(str,null);
// 設(shè)置是否成功
sr.setSuccessful(true);
} catch (Exception e){
// 設(shè)置 為失敗,的返回結(jié)果
sr.setSuccessful(false);
// 設(shè)置SampleData 為異常信息
sr.setSamplerData(e.getMessage());
// 打印異常棧
e.printStackTrace();
}
sr.sampleEnd();
return sr;
}
2.3 然后將maven項目打jar包。然后將maven項目打jar包。將這個jar放置到j(luò)meter/lib/ext 目錄下。
重啟jmeter。在線程組中,添加---取樣器--- java請求。
在java請求取樣器中,選擇剛剛放進去的jar包就可以了。
在傳參處寫上我們的參數(shù),就像普通的http格式一樣。
就可以進行壓測了。
三、問題處理依賴包ApacheJMeter_core、ApacheJMeter_java 下載不下來。
emm 這個問題我也沒搞定。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁題目:jmeter壓測java代碼-創(chuàng)新互聯(lián)
標題網(wǎng)址:http://aaarwkj.com/article28/pigcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、品牌網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、微信公眾號、動態(tài)網(wǎng)站、App設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)