1. 程式人生 > >JMeter介面壓力測試實戰教程

JMeter介面壓力測試實戰教程

章節一壓力測試課程介紹

1、2018年億級流量壓測系列之Jmeter4.0課程介紹和效果演示  

       簡介:

              講解課程安排,使用的Jmeter版本

              講課風格:涉及的元件,操作配置多,不會一次性講解,會先講部分,然後在後續操作中慢慢補充,更容易消化和理解

2、常用壓力測試工具對比

       簡介:目前用的常用測試工具對比

              1、loadrunner

                     效能穩定,壓測結果及細粒度大,可以自定義指令碼進行壓測,但是太過於重大,功能比較繁多

              2、apache ab(單介面壓測最方便)

                     模擬多執行緒併發請求,ab命令對發出負載的計算機要求很低,既不會佔用很多CPU,也不會佔用太多的記憶體,但卻會給目標伺服器造成巨大的負載, 簡單DDOS攻擊等

              3、webbench

                     webbench首先fork出多個子程序,每個子程序都迴圈做web訪問測試。子程序把訪問的結果通過pipe告訴父程序,父程序做最終的統計結果。

章節二 JMeter4.x基礎知識講解和壓測實操

3、Jmeter基本介紹和使用場景

       簡介

              1、壓測不同的協議和應用

                     1) Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)

                     2) SOAP / REST Webservices

                     3) FTP

                     4) Database via JDBC

                     5) LDAP  輕量目錄訪問協議

                     6) Message-oriented middleware (MOM) via JMS

                     7) Mail - SMTP(S), POP3(S) and IMAP(S)

                     8) TCP等等

              2、使用場景及優點

                     1)功能測試

                     2)壓力測試

                     3)分散式壓力測試

                     4)純java開發

                     5)上手容易,高效能

                     4)提供測試資料分析

                     5)各種報表資料圖形展示

4、本地快速安裝Jmeter4.x

 簡介:GUI圖形介面的安裝

        1、需要安裝JDK8。或者JDK9,JDK10

        2、快速下載

             windows: http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.zip

             mac或者linux:http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.tgz

        3、文件地址:http://jmeter.apache.org/usermanual/get-started.html

        4、建議安裝JDK環境,雖然JRE也可以,但是壓測https需要JDK裡面的 keytool工具

5、Jmeter目錄檔案講解

       簡介:講解jmeter解壓檔案裡面的各個目錄,檔案等

       1、目錄

              bin:核心可執行檔案,包含配置

                     jmeter.bat: windows啟動檔案:

                     jmeter: mac或者linux啟動檔案:

                     jmeter-server:mac或者Liunx分散式壓測使用的啟動檔案

                     jmeter-server.bat:mac或者Liunx分散式壓測使用的啟動檔案

                     jmeter.properties: 核心配置檔案

              extras:外掛拓展的包

              lib:核心的依賴包

                     ext:核心包

                     junit:單元測試包

6、Jmeter語言版本中英文切換

       簡介:

              講解怎麼改變jmeter的GUI介面語言版本

              1、控制檯修改

                     menu -> options -> choose language

              2、配置檔案修改 

                     bin目錄 -> jmeter.properties

                            預設 #language=en

                            改為 language=zh_CN

7、使用SpringBoot 2.0快速編寫API測試介面

       簡介

              使用java的框架springBoot快速編寫幾個API介面測試

              https://spring.io/guides/gs/spring-boot/

              介面列表

                     1、模擬GET請求,使用者列表介面

                     2、模擬POST請求,使用者登入介面

              http://localhost:8080/users

8、建立Jmeter測試計劃,快速壓測一個介面

       簡介:

              通過帶著why來學習,快速建立一個測試計劃

章節三 Jmeter核心元件講解和實操

