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