溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時間:2020-07-24 02:04:02 來源:網(wǎng)絡(luò) 閱讀:13324 作者:小D課堂 欄目:移動開發(fā)

章節(jié)一壓力測試課程介紹
1、2018年億級流量壓測系列之Jmeter4.0課程介紹和效果演示
簡介:
講解課程安排,使用的Jmeter版本

    講課風(fēng)格:涉及的組件,操作配置多,不會一次性講解,會先講部分,然后在后續(xù)操作中慢慢補(bǔ)充,更容易消化和理解

2、常用壓力測試工具對比
簡介:目前用的常用測試工具對比
1、loadrunner
性能穩(wěn)定,壓測結(jié)果及細(xì)粒度大,可以自定義腳本進(jìn)行壓測,但是太過于重大,功能比較繁多

    2、apache ab(單接口壓測最方便)
        模擬多線程并發(fā)請求,ab命令對發(fā)出負(fù)載的計(jì)算機(jī)要求很低,既不會占用很多CPU,也不會占用太多的內(nèi)存,但卻會給目標(biāo)服務(wù)器造成巨大的負(fù)載, 簡單DDOS×××等

    3、webbench
        webbench首先fork出多個子進(jìn)程,每個子進(jìn)程都循環(huán)做web訪問測試。子進(jìn)程把訪問的結(jié)果通過pipe告訴父進(jìn)程,父進(jìn)程做最終的統(tǒng)計(jì)結(jié)果。

章節(jié)二 JMeter4.x基礎(chǔ)知識講解和壓測實(shí)操
3、Jmeter基本介紹和使用場景
簡介
1、壓測不同的協(xié)議和應(yīng)用
1) Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
2) SOAP / REST Webservices
3) FTP
4) Database via JDBC
5) LDAP 輕量目錄訪問協(xié)議
6) Message-oriented middleware (MOM) via JMS
7) Mail - SMTP(S), POP3(S) and IMAP(S)
8) TCP等等

    2、使用場景及優(yōu)點(diǎn)
        1)功能測試
        2)壓力測試
        3)分布式壓力測試
        4)純java開發(fā)
        5)上手容易,高性能
        4)提供測試數(shù)據(jù)分析
        5)各種報表數(shù)據(jù)圖形展示

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環(huán)境,雖然JRE也可以,但是壓測https需要JDK里面的 keytool工具

5、Jmeter目錄文件講解
簡介:講解jmeter解壓文件里面的各個目錄,文件等
1、目錄
bin:核心可執(zhí)行文件,包含配置
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
默認(rèn) #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、創(chuàng)建Jmeter測試計(jì)劃,快速壓測一個接口
簡介:
通過帶著why來學(xué)習(xí),快速創(chuàng)建一個測試計(jì)劃

章節(jié)三 Jmeter核心組件講解和實(shí)操

9、Jmeter基礎(chǔ)功能組件介紹線程組和Sampler
簡介:講解Jmeter里面GUI菜單欄主要組件

    1、添加->threads->線程組(控制總體并發(fā))
        線程數(shù):虛擬用戶數(shù)。一個虛擬用戶占用一個進(jìn)程或線程

        準(zhǔn)備時長(Ramp-Up Period(in seconds)):全部線程啟動的時長,比如100個線程,20秒,則表示20秒內(nèi)100個線程都要啟動完成,每秒啟動5個線程

        循環(huán)次數(shù):每個線程發(fā)送的次數(shù),假如值為5,100個線程,則會發(fā)送500次請求,可以勾選永遠(yuǎn)循環(huán)

    2、線程組->添加-> Sampler(采樣器) -> Http (一個線程組下面可以增加幾個Sampler)
        名稱:采樣器名稱
        注釋:對這個采樣器的描述

        web服務(wù)器:
            默認(rèn)協(xié)議是http
            默認(rèn)端口是80
            服務(wù)器名稱或IP :請求的目標(biāo)服務(wù)器名稱或IP地址

        路徑:服務(wù)器URL

        Use multipart/from-data for HTTP POST :當(dāng)發(fā)送POST請求時,使用Use multipart/from-data方法發(fā)送,默認(rèn)不選中。

    3、查看測試結(jié)果
        線程組->添加->監(jiān)聽器->察看結(jié)果樹

