Jmeter測試普通java類說明

概述

???????? Apache JMeter是Apache組織開發的基于Java的壓力測試工具。本文檔主要描述用Jmeter工具對基于Dubbo、Zookeeper框架的Cassandra接口、區塊鏈接口進行壓力測試的一些說明,為以后類似接口的測試提供參考。

環境部署

1、? 下載Jmeter工具apache-jmeter-3.3.zip:

http://jmeter.apache.org/download_jmeter.cgi

2、? 解壓apache-jmeter-3.3.zip;

3、? 運行bin目錄下的jmeter.bat,就可以看到Jmeter測試界面(Linux環境請運行jmeter.sh)。如下圖所示:

測試流程

1、? 打開Jmeter工具,在【測試計劃】下面添加【線程組】,如下如圖所示:

?

2、? 在【線程組】下面添加【java請求】,如下圖所示

3、? 在【線程組】下面繼續添加【察看結果數】和聚合報告,如下圖所示

?

4、? 接下來在我們的consumer工程中,用maven引入Jmeter依賴的jar包,在pom.xml文件加入如下幾行代碼:

?? <dependency>

??????? <groupId>org.apache.jmeter</groupId>

??????? <artifactId>ApacheJMeter_core</artifactId>

??????? <version>3.0</version>

??? </dependency>

??? ???????? <dependency>

??????? ???????? <groupId>org.apache.jmeter</groupId>

????? ???????? <artifactId>ApacheJMeter_java</artifactId>

??????? ???? <version>3.0</version>

</dependency>

5、? 加好之后,用Maven編譯consumer工程,編譯成功后,會在工程中引入如下兩個Jmeter jar包:

6、? 編寫Jmeter測試用例,需要繼承AbstractJavaSamplerClient類,這個步驟很重要,寫好之后,后續導出xxx.jar包后,Jmeter界面使用這個測試用例進行壓力測試,下面附上詳細代碼

public class JMeterTestSign extends AbstractJavaSamplerClient {
??? private String resultData ; //寫入結果樹時使用
??? private SampleResult results;
??? //提供給jmeter的對外參數,可修改
??? String value;
??? String type;

??? /**
???? * 測試方法運行之前的工作(初始化記錄結果;從參數列表中獲取對應變)
???? * @param arg0
???? */
??? @Override
??? public void setupTest(JavaSamplerContext arg0) {
??????? results = new SampleResult();
??????? value = arg0.getParameter("value");
??????? type = arg0.getParameter("type");
??? }

??? /**
???? * 獲取默認參數以及參數值
???? * @return
???? */
??? @Override
??? public Arguments getDefaultParameters() {
??????? Arguments params = new Arguments();
??????? String value = "1234567890";
??????? params.addArgument("value", value);
??????? params.addArgument("type", "ec");
??????? return params;
??? }

??? /**
???? * 運行測試方法(初始化記錄結果,設定開始/結束記錄時間,測試調用Service的主方法,測試成功與否的判斷方法)
???? * @param arg0
???? * @return
???? */
??? public SampleResult runTest(JavaSamplerContext arg0) {
??????? results = new SampleResult();//初始化記錄結果
??????? results.sampleStart();//計時開始
??????? /*測試方法,此處寫自己的測試方法進行調用*/
??????? try {

// 下面的一行為自定義方法,可以測試自己的方法
??????????? String signature = EccService.sign(value, type);
??????????? results.sampleEnd();//計時結束
??????????? //判斷測試成功與否的方法:可根據實際進行判斷,此處為如果沒有拋出異常,則認為該次調用成功
??????????? results.setSuccessful(true);
??????????? //將結果寫入結果樹:在JMeter的監聽器-查看結果樹時即可查看返回結果
??????????? resultData = signature;
??????????? results.setResponseData("結果是:"+resultData ,null);
??????????? results.setDataType(SampleResult. TEXT);
??????????? return results;
??????? } catch (InvalidKeySpecException e) {
??????????? results.setSuccessful(false);
??????????? e.printStackTrace();
??????????? return results;
??????? } catch (IOException e) {
??????????? results.setSuccessful(false);
??????????? e.printStackTrace();
??????????? return results;
??????? } catch (CryptoException e) {
??????????? results.setSuccessful(false);
??????????? //將結果寫入結果樹:在jmeter的監聽器-查看結果樹時即可查看返回結果
??????????? resultData += false;
? ??????????results.setResponseData("結果是:"+resultData ,null);
??????????? results.setDataType(SampleResult. TEXT);
??????????? e.printStackTrace();
??????? }
??????? return results;
??? }

??? /**
???? * 獲取jmeter輸入的參數值
???? *
???? * @return
???? */
??? public void setValues(JavaSamplerContext arg0) {
??????? value = arg0.getParameter("value", value);
??????? type = arg0.getParameter("type", type);
??? }
??? @Override
??? public void teardownTest(JavaSamplerContext context) {

??? }
}

