時間:2019
-08-04 測試人員:xxx
目錄
XXX壓力測試報告… 1
一 測試内容… 2
二 測試方法… 2
三 測試目标… 2
四 測試環境… 2
五 系統部署… 3
5.1 實體部署… 3
5.2 網絡通路… 3
六 性能測試結果與分析… 4
6.1 jmeter叢集壓測(5程序-每個進行10線程)… 4
6.2 jmeter叢集壓測(10程序-每個進行5線程)… 7
6.3 jmeter叢集壓測(10程序-每個進行10線程)… 11
七 結果彙總分析… 13
一 測試内容
本次測試是針對xxx系統進行的壓力測試,在交易接口中,隻對交易接口進行壓力測試,其中涵蓋資料驗簽與簽名功能。
二 測試方法
本次采用apache的開源測試工具jmeter,采用本地動态拼裝請求資料并通過http協定post方式發送支付請求。并采用650張測試銀行卡測試,其中大概有30張存在“無足夠的存款”和“受限制的卡”情況。
三 測試目标
-
擷取在單機部署情況下最大TPS值
-
是否可以達到原來預期值TPS:50
四 測試環境
環境 機器型号 作業系統 硬體cpu 硬體mem
用戶端 server2008虛拟機 windows 32核 32G
服務端 HP DL580 linux 64核 126G
由于用戶端與服務端的機器性能優秀,暫不會對壓測形成瓶頸,該方面影響可以忽略
五 系統部署
5.1 實體部署