10、Jmeter的斷言基本使用
簡介:介紹什么是斷言及基本使用

    1、增加斷言: 線程組 -> 添加 -> 斷言 -> 響應(yīng)斷言  

        apply to(應(yīng)用范圍):
            Main sample only: 僅當(dāng)前父取樣器 進(jìn)行斷言,一般一個請求,如果發(fā)一個請求會觸發(fā)多個,則就有sub sample(比較少用)
        要測試的響應(yīng)字段:
            響應(yīng)文本:即響應(yīng)的數(shù)據(jù),比如json等文本
            響應(yīng)代碼:http的響應(yīng)狀態(tài)碼,比如200,302,404這些
            響應(yīng)信息:http響應(yīng)代碼對應(yīng)的響應(yīng)信息,例如:OK, Found
            Response Header: 響應(yīng)頭
        模式匹配規(guī)則:
            包括:包含在里面就成功
            匹配:響應(yīng)內(nèi)容完全匹配,不區(qū)分大小寫
            equals:完全匹配,區(qū)分大小寫

    2、斷言結(jié)果監(jiān)聽器: 線程組-> 添加 -> 監(jiān)聽器 -> 斷言結(jié)果
        里面的內(nèi)容是sampler采樣器的名稱
        斷言失敗,查看結(jié)果樹任務(wù)結(jié)果顏色標(biāo)紅(通過結(jié)果數(shù)里面雙擊不通過的記錄,可以看到錯誤信息)

    3、每個sample下面可以加單獨(dú)的結(jié)果樹,然后同時加多個斷言,最外層可以加個結(jié)果樹進(jìn)行匯總

11、Jmeter實(shí)戰(zhàn)之壓測結(jié)果聚合報告分析
簡介:講解壓測結(jié)果的聚合報告

新增聚合報告:線程組->添加->監(jiān)聽器->聚合報告(Aggregate Report)

        lable: sampler的名稱
        Samples: 一共發(fā)出去多少請求,例如10個用戶,循環(huán)10次,則是 100
        Average: 平均響應(yīng)時間
        Median: 中位數(shù),也就是 50% 用戶的響應(yīng)時間

        90% Line : 90% 用戶的響應(yīng)不會超過該時間 (90% of the samples took no more than this time. The remaining samples at least as long as this)
        95% Line : 95% 用戶的響應(yīng)不會超過該時間
        99% Line : 99% 用戶的響應(yīng)不會超過該時間
        min : 最小響應(yīng)時間
        max : 最大響應(yīng)時間

        Error%:錯誤的請求的數(shù)量/請求的總數(shù)
        Throughput: 吞吐量——默認(rèn)情況下表示每秒完成的請求數(shù)(Request per Second) 可類比為qps
        KB/Sec: 每秒接收數(shù)據(jù)量

12、Jmeter壓測腳本JMX講解
簡介:壓測腳本JMX講解
1、打開方式subline,或者xml編輯器
2、運(yùn)行日志和壓測時間查看(基礎(chǔ)按鈕)

章節(jié)四 自定義變量和CSV可變參數(shù)實(shí)操

13、Jmeter用戶自定義變量實(shí)戰(zhàn)

簡介:什么是用戶自定義變量,怎樣使用

    為什么使用:很多變量在全局中都有使用,或者測試數(shù)據(jù)更改,可以在一處定義,四處使用
    比如服務(wù)器地址

    1、線程組->add -> Config Element(配置原件)-> User Definde Variable(用戶定義的變量)

    2、引用方式${XXX},在接口中變量中使用

    3、原始查看結(jié)果樹和非原生查看(基礎(chǔ)按鈕)

14、Jmeter實(shí)戰(zhàn)之CSV可變參數(shù)壓測
簡介:
實(shí)戰(zhàn)操作jmeter讀取CSV和Txt文本文件里面的參數(shù)進(jìn)行壓測
1、線程組->add -> Config Element(配置原件)-> CSV data set config (CSV數(shù)據(jù)文件設(shè)置)