7、? 編寫好測試用例后,將工程導出為一個jar包:

Maven build或者maven package都可以

8、? 將導出的jar包,拷貝到Jmeter安裝目錄的lib/ext子目錄下

9、? 在Jmeter測試計劃主界面,點擊【瀏覽】,選擇本次Jmeter測試用例所依賴的jar包目錄(右鍵工程,選擇maven build,在goals中輸入dependency:copy-dependencie命令并執行,把所有jar包放到某個目錄下)

注:maven導出所有依賴的jar包,也可以在pom文件中添加配置

<build>

??????? <plugins>

??????????? <plugin>

??????????????? <groupId>org.apache.maven.plugins</groupId>

??????????????? <artifactId>maven-dependency-plugin</artifactId>

??????????????? <executions>

??????????????????? <execution>

??????????????????????? <id>copy</id>

??????????????????????? <phase>package</phase>

??????????????????????? <goals>

??????????????????????????? <goal>copy-dependencies</goal>

? ??????????????????????</goals>

??????????????????????? <configuration>

??????????????????????????? <outputDirectory>${project.build.directory}/lib</outputDirectory>

??????????????????????? </configuration>

??????????????????? </execution>

??????????????? </executions>

??????????? </plugin>

??????? </plugins>

??? </build>

12、??? 點擊【線程組】,在主界面中輸入【線程數】:需要多少并發量就寫多少個,其他都寫1

13、?? 再點擊【Java請求】,在主界面中,【類名稱】選擇’ com.foriseland.fas.cassandra.jmeter.TestConsumer’;并在下方輸入自定義的參數,如下如圖所示:

14、????????????? 以上這些操作完成后,保存退出,并重啟Jmeter,然后就可以對其進行壓力測試了。

轉載于:https://www.cnblogs.com/alan319/p/9111466.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389540.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389540.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389540.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

opencv:Canny邊緣檢測算法思想及實現

Canny邊緣檢測算法背景 求邊緣幅度的算法&#xff1a; 一階導數&#xff1a;sobel、Roberts、prewitt等算子 二階導數&#xff1a;Laplacian、Canny算子 Canny算子效果比其他的都要好&#xff0c;但是實現起來有點麻煩 Canny邊緣檢測算法的優勢&#xff1a; Canny是目前最優…

關于outlook簽名圖片大小的說明

96 dpiwidth576 height114轉載于:https://blog.51cto.com/lch54734/2298115

opencv:畸變矯正:透視變換算法的思想與實現

畸變矯正 注意&#xff1a;雖然能夠成功矯正但是也會損失了部分圖像&#xff01; 透視變換(Perspective Transformation) 概念&#xff1a; 透視變換是將圖片投影到一個新的視平面(Viewing Plane)&#xff0c;也稱作投影映射(Projective Mapping)。 我們常說的仿射變換是透視…

數據多重共線性_多重共線性對您的數據科學項目的影響比您所知道的要多

數據多重共線性Multicollinearity is likely far down on a mental list of things to check for, if it is on a list at all. This does, however, appear almost always in real-life datasets, and it’s important to be aware of how to address it.多重共線性可能根本不…

PHP工廠模式計算面積與周長