5.2 網絡通路
六 性能測試結果與分析
6.1 jmeter叢集壓測(5程序-每個進行10線程)
啟5個程序,每個程序啟動10個線程,并發為50,項目日志開啟info狀态
6.1.1 聚合報告
Label #Samples Average Median 90%Line 95%Line 99%Line Min Max Error% TPS KB/sec
1 22805 547 366 512 636 5218 150 30003 0.26 65.3 96.5
2 33605 519 362 503 618 5200 150 30003 0.21 66.5 98.5
3 43505 536 365 508 621 5210 150 34899 0.26 65.6 97.1
4 48205 527 365 507 618 5206 150 34899 0.24 65.1 96.3
5 49005 535 364 507 616 5211 150 34899 0.27 63.9 94.5
6 49901 532 364 505 614 5207 150 34899 0.27 61.0 90.2
7 50000 531 363 504 613 5207 150 34899 0.27% 60.9 90.1
6.1.2 每秒的響應分布圖
6.1.3 響應時間分布圖
6.1.4 請求失敗與成功分布圖
6.1.5 結果分析
總筆數 Jmeter錯誤筆數 請求前置響應超長筆數 服務本地處理超長筆數和404
50000 135 120 15
1.在使用jmeter壓測請求被F5轉發到apache server代理上,由于交易處理過程中處理時間過長造成長時間無響應,代理傳回502 Proxy Error錯誤。
2.其中請求前置響應超長筆數在向前置擷取結果傳回的耗時超過3分鐘,其餘耗時均低于5s,前置接收到的晚,初步判定網絡堵塞
3.本地業務處理的錯誤原因為簽名、驗簽、擷取資料及請求時404等
6.2 jmeter叢集壓測(10程序-每個進行5線程)
啟10個程序,每個程序啟動5個線程,并發為50,項目日志開啟info狀态
6.2.1 聚合報告
Label #Samples Average Median 90%Line 95%Line 99%Line Min Max Error% TPS KB/sec
1 11010 555 348 495 605 5196 148 30003 0.26 68.7 101.5
2 28910 507 333 473 568 5178 55 30015 0.25 76.3 121.9
3 36310 501 332 475 575 5176 55 30031 0.24 77.1 114.0
4 46310 485 331 466 557 5172 55 30031 0.21 78.6 116.3
5 50000 478 326 460 551 5166 55 30031 0.21 72.1 106.7
6.2.2 每秒的響應分布圖
6.2.3 響應時間分布圖
6.2.4 請求失敗與成功分布圖
6.2.5 應用系統狀态
6.2.6 結果分析
總筆數 Jmeter錯誤筆數 請求前置響應超長筆數 服務本地處理超長筆數和404
50000 105 92 13
1 在使用jmeter壓測請求被F5轉發到apache server代理上,由于交易處理過程中處理時間過長造成長時間無響應,代理傳回502 Proxy Error錯誤。
2 其中請求前置響應超長筆數在向前置擷取結果傳回的耗時超過3分鐘,其餘耗時均低于5s,前置接收到的晚,初步判定網絡堵塞
3 本地業務處理的錯誤原因為簽名、驗簽、擷取資料及請求時404等
6.3 jmeter叢集壓測(10程序-每個進行10線程)
啟10個程序,每個程序啟動10個線程,并發為100,項目日志開啟info狀态
6.3.1 聚合報告
Label #Samples Average Median 90%Line 95%Line 99%Line Min Max Error% TPS KB/sec
1 50000 1219 896 1665 2692 5808 209 38306 0.30 68.0 100.5
6.3.2 每秒的響應分布圖
6.3.3 響應時間分布圖
6.3.4 請求失敗與成功分布圖
6.3.5 結果分析
總筆數 Jmeter錯誤筆數 請求前置響應超長筆數 服務本地處理超長筆數和404
50000 150 119 31
1 在使用jmeter壓測請求被F5轉發到apache server代理上,由于交易處理過程中處理時間過長造成長時間無響應,代理傳回502 Proxy Error錯誤。
2 其中請求前置響應超長筆數在向前置擷取結果傳回的耗時超過3分鐘,其餘耗時均低于5s,前置接收到的晚,初步判定網絡堵塞
3 本地業務處理的錯誤原因為簽名、驗簽、擷取資料及請求時404等
6.4 jmeter叢集壓測(30程序-每個進行5線程)
啟30個程序,每個程序啟動5個線程,并發為150,項目日志開啟info狀态
6.4.1 聚合報告
Label #Samples Average Median 90%Line 95%Line 99%Line Min Max Error% TPS KB/sec
1 150000 1473 1924 1733 1959 6156 222 35107 0.21 89.5 132.2
6.4.2 每秒的響應分布圖
6.4.3 響應時間分布圖
6.4.4 應用系統狀态
6.4.5 用戶端系統狀态
6.4.6 結果分析
暫未統計
6.5 jmeter叢集壓測(20程序-每個進行5線程)
啟20個程序,每個程序啟動5個線程,并發為100,項目日志開啟info狀态,逾時時間2000ms
6.5.1 聚合報告
Label #Samples Average Median 90%Line 95%Line 99%Line Min Max Error% TPS KB/sec
1 200000 867 722 1073 1296 5674 1 10053 0.84 92.8 138.6
6.5.2 每秒的響應分布圖
6.5.3 響應時間分布圖
6.5.4 請求失敗與成功分布圖
6.5.5 結果分析
總筆數 Jmeter錯誤筆數 TPS
100000 730 98.0
1 由于本地用戶端限定2000毫秒不響應就認為失敗,是以失敗率偏高
七 結果彙總分析
Label #Samples Average Median 90%Line 95%Line 程序 線程 并發 Error% TPS KB/sec
50并發 50000 531 363 504 613 5 10 50 0.27% 60.9 90.1
50并發 50000 478 326 460 551 10 5 50 0.21 72.1 106.7
100并發 50000 1219 896 1665 2692 10 10 100 0.30 68.0 100.5
150并發 150000 1473 1924 1733 1959 30 5 150 0.21 89.5 132.2
100并發 200000 867 722 1073 1296 20 5 100 0.84 92.8 138.6
使用jmeter壓測時,如果使用1個程序開多個線程進行壓測,一個程序很難快速處理多個線程,造成本地處理浪費大量時間用于排程,最終壓力上不去。
當采用叢集壓測時,啟用多個程序排程少量線程,解決本地耗時,TPS明顯提升。
在啟動10個程序50線程時效果最佳,符合交易每秒鐘處理的交易筆數,當提升并發到100時,交易響應時間明顯提升。
壓測過程中出現的錯誤主要有:
1、 請求資源404錯誤
2、 請求前置網絡堵塞,每次均為3分鐘
3、 本地簽名、驗簽、擷取資料耗時過長
最終壓測結果TPS:90-100時可保證響應時間不超過2s