15、CSV文件多參數(shù)使用
簡介:在讀取的配置文件里面,同時使用多個自定義參數(shù)

    1、如果是多個參數(shù)需要同時引用,則在CSV數(shù)據(jù)文件里面設(shè)置加多個字段 
       Variabled names(comma-delitited):  csv_name,csv_pwd

章節(jié)五 Mysql數(shù)據(jù)庫壓測實(shí)操

16、Jmeter壓測實(shí)戰(zhàn)之JDBC request壓測Mysql講解
簡介:講解jdbc壓測mysql相關(guān)準(zhǔn)備工作,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 : 最大連接數(shù)
                MAX wait :最大等待時間
                Auto Commit: 是否自動提交事務(wù)

                DataBase URL : 數(shù)據(jù)庫連接地址 jdbc:mysql://127.0.0.1:3306/blog
                JDBC Driver Class : 數(shù)據(jù)庫驅(qū)動,選擇對應(yīng)的mysql
                username:數(shù)據(jù)庫用戶名
                password:數(shù)據(jù)庫密碼

17、Jmeter壓測實(shí)戰(zhàn)之JDBC request壓測Mysql, select語句
簡介:使用jmeter壓測mysql,select,insert語句
1、Debug Sampler使用(結(jié)果樹中查看)
Thread Group -> add -> sampler -> debug sampler

    2、參數(shù)講解:(sql結(jié)尾不要加";")
        1、variable name of pool declared in JDBC connection configuration(和配置文件同名)
        2、Query Type 查詢類型
        3、parameter values 參數(shù)值
        4、parameter types  參數(shù)類型
        5、variable names  sql執(zhí)行結(jié)果變量名
        6、result variable names 所有結(jié)果當(dāng)做一個對象存儲
        7、query timeouts  查詢超時時間 
        8、 handle results  處理結(jié)果集

章節(jié)六 高級篇之分布式壓測基礎(chǔ)知識

18、分布式壓測介紹
簡介:講解什么是分布式壓測

     普通壓測:單臺機(jī)可以對目標(biāo)機(jī)器產(chǎn)生的壓力比較小,受限因素包括CPU,網(wǎng)絡(luò),IO等
     分布式壓測:利用多臺機(jī)器向目標(biāo)機(jī)器產(chǎn)生壓力,模擬幾萬用戶并發(fā)訪問

19、Jmeter分布式壓測原理
簡介:講解Jmeter分布式壓測原理
1、總控機(jī)器的節(jié)點(diǎn)master,其他產(chǎn)生壓力的機(jī)器叫“肉雞” server
2、master會把壓測腳本發(fā)送到 server上面

    3、執(zhí)行的時候,server上只需要把jmeter-server打開就可以了,不用啟動jmeter
    4、結(jié)束后,server會把壓測數(shù)據(jù)回傳給master,然后master匯總輸出報告
    5、配置詳情

章節(jié)七 高級篇之阿里云Linux服務(wù)器壓測接口實(shí)戰(zhàn)

20、SpringBoot 接口打包,并用jar包方式部署
簡介:用jar包方式在控制臺進(jìn)行啟動
打包 mvn package && java -jar target/gs-spring-boot-0.1.0.jar

21、阿里云服務(wù)器介紹和ECS服務(wù)器使用
簡介:
阿里云服務(wù)器介紹和購買ECS服務(wù)器等

    推薦購買2G內(nèi)存以上的進(jìn)行開發(fā)學(xué)習(xí)

22、阿里云Linux服務(wù)器下安裝啟動JDK8并配置環(huán)境變量
簡介:在阿里云環(huán)境下安裝JDK8并配置環(huán)境變量

23、部署java項(xiàng)目到阿里云服務(wù)器和守護(hù)進(jìn)程講解
簡介:
部署項(xiàng)目到阿里云,并啟動,公網(wǎng)可以訪問
1、注意點(diǎn)
關(guān)閉防火墻
阿里云控制臺安全策略,開放端口
linux上運(yùn)行 java -jar xxxx

    ssh root@120.79.160.143

    守護(hù)進(jìn)程:nohup java -jar xxxxx &
        什么是守護(hù)進(jìn)程:

24、阿里云Linux服務(wù)器安裝Jmeter 4.0
簡介:在阿里云環(huán)境下安裝Jmeter

    經(jīng)濟(jì)足夠:購買兩臺阿里云機(jī)器
    不足:本地虛擬機(jī),或者用你室友的電腦,在同個局域網(wǎng)就可以,安裝同個版本的jdk,jmeter,同個路徑,不要帶有空格或者中文

    下載地址
    wget http://apache.osuosl.org//jmeter/binaries/apache-jmeter-4.0.tgz

25、Jmeter非GUI界面 參數(shù)講解
講解:非GUI界面,壓測參數(shù)講解
-h 幫助
-n 非GUI模式
-t 指定要運(yùn)行的 JMeter 測試腳本文件
-l 記錄結(jié)果的文件 每次運(yùn)行之前,(要確保之前沒有運(yùn)行過,即xxx.jtl不存在,不然報錯)
-r Jmter.properties文件中指定的所有遠(yuǎn)程服務(wù)器
-e 在腳本運(yùn)行結(jié)束后生成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、項(xiàng)目實(shí)戰(zhàn)之阿里云Linux服務(wù)器下非GUI執(zhí)行jmeter壓測
簡介:
在阿里云服務(wù)器上以非GUI界面去執(zhí)行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

章節(jié)八 高級篇之阿里云壓測 html可視化壓測報告細(xì)講

27、阿里云Linux服務(wù)器 Jmeter壓測實(shí)戰(zhàn)之jtl文件生成和查看
簡介:
利用軟件從阿里云Centos服務(wù)器下載壓測報告,講解Jtl文件,并怎么查看文件
可以通過打開jmeter,新建線程組->summary report->瀏覽文件 進(jìn)行查看

28、Jmeter壓測接口的性能優(yōu)化

簡介:講解Jmeter壓測減少資源使用的一些建議,即壓測結(jié)果更準(zhǔn)確

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

2、少使用Listener, 如果使用-l參數(shù),它們都可以被刪除或禁用。
3、在加載測試期間不要使用“查看結(jié)果樹”或“查看結(jié)果”表監(jiān)聽器,只能在腳本階段使用它們來調(diào)試腳本。

4、包含控制器在這里沒有幫助,因?yàn)樗鼘⑽募械乃袦y試元素添加到測試計(jì)劃中。]
5、不要使用功能模式,使用CSV輸出而不是XML
6、只保存你需要的數(shù)據(jù),盡可能少地使用斷言

7、如果測試需要大量數(shù)據(jù),可以提前準(zhǔn)備好測試數(shù)據(jù)放到數(shù)據(jù)文件中,以CSV Read方式讀取。
8、用內(nèi)網(wǎng)壓測,減少其他帶寬影響壓測結(jié)果
9、如果壓測大流量,盡量用多幾個節(jié)點(diǎn)以非GUI模式向服務(wù)器施壓

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

29、項(xiàng)目實(shí)戰(zhàn)之Jmeter壓測生成多維度圖形化HTML測試報告
簡介:
把Jmtere壓測結(jié)果轉(zhuǎn)換為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的核心指標(biāo)
1、dashboard講解
1)Test and Report informations
Source file:jtl文件名
Start Time :壓測開始時間
End Time :壓測結(jié)束時間
Filter for display:過濾器
Lable:sampler采樣器名稱

        2)APDEX(Application performance Index)
            apdex:應(yīng)用程序性能指標(biāo),范圍在0~1之間,1表示達(dá)到所有用戶均滿意
            T(Toleration threshold):可接受閥值
            F(Frustration threshold):失敗閥值

        3)Requests Summary
            OK:成功率
            KO:失敗率
        4)Statistics 統(tǒng)計(jì)數(shù)據(jù)
            lable:sampler采樣器名稱

            samples:請求總數(shù),并發(fā)數(shù)*循環(huán)次數(shù)
            KO:失敗次數(shù)
            Error%:失敗率

            Average:平均響應(yīng)時間
            Min:最小響應(yīng)時間
            Max:最大響應(yīng)時間
            90th pct: 90%的用戶響應(yīng)時間不會超過這個值(關(guān)注這個就可以了)
            2ms,3ms,4,5,2,6,8,3,9

            95th pct: 95%的用戶響應(yīng)時間不會超過這個值
            99th pct: 99%的用戶響應(yīng)時間不會超過這個值 (存在極端值)
            throughtput:Request per Second吞吐量 qps

            received:每秒從服務(wù)器接收的數(shù)據(jù)量
            send:每秒發(fā)送的數(shù)據(jù)量