<?phpinterface InterfaceShape{ function getArea(); function getCircumference();}/** * 矩形 */class Rectangle implements InterfaceShape{ private $width; private $height; public function __construct($width,$height){ $this->width$…

K-Means聚類算法思想及實現

K-Means聚類概念&#xff1a; K-Means聚類是最常用的聚類算法&#xff0c;最初起源于信號處理&#xff0c;其目標是將數據點劃分為K個類簇&#xff0c; 找到每個簇的中心并使其度量最小化。 該算法的最大優點是簡單、便于理解&#xff0c;運算速度較快&#xff0c;缺點是只能應…

(2.1)DDL增強功能-數據類型、同義詞、分區表

1.數據類型 &#xff08;1&#xff09;常用數據類型  1.整數類型 int 存儲范圍是-2,147,483,648到2,147,483,647之間的整數&#xff0c;主鍵列常設置此類型。 &#xff08;每個數值占用 4字節&#xff09; smallint 存儲范圍是-32,768 到 32,767 之間的整數&#xff0c;用…

充分利用昂貴的分析

By Noor Malik努爾馬利克(Noor Malik) Let’s say you write a query in Deephaven which performs a lengthy and expensive analysis, resulting in a live table. For example, in a previous project, I wrote a query which pulled data from an RSS feed to create a li…

【java并發編程藝術學習】(一)初衷、感想與筆記目錄

不忘初心&#xff0c;方得始終。 學習java編程這么長時間&#xff0c;自認為在項目功能需求開發中沒啥問題&#xff0c;但是之前的幾次面試和跟一些勤奮的或者小牛、大牛級別的人的接觸中&#xff0c;才發現自己的無知與淺薄。 學習總得有個方向吧&#xff0c;現階段就想把并發…

層次聚類和密度聚類思想及實現

層次聚類 層次聚類的概念&#xff1a; 層次聚類是一種很直觀的算法。顧名思義就是要一層一層地進行聚類。 層次法&#xff08;Hierarchicalmethods&#xff09;先計算樣本之間的距離。每次將距離最近的點合并到同一個類。然后&#xff0c;再 計算類與類之間的距離&#xff0…

通配符 或 怎么濃_濃咖啡的咖啡渣新鮮度

通配符 或 怎么濃How long could you wait to brew espresso after grinding? Ask a barista, any barista, and I suspect their answer is immediately or within a few minutes. The common knowledge on coffee grounds freshness is that after 30 minutes or so, coffee…

保留

看見 你在我眼前 不去猜想我們隔多遠 當我 夜幕中準備 只想讓沉默的能開解 在不同的遭遇里 我發現你的瞬間 有種不可言說的溫柔直覺 在有限的深夜消失之前 觸摸你的臉 我情愿這是幻覺 也不愿是種告別 已經忘了 你的名字 就在這座 寂靜星石 怎么還有 你的樣子 被保留 給我 一整個…

《netty入門與實戰》筆記-02:服務端啟動流程

為什么80%的碼農都做不了架構師&#xff1f;>>> 1.服務端啟動流程 這一小節&#xff0c;我們來學習一下如何使用 Netty 來啟動一個服務端應用程序&#xff0c;以下是服務端啟動的一個非常精簡的 Demo: NettyServer.java public class NettyServer {public static v…

譜聚類思想及實現

&#xff08;這個我也沒有怎么懂&#xff0c;為了防止以后能用上&#xff0c;還是記錄下來&#xff09; 譜聚類 注意&#xff1a;譜聚類核心聚類算法還是K-means 算法進行聚類~ 譜聚類的實現過程&#xff1a; 1.根據數據構造一個 圖結構&#xff08;Graph&#xff09; &…

Tengine HTTPS原理解析、實踐與調試【轉】

本文邀請阿里云CDN HTTPS技術專家金九&#xff0c;分享Tengine的一些HTTPS實踐經驗。內容主要有四個方面&#xff1a;HTTPS趨勢、HTTPS基礎、HTTPS實踐、HTTPS調試。 一、HTTPS趨勢 這一章節主要介紹近幾年和未來HTTPS的趨勢&#xff0c;包括兩大瀏覽器chrome和firefox對HTTPS的…

Linux 指定運行時動態庫路徑【轉】

轉自&#xff1a;http://www.cnblogs.com/cute/archive/2011/02/24/1963957.html 眾所周知&#xff0c; Linux 動態庫的默認搜索路徑是 /lib 和 /usr/lib 。動態庫被創建后&#xff0c;一般都復制到這兩個目錄中。當程序執行時需要某動態庫&#xff0c; 并且該動態庫還未加載到…

opencv:SIFT——尺度不變特征變換

SIFT概念&#xff1a; Sift&#xff08;尺度不變特征變換&#xff09;&#xff0c;全稱是Scale Invariant Feature Transform Sift提取圖像的局部特征&#xff0c;在尺度空間尋找極值點&#xff0c;并提取出其位置、尺度、方向信息。 Sfit的應用范圍包括 物體辨別、機器人地圖…

pca(主成分分析技術)_主成分分析技巧

pca(主成分分析技術)介紹 (Introduction) Principal Component Analysis (PCA) is an unsupervised technique for dimensionality reduction.主成分分析(PCA)是一種無監督的降維技術。 What is dimensionality reduction?什么是降維&#xff1f; Let us start with an exam…

npm link run npm script

npm link & run npm script https://blog.csdn.net/juhaotian/article/details/78672390 npm link命令可以將一個任意位置的npm包鏈接到全局執行環境&#xff0c;從而在任意位置使用命令行都可以直接運行該npm包。 app-cmd.cmd #!/usr/bin/env nodeecho "666" &a…

一文詳解java中對JVM的深度解析、調優工具、垃圾回收

2019獨角獸企業重金招聘Python工程師標準>>> jvm監控分析工具一般分為兩類&#xff0c;一種是jdk自帶的工具&#xff0c;一種是第三方的分析工具。jdk自帶工具一般在jdk bin目錄下面&#xff0c;以exe的形式直接點擊就可以使用&#xff0c;其中包含分析工具已經很強…