9、Jmeter基礎功能元件介紹執行緒組和Sampler

       簡介:講解Jmeter裡面GUI選單欄主要元件

              1、新增->threads->執行緒組(控制總體併發)

                     執行緒數:虛擬使用者數。一個虛擬使用者佔用一個程序或執行緒

                     準備時長(Ramp-Up Period(in seconds)):全部執行緒啟動的時長,比如100個執行緒,20秒,則表示20秒內100個執行緒都要啟動完成,每秒啟動5個執行緒

                     迴圈次數:每個執行緒傳送的次數,假如值為5,100個執行緒,則會發送500次請求,可以勾選永遠迴圈

              2、執行緒組->新增-> Sampler(取樣器) -> Http (一個執行緒組下面可以增加幾個Sampler)

                     名稱:取樣器名稱

                     註釋:對這個取樣器的描述

                     web伺服器:

                            預設協議是http

                            預設埠是80

                            伺服器名稱或IP :請求的目標伺服器名稱或IP地址

                     路徑:伺服器URL

                     Use multipart/from-data for HTTP POST :當傳送POST請求時,使用Use multipart/from-data方法傳送,預設不選中。

              3、檢視測試結果

                     執行緒組->新增->監聽器->察看結果樹

10、Jmeter的斷言基本使用

       簡介:介紹什麼是斷言及基本使用

              1、增加斷言: 執行緒組 -> 新增 -> 斷言 -> 響應斷言 

                     apply to(應用範圍):

                            Main sample only: 僅當前父取樣器 進行斷言,一般一個請求,如果發一個請求會觸發多個,則就有sub sample(比較少用)

                     要測試的響應欄位:

                            響應文字:即響應的資料,比如json等文字

                            響應程式碼:http的響應狀態碼,比如200,302,404這些

                            響應資訊:http響應程式碼對應的響應資訊,例如:OK, Found

                            Response Header: 響應頭

                     模式匹配規則:

                            包括:包含在裡面就成功

                            匹配:響應內容完全匹配,不區分大小寫

                            equals:完全匹配,區分大小寫

              2、斷言結果監聽器: 執行緒組-> 新增 -> 監聽器 -> 斷言結果

                     裡面的內容是sampler取樣器的名稱

                     斷言失敗,檢視結果樹任務結果顏色標紅(通過結果數裡面雙擊不通過的記錄,可以看到錯誤資訊)

              3、每個sample下面可以加單獨的結果樹,然後同時加多個斷言,最外層可以加個結果樹進行彙總

11、Jmeter實戰之壓測結果聚合報告分析

       簡介:講解壓測結果的聚合報告

       新增聚合報告:執行緒組->新增->監聽器->聚合報告(Aggregate Report)

                     lable: sampler的名稱

                     Samples: 一共發出去多少請求,例如10個使用者,迴圈10次,則是 100

                     Average: 平均響應時間

                     Median: 中位數,也就是 50% 使用者的響應時間

                     90% Line : 90% 使用者的響應不會超過該時間 (90% of the samples took no more than this time. The remaining samples at least as long as this)

                     95% Line : 95% 使用者的響應不會超過該時間

                     99% Line : 99% 使用者的響應不會超過該時間

                     min : 最小響應時間

                     max : 最大響應時間

                     Error%:錯誤的請求的數量/請求的總數

                     Throughput: 吞吐量——預設情況下表示每秒完成的請求數(Request per Second) 可類比為qps

                     KB/Sec: 每秒接收資料量

12、Jmeter壓測指令碼JMX講解

       簡介:壓測指令碼JMX講解

              1、開啟方式subline,或者xml編輯器

              2、執行日誌和壓測時間檢視(基礎按鈕)

章節四 自定義變數和CSV可變引數實操

13、Jmeter使用者自定義變數實戰

       簡介:什麼是使用者自定義變數,怎樣使用

              為什麼使用:很多變數在全域性中都有使用,或者測試資料更改,可以在一處定義,四處使用

              比如伺服器地址

              1、執行緒組->add -> Config Element(配置原件)-> User Definde Variable(使用者定義的變數)

              2、引用方式${XXX},在介面中變數中使用

              3、原始檢視結果樹和非原生檢視(基礎按鈕)

14、Jmeter實戰之CSV可變引數壓測

       簡介:

              實戰操作jmeter讀取CSV和Txt文字檔案裡面的引數進行壓測

              1、執行緒組->add -> Config Element(配置原件)-> CSV data set config (CSV資料檔案設定)

15、CSV檔案多引數使用

              簡介:在讀取的配置檔案裡面,同時使用多個自定義引數

              1、如果是多個引數需要同時引用,則在CSV資料檔案裡面設定加多個欄位

                 Variabled names(comma-delitited):  csv_name,csv_pwd