31、Jmeter圖形化HTML壓測報告Charts報表講解
簡介:
講解壓測報告 html里面Charts的核心指標(biāo)
1、charts講解
1)Over Time(隨著時間的變化)
Response Times Over Time:響應(yīng)時間變化趨勢
Response Time Percentiles Over Time (successful responses):最大,最小,平均,用戶響應(yīng)時間分布
Active Threads Over Time:并發(fā)用戶數(shù)趨勢
Bytes Throughput Over Time:每秒接收和請求字節(jié)數(shù)變化,藍(lán)色表示發(fā)送,×××表示接受
Latencies Over Time:平均響應(yīng)延時趨勢
Connect Time Over Time :連接耗時趨勢

        1)Throughput
            Hits Per Second (excluding embedded resources):每秒點(diǎn)擊次數(shù)
            Codes Per Second (excluding embedded resources):每秒狀態(tài)碼數(shù)量
            Transactions Per Second:即TPS,每秒事務(wù)數(shù)
            Response Time Vs Request:響應(yīng)時間和請求數(shù)對比
            Latency Vs Request:延遲時間和請求數(shù)對比

        1)Response Times
            Response Time Percentiles:響應(yīng)時間百分比
            Response Time Overview:響應(yīng)時間概述
            Time Vs Threads:活躍線程數(shù)和響應(yīng)時間
            Response Time Distribution:響應(yīng)時間分布圖

章節(jié)九 高級篇之多節(jié)點(diǎn)JMeter分布式壓測實(shí)戰(zhàn)

32、Jmeter4.0分布式壓測準(zhǔn)備工作

簡介:講解Linux服務(wù)器上jmeter進(jìn)行分布式壓測的相關(guān)準(zhǔn)備工作

    1、壓測注意事項(xiàng)
        the firewalls on the systems are turned off or correct ports are opened.
        系統(tǒng)上的防火墻被關(guān)閉或正確的端口被打開。

        all the clients are on the same subnet.
        所有的客戶端都在同一個子網(wǎng)上。

        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地址,則服務(wù)器位于同一子網(wǎng)中。 如果服務(wù)器不使用192.xx或10.xx IP地址,則不應(yīng)該有任何問題。

        Make sure JMeter can access the server.
        確保JMeter可以訪問服務(wù)器。

        Make sure you use the same version of JMeter and Java on all the systems. Mixing versions will not work correctly.
        確保在所有系統(tǒng)上使用相同版本的JMeter和Java。 混合版本將無法正常工作。

        You have setup SSL for RMI or disabled it.
        您已為RMI設(shè)置SSL或?qū)⑵浣谩?
        官網(wǎng)地址 http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

        壓測注意事項(xiàng):一定要用內(nèi)網(wǎng)IP,不用用公網(wǎng)IP,用ping去檢查

    2、專業(yè)名字
        master:司令
        slave:奴隸
        target:目標(biāo)

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

遠(yuǎn)程拷貝(內(nèi)網(wǎng)地址):
    scp -r /usr/local/software/jdk-8u141-linux-x64.tar.gz root@172.18.230.233:/usr/local/software
    scp -r /usr/local/software/jmeter/apache-jmeter-4.0.tgz root@172.18.230.233:/usr/local/software/jmeter

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

檢查啟動是否成功
    ps -ef|grep jmeter-server
    ps aux|grep jmeter-server

33、阿里云jmeter壓測常見問題處理
簡介:講解阿里云上安裝jmeter常見問題的處理,安裝遇到的問題等等
(備注:內(nèi)容較多,放在筆記最下方)

