1. 程式人生 > >JMeter接口壓力測試課程入門到高級實戰教程(詳情)

JMeter接口壓力測試課程入門到高級實戰教程(詳情)

步驟 version 系統 發送post請求 參數類型 通過 sse 指標 ports

章節一壓力測試課程介紹
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、問題
[root@iZwz95j86y235aroi85ht0Z bin]# ./jmeter-server
Created remote object: UnicastServerRef2 [liveRef: [endpoint::39308,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、問題
[root@iZwz95j86y235aroi85ht0Z 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、問題:
[root@iZ949uw2xehZ 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的配置是否正確。

更多學習資料可參考:https://xdclass.net/html/course_catalogue.html?video_id=3
http://edu.51cto.com/course/13251.html

JMeter接口壓力測試課程入門到高級實戰教程(詳情)