章節五 Mysql資料庫壓測實操

16、Jmeter壓測實戰之JDBC request壓測Mysql講解

       簡介:講解jdbc壓測mysql相關準備工作,jar包新增,配置講解

              1、Thread Group -> add -> sampler -> jdbc request

              2、jar包新增  mysql-connector-java-5.1.30.jar

              3、JDBC connection Configuration 配置

                     1、JDBC request->add -> config element -> JDBC connection configuration

                            核心配置

                                   Max Number of connections : 最大連線數

                                   MAX wait :最大等待時間

                                   Auto Commit: 是否自動提交事務

                                   DataBase URL : 資料庫連線地址 jdbc:mysql://127.0.0.1:3306/blog

                                   JDBC Driver Class : 資料庫驅動,選擇對應的mysql

                                   username:資料庫使用者名稱

                                   password:資料庫密碼

17、Jmeter壓測實戰之JDBC request壓測Mysql, select語句

       簡介:使用jmeter壓測mysql,select,insert語句

              1、Debug Sampler使用(結果樹中檢視)

                     Thread Group -> add -> sampler -> debug sampler

              2、引數講解:(sql結尾不要加";")

                     1、variable name of pool declared in JDBC connection configuration(和配置檔案同名)

                     2、Query Type 查詢型別

                     3、parameter values 引數值

                     4、parameter types  引數型別

                     5、variable names  sql執行結果變數名

                     6、result variable names 所有結果當做一個物件儲存

                     7、query timeouts  查詢超時時間

                     8、 handle results  處理結果集

章節六 高階篇之分散式壓測基礎知識

18、分散式壓測介紹

       簡介:講解什麼是分散式壓測

               普通壓測:單臺機可以對目標機器產生的壓力比較小,受限因素包括CPU,網路,IO等

               分散式壓測:利用多臺機器向目標機器產生壓力,模擬幾萬使用者併發訪問

19、Jmeter分散式壓測原理

       簡介:講解Jmeter分散式壓測原理

              1、總控機器的節點master,其他產生壓力的機器叫“肉雞” server

              2、master會把壓測指令碼傳送到 server上面

              3、執行的時候,server上只需要把jmeter-server開啟就可以了,不用啟動jmeter

              4、結束後,server會把壓測資料回傳給master,然後master彙總輸出報告

              5、配置詳情

章節七 高階篇之阿里雲Linux伺服器壓測介面實戰

20、SpringBoot 介面打包,並用jar包方式部署

       簡介:用jar包方式在控制檯進行啟動

       打包 mvn package && java -jar target/gs-spring-boot-0.1.0.jar

21、阿里雲伺服器介紹和ECS伺服器使用

       簡介:

              阿里雲伺服器介紹和購買ECS伺服器等

              推薦購買2G記憶體以上的進行開發學習

22、阿里雲Linux伺服器下安裝啟動JDK8並配置環境變數

       簡介:在阿里雲環境下安裝JDK8並配置環境變數

23、部署java專案到阿里雲伺服器和守護程序講解

       簡介:

              部署專案到阿里雲,並啟動,公網可以訪問

              1、注意點

                     關閉防火牆

                     阿里雲控制檯安全策略,開放埠

              linux上執行 java -jar xxxx

             ssh [email protected]

             守護程序:nohup java -jar xxxxx &

                    什麼是守護程序:

24、阿里雲Linux伺服器安裝Jmeter 4.0

       簡介:在阿里雲環境下安裝Jmeter

              經濟足夠:購買兩臺阿里雲機器

              不足:本地虛擬機器,或者用你室友的電腦,在同個區域網就可以,安裝同個版本的jdk,jmeter,同個路徑,不要帶有空格或者中文

              下載地址

              wget http://apache.osuosl.org//jmeter/binaries/apache-jmeter-4.0.tgz

 25、Jmeter非GUI介面 引數講解

      講解:非GUI介面,壓測引數講解

                    -h 幫助

                     -n 非GUI模式

                     -t 指定要執行的 JMeter 測試指令碼檔案

                     -l 記錄結果的檔案 每次執行之前,(要確保之前沒有執行過,即xxx.jtl不存在,不然報錯)

                     -r Jmter.properties檔案中指定的所有遠端伺服器

                     -e 在指令碼執行結束後生成html報告

                     -o 用於存放html報告的目錄(目錄要為空,不然報錯)

             官方配置檔案地址 http://jmeter.apache.org/usermanual/get-started.html

              jmeter -n -t linux_users_api.jmx -l result.jtl -e -o /usr/local/softwate/jmeter/temp/ResultReport

              jmeter -n -t /Users/jack/Desktop/linux_users_api.jmx -l result.jtl -e -o /Users/jack/Desktop/person/jmeter/temp

