成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JMeter進階—詳解Java請求關于事務的操作

開發 前端
Jmeter通過Java請求可以實現該需求(這樣就可以處理一些公司自定義的協議了,開發提供協議接口,然后我們通過java sampler進行調用)。

這篇文章中有一個問題,在方法public SampleResult runTest(JavaSamplerContext arg0) 中只對一個類的一個api 進行調用,如果需求是在jmeter中對多個類的多個api進行調用該如何實現呢?同學們會說,簡單呀,我們創建多個類然后分別繼承AbstractJavaSamplerClient就可以了呀!這樣做當然可以,但是這要創建太多的類啦,Jmeter提供了方法可以實現事務操作,即 在一個runTest 方法中創建一個事務,然后一個事務中包括多個請求,話不多說直接上代碼

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;
public class DemoTransaction extends AbstractJavaSamplerClient {
private SampleResult sr;

public static final String PARAM_PARA1 = "para1";
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("para1", "");
return params;
}
public SampleResult runTest(JavaSamplerContext arg0) {
/**創建事務demo**/
this.sr = new SampleResult();
this.sr.setSampleLabel("demo ");
this.sr.sampleStart();

/**創建事務demo中的第一個子請求**/
SampleResult result1= new SampleResult();
result1.setSampleLabel("demo1");
result1.sampleStart();

/**寫子請求的具體邏輯,這里用等待時間代替**/
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**寫子請求的具體邏輯,這里用等待時間代替**/

this.sr.addSubResult(result1,false); //重點把子請求的測試結果放到事務中
result1.sampleEnd(); //子請求1結束
/**創建事務demo中的第二個子請求**/
SampleResult result2= new SampleResult();
result2.setSampleLabel("demo2");
result2.sampleStart();
/**寫子請求的具體邏輯,這里用等待時間代替**/
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
/**寫子請求的具體邏輯,這里用等待時間代替**/

result2.setSuccessful(true);
this.sr.addSubResult(result2,false); //重點把子請求的測試結果放到事務中
result2.sampleEnd(); //子請求2結束

/**判斷子請求是否都成功執行,如果其中一個失敗,則認定事務執行失敗**/

if( result1.isSuccessful() & result2.isSuccessful())
{
this.sr.setSuccessful(true);

}else {
this.sr.setSuccessful(false);

}
/**判斷子請求是否都成功執行,如果其中一個失敗,則認定事務執行失敗**/

this.sr.sampleEnd(); //事務結束

return this.sr;
}

public void setupTest(JavaSamplerContext context) {
super.setupTest(context);

}

public void teardownTest(JavaSamplerContext context) {
super.teardownTest(context);
}
}

使用JMeter 5.x API

這里需要強調的是方法 addSubResult(result2,false) 這個方法是在jmeter 5.x 才提供的(4.x中是addSubResult(result2)), 第一個參數是傳入的result值,第二個參數是是否把子線程改名字,jmeter 5.x的maven配置如下,

<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>5.5</version>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_java</artifactId>
<version>5.5</version>
</dependency>

使用這個方法才能實現——在聚合報告中顯示事務中子請求的響應時間和處理能力

把java文件打包放到\lib\ext 目錄下,然后添加java sampler ,選擇類DemoTransaction,運行測試,結果如下:

在查看結果樹中可以看到事務demo包括了兩個子請求demo1和demo2

在聚合報告中只有demo的整體信息,我們看到實例中demo1 和demo2 分別等待1s和0.5s,而下圖中Average是1500毫秒,這點證明事務的響應時間等于兩個請求之和

測試報告優化方案

上面的聚合報告是有缺陷的,沒有列出每一個子請求的響應時間和處理能力!目前我還沒有通過編碼來搞定這個問題,但是我們可以通過其他方式實現,即在測試過程中,把測試結果寫到一個文件中,然后測試結束后打開這個文件就可以了!

再次強調!想要實現該功能一定要使用jmeter 5.x的ApacheJMeter_java和ApacheJMeter_core,本人親測在jmeter 4.x中無法實現該功能!

責任編輯:姜華 來源: 今日頭條
相關推薦

2021-10-29 08:19:54

JMeterJava java sample

2011-07-21 14:28:17

MySQL事務事務保存點

2023-02-10 07:00:22

2010-09-24 19:08:08

SQL事務

2020-04-02 20:26:22

線程組插件開發

2011-08-23 17:06:03

2024-10-22 16:54:14

2009-06-15 15:54:53

Java中Cookie

2012-05-23 12:49:58

Java自增操作原子性

2009-11-06 11:07:52

WCF事務屬性

2011-01-27 10:11:46

J2EEjavaspring

2021-09-12 07:30:10

配置

2024-08-26 15:13:36

2024-08-13 15:46:57

2012-05-14 10:18:54

jQuery

2024-10-11 17:13:14

SQL數據庫查詢數據庫

2023-06-28 11:36:41

2022-06-01 14:35:39

gitjmeter腳本

2010-11-19 16:13:06

oracle事務隔離級

2017-01-19 15:32:36

Java全局事務本地事務
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: heyzo在线| 国产精品美女www爽爽爽视频 | 在线一区二区三区 | 一本色道久久综合亚洲精品高清 | 精品一区电影 | 国产人免费人成免费视频 | 亚洲精品二三区 | 91精品国产综合久久久久久蜜臀 | 91精品久久久久久久久中文字幕 | 一区二区精品 | 国产高清在线精品一区二区三区 | 自拍亚洲 | 天天爽夜夜骑 | 永久av| 国产精品久久久久久久久久久久 | 毛片一级片 | 欧美激情一区二区三级高清视频 | 天天干com| 久久精品视频在线观看 | 国产专区免费 | 欧美福利三区 | 日韩电影中文字幕 | 九九热在线免费视频 | 久久国 | 亚洲精品福利视频 | 成人福利在线 | 日韩免费av网站 | 日韩欧美视频在线 | 日韩久久久久久 | 欧美不卡一区 | 色婷婷婷婷色 | 亚洲视频在线一区 | 欧美白人做受xxxx视频 | 精品中文字幕在线 | 日韩视频一区二区 | 国产成人久久久 | 97国产精品 | 天天天操操操 | 欧美a视频| 国产精品久久久久无码av | 欧美日韩亚洲国产 |