java中拋出異常后面的代碼不會執(zhí)行,測試代碼如下:

成都創(chuàng)新互聯(lián)是專業(yè)的靜安網(wǎng)站建設(shè)公司,靜安接單;提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行靜安網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
public?class?Test?{
public?static?void?main(String[]?args)?{
int?i?=?10;
try?{
//?此處會報(bào)錯(cuò)
int?j?=?i?/?0;
System.out.println("hello");
}?catch?(Exception?e)?{
e.printStackTrace();
}
}
}
執(zhí)行結(jié)果:
我們在做性能測試時(shí),有時(shí)需要自己編寫測試腳本,很多測試工具都支持自定義編寫測試腳本,比如LoadRunner就有很多自定義腳本的協(xié)議,比如"C Vuser","Java Vuser"等協(xié)議.同樣,Jmeter也支持自定義編寫的測試代碼,不過與LoadRunner不同的是,Jmeter沒有自帶編譯器,需要借助第三方編譯器才能實(shí)現(xiàn).下面舉一個(gè)簡單的Java自定義測試代碼例子,使用Java編譯器編寫測試代碼(Java編譯器可以用Eclipse,JBulider等),實(shí)現(xiàn)功能為:在測試前輸入任意一個(gè)字符串,然后判斷該字符串的長度是否大于5,如果大于則測試結(jié)果成功,否則測試結(jié)果位失敗,然后在放到Jmeter中模擬10個(gè)用戶測試,同時(shí)運(yùn)行這段代碼,具體實(shí)現(xiàn)如下:
1.打開Java編譯器,新建一個(gè)項(xiàng)目"TestLength",然后新建一個(gè)包"app".
2.從Jmeter的安裝目錄lib/ext中拷貝兩個(gè)文件"ApacheJMeter_core.jar"和"ApacheJMeter_java.jar"到"Tester"的項(xiàng)目中,然后引入這兩個(gè)JAR文件.(具體的引入方法參考各個(gè)Java編譯器的使用方法)
3.在"app"包中新建一個(gè)類,名字叫"TestLength",不過這個(gè)類要繼承"AbstractJavaSamplerClient"類,如果項(xiàng)目引入步驟二中的兩個(gè)文件,就可以找到"AbstractJavaSamplerClient"類了.
4."TestLength"類在繼承"AbstractJavaSamplerClient"類的同時(shí)也會繼承四個(gè)方法,分別是"getDefaultParameters","setupTest","runTest"和"teardownTest"方法."getDefaultParameters"方法主要用于設(shè)置傳入的參數(shù);"setupTest"方法為初始化方法,用于初始化性能測試時(shí)的每個(gè)線程."runTest"方法為性能測試時(shí)的線程運(yùn)行體;"teardownTest"方法為測試結(jié)束方法,用于結(jié)束性能測試中的每個(gè)線程.
5.具體實(shí)現(xiàn)代碼如下:
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;
//初始化方法,實(shí)際運(yùn)行時(shí)每個(gè)線程僅執(zhí)行一次,在測試方法運(yùn)行前執(zhí)行,類似于LoadRunner中的init方法
public void setupTest(JavaSamplerContext arg0) {
results = new SampleResult();
testStr = arg0.getParameter("testString", "");
if (testStr != null testStr.length() 0) {
results.setSamplerData(testStr);
}
}
//設(shè)置傳入的參數(shù),可以設(shè)置多個(gè),已設(shè)置的參數(shù)會顯示到Jmeter的參數(shù)列表中
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("testStr", ""); //定義一個(gè)參數(shù),顯示到Jmeter的參數(shù)列表中,第一個(gè)參數(shù)為參數(shù)默認(rèn)的顯示名稱,第二個(gè)參數(shù)為默認(rèn)值
return params;
}
//測試執(zhí)行的循環(huán)體,根據(jù)線程數(shù)和循環(huán)次數(shù)的不同可執(zhí)行多次,類似于LoadRunner中的Action方法
public SampleResult runTest(JavaSamplerContext arg0) {
int len = 0;
results.sampleStart(); //定義一個(gè)事務(wù),表示這是事務(wù)的起始點(diǎn),類似于LoadRunner的lr.start_transaction
len = testStr.length();
results.sampleEnd(); //定義一個(gè)事務(wù),表示這是事務(wù)的結(jié)束點(diǎn),類似于LoadRunner的lr.end_transaction
if(len 5){
System.out.println(testStr);
results.setSuccessful(false); //用于設(shè)置運(yùn)行結(jié)果的成功或失敗,如果是"false"則表示結(jié)果失敗,否則則表示成功
}else
results.setSuccessful(true);
return results;
}
//結(jié)束方法,實(shí)際運(yùn)行時(shí)每個(gè)線程僅執(zhí)行一次,在測試方法運(yùn)行結(jié)束后執(zhí)行,類似于LoadRunner中的end方法
public void teardownTest(JavaSamplerContext arg0) {
}
}
6.把上面的例子打包,然后把生成的"TestLength.jar"文件拷貝到Jmeter的安裝目錄lib/ext下.
7.運(yùn)行Jmeter,添加一個(gè)線程組,然后在該線程組下面添加一個(gè)Java請求(在Sampler中),在Java請求的類名稱中選擇咱們剛創(chuàng)建的類"app.TestLength",在下面參數(shù)列表的"testStr"后面輸入要測試的字符串,然后添加一個(gè)監(jiān)聽器(聚合報(bào)告),設(shè)置一下模擬的用戶數(shù)就可以測試了.如果測試不成功,Jmeter會在它自己個(gè)輸出框中拋出這個(gè)字符串.
通過上面的例子我們可以發(fā)現(xiàn),使用Jmeter自定義Java測試代碼,配合Jmeter自帶的函數(shù),就可以實(shí)現(xiàn)出LoadRunner中"Java Vuser"協(xié)議的絕大多數(shù)功能,而且是沒有用戶數(shù)限制和完全免費(fèi)的(嘿嘿).上面的例子非常簡單,而且沒有任何實(shí)際意義,只是一個(gè)簡單的Jmeter測試代碼示例,用于拋磚引玉,希望大家一起交流,共同 進(jìn)步.
測試數(shù)據(jù):
key=timeline+【0,20億】
value=128字節(jié)
測試環(huán)境:
CPU:16核,Mem:32G 磁盤:SSD
寫入客戶端:
leveldbjni+1Java thread ,write_buffer_size=512MB
插入20億條數(shù)據(jù)的統(tǒng)計(jì)數(shù)據(jù)如下:
插入數(shù)據(jù)過程中,CPU消耗比較小,多的時(shí)候在160%,少的時(shí)候在80%左右,插入過程中對內(nèi)存消耗比較小,與設(shè)定的512MB比較接近,沒有大的變化,load小于1;
插入完成之后,磁盤文件總個(gè)數(shù)為14913個(gè),占用磁盤存儲空間31G。
全局的avgTps=149594,以插入500W條數(shù)據(jù)的時(shí)候,階段性的minTps=84631,maxTps=234796。
插入50億條數(shù)據(jù)的統(tǒng)計(jì)數(shù)據(jù)如下:
插入數(shù)據(jù)過程中,CPU消耗比較小,多的時(shí)候在160%,少的時(shí)候在80%左右,插入過程中對內(nèi)存消耗比較小,與設(shè)定的512MB比較接近,沒有大的變化,load小于1;
插入完成之后,磁盤文件總個(gè)數(shù)為32318個(gè),占用磁盤存儲空間77G。
全局的avgTps=158272,以插入1000W條數(shù)據(jù)的為基準(zhǔn)階段性的minTps=100000,maxTps=232558。
p_1
p_2
p_3
沒有初始化
在構(gòu)造方法中加入
p_1 = new JPanel();
p_2 = new JPanel();
p_3 = new JPanel();
就可以了
當(dāng)前文章:java并發(fā)測試代碼 java接口并發(fā)測試用例
本文網(wǎng)址:http://chinadenli.net/article16/dodjggg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、企業(yè)網(wǎng)站制作、定制網(wǎng)站、網(wǎng)頁設(shè)計(jì)公司、小程序開發(fā)、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)