26、專案實戰之阿里雲Linux伺服器下非GUI執行jmeter壓測

       簡介:

              在阿里雲伺服器上以非GUI介面去執行JMX壓測指令碼

              jmx目錄:/usr/local/software/jmeter/temp

jmeter -n -t /usr/local/software/jmeter/temp/linux_users_api.jmx -l /usr/local/software/jmeter/temp/jtl/result.jtl

章節八 高階篇之阿里雲壓測 html視覺化壓測報告細講

 27、阿里雲Linux伺服器 Jmeter壓測實戰之jtl檔案生成和檢視

      簡介:

             利用軟體從阿里雲Centos伺服器下載壓測報告,講解Jtl檔案,並怎麼檢視檔案

             可以通過開啟jmeter,新建執行緒組->summary report->瀏覽檔案 進行檢視

 28、Jmeter壓測介面的效能優化

       簡介:講解Jmeter壓測減少資源使用的一些建議,即壓測結果更準確

       1、使用非GUI模式:jmeter -n -t test.jmx -l result.jtl

       2、少使用Listener, 如果使用-l引數,它們都可以被刪除或禁用。

       3、在載入測試期間不要使用“檢視結果樹”或“檢視結果”表監聽器,只能在指令碼階段使用它們來除錯指令碼。

       4、包含控制器在這裡沒有幫助,因為它將檔案中的所有測試元素新增到測試計劃中。]

       5、不要使用功能模式,使用CSV輸出而不是XML

       6、只儲存你需要的資料,儘可能少地使用斷言

       7、如果測試需要大量資料,可以提前準備好測試資料放到資料檔案中,以CSV Read方式讀取。

       8、用內網壓測,減少其他頻寬影響壓測結果

       9、如果壓測大流量,儘量用多幾個節點以非GUI模式向伺服器施壓

       官方推薦 :http://jakarta.apache.org/jmeter/usermanual/best-practices.html#lean_mean

29、專案實戰之Jmeter壓測生成多維度圖形化HTML測試報告

       簡介:

              把Jmtere壓測結果轉換為Html

              指令

              jmeter -n -t /usr/local/software/jmeter/temp/linux_users_api.jmx -l /usr/local/software/jmeter/temp/jtl/result.jtl -e -o /usr/local/software/jmeter/temp/result

30、Jmeter圖形化HTML壓測報告dashboard講解

       簡介:

              講解壓測報告 html裡面Dashboard的核心指標

              1、dashboard講解

                     1)Test and Report informations

                            Source file:jtl檔名

                            Start Time :壓測開始時間

                            End Time :壓測結束時間

                            Filter for display:過濾器

                            Lable:sampler取樣器名稱   

                     2)APDEX(Application performance Index)

                            apdex:應用程式效能指標,範圍在0~1之間,1表示達到所有使用者均滿意

                            T(Toleration threshold):可接受閥值

                            F(Frustration threshold):失敗閥值

                     3)Requests Summary

                            OK:成功率

                            KO:失敗率

                     4)Statistics 統計資料

                            lable:sampler取樣器名稱

                            samples:請求總數,併發數*迴圈次數

                            KO:失敗次數

                            Error%:失敗率

                            Average:平均響應時間

                            Min:最小響應時間

                            Max:最大響應時間

                            90th pct: 90%的使用者響應時間不會超過這個值(關注這個就可以了)

                            2ms,3ms,4,5,2,6,8,3,9

                            95th pct: 95%的使用者響應時間不會超過這個值

                            99th pct: 99%的使用者響應時間不會超過這個值 (存在極端值)

                            throughtput:Request per Second吞吐量 qps

                            received:每秒從伺服器接收的資料量

                            send:每秒傳送的資料量

