性能測試總結(performance testing)(三)-- jmeter 分佈式壓測

1、分佈式壓測:多臺機器向一個目標服務器進行壓測。(單機器性能有限)
2、jmeter分佈式壓測原理:主機,肉雞必須在同一個網段。
1.Jmeter分佈式測試時,選擇其中一臺作爲調度機(master),其它機器做爲執行機(slave)。
2. 執行時,master會把腳本發送到每臺slave上,slave拿到腳本後就開始執行,slave執行時不需要啓動GUI,我理解它應該是通過命令行模式執行的。
3. 執行完成後,slave會把結果回傳給mastermaster會收集所有slave的信息並彙總。
這裏寫圖片描述

2、要求
主機和從機處於一個局域網內,master主機中jmeter.properties中修改文件,這裏的主機也當作一個從機

remote_hosts=127.0.0.1:1888,9.9.15.192:1888
server_port=1888
server.rmi.localport = 1888

slave從機中修改:

remote_hosts=127.0.0.1
server_port=1888
server.rmi.localport=1888

主機從機同時啓動jmeter-server.bat,主機啓動jmeter.bat,啓動jmeter服務,點擊運行
這裏寫圖片描述

查看結果樹,從機的信息會彙總到主機中查看,這裏是沒有詳細信息:
這裏寫圖片描述


補充:阿里雲開發接口
1、阿里雲部署jdk環境
1、阿里雲Centos服務器安裝jdk環境,參考騰訊實驗室:https://cloud.tencent.com/developer/labs/lab/10035

2、上傳spring-boot文件到usr/local/app目錄下,運行該文件:java -jar gs-spring-boot-0.1.0.jar
3、訪問接口地址ip:8080/users,(注意阿里雲需要到安全組打開TCP/8080端口)
4、上傳apache-jmeter-4.0.tgz至服務器目錄/usr/local/jmeter,解壓tar zxvf apache-jmeter-4.0.tgz

2、jmeterGUI界面使用
1、操作指令:
這裏寫圖片描述

2、使用本地jmeter編寫測試腳本(服務器三接口要開啓,ip地址是外網或者內網ip),保存文件上傳至/usr/local/jmeter/temp目錄。
這裏寫圖片描述

3、切換到服務器中jmeterbin目錄下,執行測試腳本,./jmeter -n -t /usr/local/jmeter/temp/user_info_api.jmx -l /usr/local/jmeter/temp/result.jtl

常用測試腳本命令
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

4、xftp下載結果報告result.jtl,在jmeter中新建一個summary report,瀏覽打開報告
這裏寫圖片描述

3、jmeter壓測優化優化(-l 禁用已有的測試報告)

  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

jmtere壓測結果轉換爲Html報表(-l,生成對應報告地址,同時也是防止報錯(禁用監聽器))

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

1、做8萬次,查看報告
這裏寫圖片描述
得到一個html報告,下載到本地後打開,首先表格裏面可以看到
這裏寫圖片描述
其中詳細數據意義:

            lable:sampler採樣器名稱          
            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:每秒發送的數據量

報表裏面可以看到:

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:連接耗時趨勢
這裏寫圖片描述

2、Throughput(吞吐量)
這裏寫圖片描述

  • Hits Per Second (excluding embedded resources):每秒點擊次數
    *Codes Per Second (excluding embedded resources):每秒狀態碼數量
  • Transactions Per Second:即TPS,每秒事務數
  • Response Time Vs Request:響應時間和請求數對比
  • Latency Vs Request:延遲時間和請求數對比

3、Response Times(響應時間)
這裏寫圖片描述

*Response Time Percentiles:響應時間百分比
* Response Time Overview:響應時間概述
* Time Vs Threads:活躍線程數和響應時間
* Response Time Distribution:響應時間分佈圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章