JMeter 性能測試實例
1. 實驗目的
熟悉 Badboy + JMeter 的自動化測試流程
2. 實驗內容
2.1 使用 Badboy 錄制腳本
2.2 使用 JMeter 進行性能測試
2.3 分析測試結果
3. 實驗步驟
3.1 下載圖 1 所示的文件並解壓
圖 1. 本實驗需要的相關文件
3.2 雙擊運行 strawberry-perl-5.10.1.0.msi(自動安裝),安裝 perl 環境。
3.3 雙擊 BadboyIntaller-2.1.1 安裝 Badboy。
3.4 在 WebTours-v2 文件夾下找到 StartServer.bat 文件,如圖 2 所示,雙擊運行
圖 2. 運行 StartServer.bat
正常情況下,出現的界面如圖 3 所示。如果有不一樣的,考慮是否發生了端口占用等錯誤
圖 3. StartServer.bat 正常啟動頁面
3.5 打開 Badboy,在地址框輸入測試網站,點擊上方的小紅原點,再點擊右邊的箭頭開始進入錄制。具體操作如圖 4、圖 5 所示
圖 4. 打開 Badboy
圖 5. 依次添加實驗相關參數
3.6 進入后點擊頁面中出現的 sign up now,按要求填寫注冊信息,這里以 xioacd99,123 為例,如圖 6 所示
圖 6. 添加注冊信息
3.7 點擊 continue、再點擊 continue,然后點擊 sign off,完成后點擊上方的小紅原點結束錄制,結果如圖 7 所示
圖 7. 腳本錄制完成
3.8 點擊上方選項卡 File,在下拉框中選擇 Export to JMeter,將錄制的腳本導出為.jmx 文件,具體操作步驟如圖 8 所示
圖 8. 導出為 JMeter 腳本
導出的文件的內容如圖 9 所示所示
圖 9. 導出的 JMeter 腳本的內容
3.9 在 apache-jmeter-5.4.1\bin 下找到 ApacheJMeter.jar 文件,雙擊,進入 JMeter 程序界面
3.10 點擊上方的選項卡“文件”,在下拉框中選擇打開,選中我們在 Badboy 中剛導出的 Script.jmx 腳本,具體操作步驟如圖 10、圖 11 所示
圖 10. 導入 JMeter 腳本
圖 11. 導入 JMeter 腳本(續)
3.11 將鼠標移動到 Thread Group,右鍵,添加一個察看結果樹和聚合報告(添加察看結果樹是為了查看每一個請求的響應結果,添加聚合報告是為了分析多用戶並發測試的性能),具體操作步驟如圖 12、圖 13 所示
圖 12. 添加察看結果樹和聚合報告
圖 13. 添加完成后的文件樹示意
3.12 點擊上方的啟動按鈕,驗證我們錄制的腳本是否存在問題,如果沒有問題的話,結果如圖 14 所示
圖 14. 腳本正常運行,沒有問題
3.13 在 login.pl 中,在 username 的值那里右鍵,點擊 Replace values with variables,如圖 15、圖 16 所示
圖 15. 替換用戶名的值為變量
圖 16. 替換完成后的結果
3.14 使用 excel 創建 user 數據,然后導出為 user.txt 文件,內容如圖 17 所示
隱私關系,這里就放圖了
圖 17. 用戶數據
3.15 在 Thread Group 那里右鍵添加一個 CSV 數據文件設置,具體操作步驟和參數設置如圖 18、圖 19 所示
圖 18. 添加 CSV 數據文件設置
圖 19. CSV 數據文件參數設置
3.16 然后點擊 Thread Group,將線程數調成 100,開始運行
如圖 20 所示,由於測試並不是在本機上運行的,所以 CPU 和內存的使用率並沒有明顯提升,但 WIFI 的傳輸量有明顯提升
圖 20. 測試運行時資源消耗情況
可以看到 100 個虛擬用戶很快就跑完了,具體的運行結果和性能分析如圖 21、圖 22 所示
圖 21. 測試完成后的察看結果樹
圖 22. 測試完成后的聚合報告
4. 結果分析
從圖 22 所示的聚合報告可以看出,用戶響應時間的中位數還不錯,但是平均值和 90%百分位、95%百分位、99%百分位的響應時間都有點長,以第一個響應為例,分別是 8213ms、23904ms、25067ms。
而且出現了響應最小值和最大值偏差較大的情況,不知道是什么原因產生的。我用 GTmetrix 測了一下,結果如圖 23 所示,不能分析,估計就是直接簡單地把 html 文件上傳到雲了
圖 23. GTmatrix 測試 webtours