31、Jmeter圖形化HTML壓測報告Charts報表講解

       簡介:

              講解壓測報告 html裡面Charts的核心指標

              1、charts講解

                     1)Over Time(隨著時間的變化)

                            Response Times Over Time:響應時間變化趨勢

                            Response Time Percentiles Over Time (successful responses):最大,最小,平均,使用者響應時間分佈

                            Active Threads Over Time:併發使用者數趨勢

                            Bytes Throughput Over Time:每秒接收和請求位元組數變化,藍色表示傳送,黃色表示接受

                            Latencies Over Time:平均響應延時趨勢

                            Connect Time Over Time      :連線耗時趨勢

                     1)Throughput

                            Hits Per Second (excluding embedded resources):每秒點選次數

                            Codes Per Second (excluding embedded resources):每秒狀態碼數量

                            Transactions Per Second:即TPS,每秒事務數

                            Response Time Vs Request:響應時間和請求數對比

                            Latency Vs Request:延遲時間和請求數對比

                     1)Response Times

                            Response Time Percentiles:響應時間百分比

                            Response Time Overview:響應時間概述

                            Time Vs Threads:活躍執行緒數和響應時間

                            Response Time Distribution:響應時間分佈圖

章節九 高階篇之多節點JMeter分散式壓測實戰

32、Jmeter4.0分散式壓測準備工作

       簡介:講解Linux伺服器上jmeter進行分散式壓測的相關準備工作

              1、壓測注意事項

                     the firewalls on the systems are turned off or correct ports are opened.

                     系統上的防火牆被關閉或正確的埠被開啟。

                     all the clients are on the same subnet.

                     所有的客戶端都在同一個子網上。

                     the server is in the same subnet, if 192.x.x.x or 10.x.x.x IP addresses are used. If the server doesn't use 192.xx or 10.xx IP address, there shouldn't be any problems.

                     如果使用192.x.x.x或10.x.x.x IP地址,則伺服器位於同一子網中。 如果伺服器不使用192.xx或10.xx IP地址,則不應該有任何問題。

                     Make sure JMeter can access the server.

                     確保JMeter可以訪問伺服器。

                     Make sure you use the same version of JMeter and Java on all the systems. Mixing versions will not work correctly.

                     確保在所有系統上使用相同版本的JMeter和Java。 混合版本將無法正常工作。

                     You have setup SSL for RMI or disabled it.

                     您已為RMI設定SSL或將其禁用。

                     官網地址 http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

                     壓測注意事項:一定要用內網IP,不用用公網IP,用ping去檢查

              2、專業名字

                     master:司令

                     slave:奴隸

                     target:目標

                     地址:http://jmeter.apache.org/images/screenshots/distributed-names.svg

                     地址:http://jmeter.apache.org/images/screenshots/distributed-jmeter.svg

       遠端拷貝(內網地址):

              scp -r /usr/local/software/jdk-8u141-linux-x64.tar.gz [email protected]:/usr/local/software

              scp -r /usr/local/software/jmeter/apache-jmeter-4.0.tgz [email protected]:/usr/local/software/jmeter

       啟動

              ./jmeter-server 或者    nohup ./jmeter-server &

       檢查啟動是否成功

              ps -ef|grep jmeter-server

              ps aux|grep jmeter-server

33、阿里雲jmeter壓測常見問題處理

       簡介:講解阿里雲上安裝jmeter常見問題的處理,安裝遇到的問題等等

(備註:內容較多,放在筆記最下方)

34、Jmeter4.0分散式壓測實戰

       簡介:Jmeter分散式壓測實戰,壓測介面

              1、關注CPU和記憶體使用

              本地非GUI分散式壓測 -r

              jmeter -n -t /Users/jack/Desktop/remote.jmx -r -l /Users/jack/Desktop/jtl/result.jtl -e -o /Users/jack/Desktop/result

                     壓測結果

                     ./jmeter -n -t /Users/jack/Desktop/remote.jmx -r -l /Users/jack/Desktop/jtl/result.jtl -e -o /Users/jack/Desktop/result

                     Creating summariser <summary>

                     Created the tree successfully using /Users/jack/Desktop/remote.jmx

                     Configuring remote engine: 172.20.10.3:8899

                     Using local port: 8899

                     Configuring remote engine: 172.20.10.11:8899

                     Starting remote engines

                     Starting the test @ Thu Mar 29 23:21:13 CST 2018 (1522336873931)

                     Remote engines have been started

                     Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445

                     summary =      4 in 00:00:22 =    0.2/s Avg:  5582 Min:    94 Max: 21006 Err:     1 (25.00%)

                     Tidying up remote @ Thu Mar 29 23:21:36 CST 2018 (1522336896842)

                     ... end of run

              2、壓測修改master節點資訊

                     jemeter.properties 值是slave機器的ip+埠號,如果有多個,用逗號分隔

                            remote_hosts=192.168.0.102:8899,192.168.0.101:8899

                            server.rmi.ssl.disable=true (前面有說到)

              3、啟動slave機器,注意要同個網段,ip地址用內網ip

                     ./jmeter-server

                     Using local port: 8899

                     Created remote object: UnicastServerRef2 [liveRef: [endpoint:[192.168.0.102:8899](local),objID:[3a585a4d:162724586ab:-7fff, 3963132813614033916]]]

              相關資料:

                     https://www.cnblogs.com/Fine-Chan/p/6233823.html

                     https://blog.csdn.net/liujingqiu/article/details/52635289

                     https://www.cnblogs.com/puresoul/p/4844539.html

章節十 高階篇之Jmeter壓測課程總結和架構淺析

35、課程總結和關於系統架構,推薦學習資料

       簡介:講解測試人員的基礎技能,系統架構知識,相關推薦書籍,課程總結等

       配置元件=》前置處理器=》定時器=》取樣器=》後置處理器=》斷言=》監聽器

安裝常見問題

1、問題

       [[email protected] bin]# ./jmeter-server

       Created remote object: UnicastServerRef2 [liveRef: [endpoint:[:39308](local),objID:[24e78a63:16243c70661:-7fff, 7492480871343944173]]]

       Server failed to start: java.rmi.RemoteException: Cannot start. Unable to get local host IP address.; nested exception is:

       java.net.UnknownHostException: iZwz95j86y235aroi85ht0Z: iZwz95j86y235aroi85ht0Z: Name or service not known

       An error occurred: Cannot start. Unable to get local host IP address.; nested exception is:

       java.net.UnknownHostException: iZwz95j86y235aroi85ht0Z: iZwz95j86y235aroi85ht0Z: Name or service not known

       解決:

              hostname  命令獲取機器名稱,追加一個對映  iZwz95j86y235aroi85ht0Z

              vim /etc/hosts

                     127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

                     ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

                     120.79.160.143 iZwz95j86y235aroi85ht0Z

              windows使用者 修改c:\windows\system32\drivers\etc\hosts檔案,增加一條域名 與IP的對映

2、問題

       [[email protected] bin]# ./jmeter-server

       Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is:

       java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)

       An error occurred: Listen failed on port: 0; nested exception is:

       java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)

   解決:

            擁有RMI over SSL的有效金鑰庫,或者禁用了SSL。

            1、禁用SSL

                   jmeter.property裡面 server.rmi.ssl.disable 改為 true,表示禁用

3、問題:

                     [[email protected] bin]# ./jmeter

              Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)

              #

              # There is insufficient memory for the Java Runtime Environment to continue.

              # Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.

              # An error report file with more information is saved as:

              # /usr/local/jmeter/apache-jmeter-4.0/bin/hs_err_pid5855.log

       解決:

              編輯jmeter

              搜尋 : "${HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"

              改變初始堆記憶體和最大堆記憶體

4、僅修改 server_port 即可,下面兩者一樣

       server.rmi.localport=8899 表示slave server啟動顯示的埠

       server_port=8899  表示master機器要遠端連線的埠   即 remote_hosts=xxxx:8899

5、

       <!-- jmeter 分散式效能測試(多網絡卡配置) -->

       我們要在多網絡卡的伺服器上開啟RMI服務的話必須指定IP,使他們能夠在同一個網段內。

       需要以下幾步(假定所有機器都在10.120.11.*網段,agent伺服器為linux,controller伺服器為windows):

       1、 修改agent伺服器,指定agent機器的IP

       修改jmeter-server檔案

       # vi jmeter-server

       修改RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx(需要連線的IP)

       2、修改server伺服器,指定server機器的IP

       修改jmeter.bat檔案

       新增set rmi_host=-Djava.rmi.server.hostname=10.120.11.214

       修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%

6、確定在controller機器上安裝jdk,版本和jmeter一致,配置環境變數:Java_home等

   在Agent機器上安裝jdk,配置環境變數:Java_home和JMeter_home

   安裝目錄不要帶空格,最好都是簡短的英文路徑

7、master機器啟動後會拷貝jmx檔案到slave機器,所以不需要在每臺slave機器上也上傳一份jmx,只需要在master機器上上傳一份jmx指令碼即可。

       如果使用csv進行引數化,則需要把引數檔案在每臺slave上拷一份且路徑需要設定成一樣的。

       總樣本數 = 執行緒數 * 迴圈次數 * 執行機總數

8、連線失敗原因排查

       以下步驟進行排查:

              1. jmeter-server是否啟動;

              2. 是否聯網

              3. ping 伺服器IP是否暢通.

              4. telnet 埠 192.168.3.10 1099

              5. 檢查伺服器的防火牆是否關閉。

              6. 阿里雲安全策略是否正常

9、"could not find ApacheJmeter_core.jar"

       解決:在Agent機器安裝jdk,並設定環境變數

10、”Bad call to remote host"

       解決:檢查被控制機器上的jmeter-server有沒有啟動,或者remote_hosts的配置是否正確。

相關推薦

JMeter介面壓力測試實戰教程

章節一壓力測試課程介紹 1、2018年億級流量壓測系列之Jmeter4.0課程介紹和效果演示          簡介:               講解課程安排,使用的Jmeter版本               講課風格:涉及的元件,操作配置多,不會一次性講解,

Jmeter壓力測試簡單教程(包括伺服器狀態監控)

步驟一  安裝Jmeter     我用的版本是3.1版本,為什麼是3.1,因為3.2有問題,我也是跑了一段時間後才知道3.2版本太新了還是什麼的,有些功能就是不行,在此建議大家,不要輕易使用最新版本,次新版本就可以了。安裝好了之後Jmeter的bin目錄下有個Jmet

JMeter壓力測試入門教程[圖文]

https://blog.linuxeye.com/335.html Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試但後來擴充套件到其他測試領域。 它可以用於測試靜態和動態資源例如靜態檔案

JMeter壓力測試,先呼叫第一介面,拿到返回值後去呼叫第二個介面(小白級入門)

1、開啟介面建立執行緒組,並取一個名稱 2、執行緒組下建立一個http請求,並進行配置 3、指定動態引數 名字必須和上面第二步介面中${XXX}符號裡面的名稱保持一致

Jmeter壓力測試簡單教程(包括伺服器狀態監控

    前段時間公司需要對伺服器進行壓力測試,包括登入前的頁面和登入後的頁面,主要目的是測試負載均衡的實現效果。不知道是不是因為Jmeter不如loadRunner火爆還是什麼,網上關於Jmeter的資料有很多但是大多千篇一律,要麼簡單弄個頁面測試一下,要麼全篇都是介紹很多和Jmeter無關的第三方工具,看起

Jmeter傳送SOAP請求對WebService介面壓力測試

Jmeter也可以對WebService介面測試並進行壓力測試 1、本次例項介面(業務開通介面) <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http:/

Jmeter從下載到完成效能測試實戰教程(Windows平臺)

前言 本教程內容龐大,所以儘量寫的精簡,沒有寫出指令碼的具體編寫步驟,有興趣的朋友可以下載Demo後和教程對照著看。 請求的服務端,是通過服務端模擬器來生成的。可以下載Mock服務端模擬器,設定與教程相同的請求地址來學習。 Demo下載地址:點選下載 Moc

Jmeter進行介面壓力測試的步驟

1、雙擊jmeter.bat  2、右鍵點選測試規劃à新增àThreadsà執行緒組,此時在測試規劃下邊顯露出來執行緒組選項。點選該選項,顯露出來執行緒組介面。參變數執行緒數表達若干個煩請,參變數Ramp-Up Period表達在多長時間內跑完全部的煩請,迴圈回數表達同一

2、Locust壓力測試 實戰

set 實戰 時間 行為 taskset 毫秒 第一個 分享 請求 創建測試腳本 創建Test()類繼承TaskSet類 創建beigong() 方法表示一個行為,訪問北弓官網首頁。用@task() 裝飾該方法為一個任務。1表示一個Locust實例被挑選執行的

Jmeter簡單壓力測試

order 結果 1.3 bubuko 有一個 border 分享圖片 運行 height 一、使用Jmeter進行簡單壓力測試 1.壓測指標   1)壓測時間:一般的壓測時間是10-15分鐘   2)TPS:服務端每秒處理的請求數,越大越好   3)響應時間:   4)C

JMeter-Java壓力測試工具-02

tab bsp int 測試工具 顯示 有一個 response 結果 ken 這節介紹幾個Listener下面的組件 Aggregate Report-匯總報告 從左到右依次:具有相同標簽的樣本數、一組結果的平均時間、一組結果的中間時間(50%的樣本不超過這個時間)、9

Jmeter壓力測試總結

bsp -s lin 壓力測試 在線 median 並發用戶 執行 strong 一、基本概念 1.線程組N:代表一定數量的並發用戶,所謂並發就是指同一時刻訪問發送請求的用戶。線程組就是模擬並發用戶訪問。 2.Ramp-Up Period(in seconds):建立所有線

jmeter介面效能測試(2)----效能測試全過程

依然使用上一篇文章的介面 在上一篇文章我們已經添加了http請求、斷言、檢視結果樹。在開始之前我們在新增聚合報告(執行緒組》新增》監聽器》聚合報告)。 除錯好介面後開始執行效能測試 1.設定執行緒組:根據實際需要設定 1. 執行緒數:虛擬使用者數。一個虛擬使用者佔用一個程序或執

jmeter介面效能測試(1)----簡單的介面測試入門

首先來看一下介面的資訊:host:http://api.jhled888.comuri: /cgi-bin/get.json 介面請求方式: GET 入參:appid: jhyjlhxa03q4f2qlmfappsecret:eb28066907b14310a9401c0586c840

jmeter介面效能測試(5)----自動生成測試報告

今天學習了在jmeter中自動生成HTML格式的文件 儲存好指令碼後,通過cmd.exe進入到jmeter的bin目錄下: 輸入以下命令:jmeter -n -t xxx.jmx(指令碼的路徑) -l result.jtl -e -o /tmp/Result(報告的路徑) 執

jmeter介面效能測試(4)----提取json中的資料並應用到斷言中

介面資訊如下: 執行介面後在檢視結果樹種檢視響應資料,檢視方式選擇:JSON Path Tester 我們要在json中提取如下的資料: 檢視json體的路徑關係,在JSON path Expression中輸入路徑,關注是否能得到想要的數值。如:我們想要獲取上圖中的n

jmeter介面效能測試(3)----引數化

1.新增使用者自定義變數 給http請求新增使用者自定義變數:執行緒組》配置元件》使用者自定義變數 定義一個名稱為s的變數 在http請求中呼叫該引數 2.CSV Data Set Config 執行緒組》配置元件》CSV Data Set Config

python - 介面自動化測試實戰 - case1 - 再次優化版

  本次優化:   1.  各級分Package   2.  封裝【ReadExcel】類   3.  封裝【ReadConfig】類   4.  封裝【GetLog】類   5.  引入ddt資料驅動測試,優化測試用例程式碼 &nbs

記一次Grpc介面壓力測試&效能調優

〇、經驗總結: 如果在壓測過程中,壓力始終上不去,可以考慮是施壓機器併發上不去,或者被壓機器請求處理不過來。 施壓上不去或者被壓機器請求處理不過來,是因為機器CPU瓶頸?記憶體瓶頸?埠數量瓶頸?逐步排查定位。 類似於Grpc這類需要建立rpc連線的請求,可擴充套

Android自動化壓力測試圖解教程——Monkey工具

有時候我們需要對一個軟體進行壓力測試,檢查該軟體的效能。如果是人工進行測試的話,效率會低很多,而且會比較枯燥。這時,Android中的一個命令列工具Monkey就可以為我們減輕很多重複而又繁瑣的工作。         一、Monkey簡介       至於Monkey的名