34、Jmeter4.0分布式壓測實(shí)戰(zhàn)
簡介:Jmeter分布式壓測實(shí)戰(zhàn),壓測接口

    1、關(guān)注CPU和內(nèi)存使用

    本地非GUI分布式壓測 -r 
    jmeter -n -t /Users/jack/Desktop/remote.jmx -r -l /Users/jack/Desktop/jtl/result.jtl -e -o /Users/jack/Desktop/result

        壓測結(jié)果
        ./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節(jié)點(diǎn)信息
        jemeter.properties 值是slave機(jī)器的ip+端口號,如果有多個,用逗號分隔
            remote_hosts=192.168.0.102:8899,192.168.0.101:8899
            server.rmi.ssl.disable=true (前面有說到)

    3、啟動slave機(jī)器,注意要同個網(wǎng)段,ip地址用內(nèi)網(wǎng)ip
        ./jmeter-server
        Using local port: 8899
        Created remote object: UnicastServerRef2 [liveRef: [endpoint:[192.168.0.102:8899](local),objID:[3a585a4d:162724586ab:-7fff, 3963132813614033916]]]

    相關(guān)資料:
        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

章節(jié)十 高級篇之Jmeter壓測課程總結(jié)和架構(gòu)淺析

35、課程總結(jié)和關(guān)于系統(tǒng)架構(gòu),推薦學(xué)習(xí)資料
簡介:講解測試人員的基礎(chǔ)技能,系統(tǒng)架構(gòu)知識,相關(guān)推薦書籍,課程總結(jié)等

配置元件=》前置處理器=》定時器=》采樣器=》后置處理器=》斷言=》監(jiān)聽器

安裝常見問題
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  命令獲取機(jī)器名稱,追加一個映射  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"}"
    改變初始堆內(nèi)存和最大堆內(nèi)存

4、僅修改 server_port 即可,下面兩者一樣
server.rmi.localport=8899 表示slave server啟動顯示的端口
server_port=8899 表示master機(jī)器要遠(yuǎn)程連接的端口 即 remote_hosts=xxxx:8899

5、<!-- jmeter 分布式性能測試(多網(wǎng)卡配置) -->
我們要在多網(wǎng)卡的服務(wù)器上開啟RMI服務(wù)的話必須指定IP,使他們能夠在同一個網(wǎng)段內(nèi)。

需要以下幾步(假定所有機(jī)器都在10.120.11.*網(wǎng)段,agent服務(wù)器為linux,controller服務(wù)器為windows):

1、 修改agent服務(wù)器,指定agent機(jī)器的IP
修改jmeter-server文件
# vi jmeter-server
修改RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx(需要連接的IP)

2、修改server服務(wù)器,指定server機(jī)器的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機(jī)器上安裝jdk,版本和jmeter一致,配置環(huán)境變量:Java_home等
在Agent機(jī)器上安裝jdk,配置環(huán)境變量:Java_home和JMeter_home
安裝目錄不要帶空格,最好都是簡短的英文路徑

7、master機(jī)器啟動后會拷貝jmx文件到slave機(jī)器,所以不需要在每臺slave機(jī)器上也上傳一份jmx,只需要在master機(jī)器上上傳一份jmx腳本即可。

如果使用csv進(jìn)行參數(shù)化,則需要把參數(shù)文件在每臺slave上拷一份且路徑需要設(shè)置成一樣的。

總樣本數(shù) = 線程數(shù) * 循環(huán)次數(shù) * 執(zhí)行機(jī)總數(shù)

8、連接失敗原因排查
以下步驟進(jìn)行排查:

  1. jmeter-server是否啟動;
  2. 是否聯(lián)網(wǎng)
  3. ping 服務(wù)器IP是否暢通.
  4. telnet 端口 192.168.3.10 1099
  5. 檢查服務(wù)器的防火墻是否關(guān)閉。
  6. 阿里云安全策略是否正常

9、"could not find ApacheJmeter_core.jar"
解決:在Agent機(jī)器安裝jdk,并設(shè)置環(huán)境變量

10、”Bad call to remote host"
解決:檢查被控制機(jī)器上的jmeter-server有沒有啟動,或者remote_hosts的配置是否正確。

更多學(xué)習(xí)資料可參考:https://www.xdclass.net/#/coursecatalogue?video_id=3
http://edu.51cto.com/course/13251.html

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI