記一次性能測試實踐
1.測試對象
這次測了一些http接口和幾個網頁。
2.測試策略
2.1 基準測試:單個調用各接口循環100次計算平均響應時間
2.2 性能測試:單個接口調用以50并發用戶數為單位,逐步加壓直到預估的實際負載300并發用戶,觀察測試指標變化
2.3 壓力測試:單個接口調用以50并發用戶數為單位,逐步加壓直到錯誤率過高或服務器資源使用率過高,觀察測試指標變化
2.4 負載測試:預估實際負載為300并發用戶數,在此基礎上持續測試5分鐘左右,觀察測試指標是否達標
2.5 穩定性測試:預估實際負載為300并發用戶數,在此基礎上持續測試60分鐘左右,觀察測試指標是否達標,重點觀察錯誤率
2.6 疲勞性測試:預估實際負載為300并發用戶數,在此基礎上持續測試240分鐘左右,觀察測試指標是否達標,重點觀察錯誤率
2.7 組合測試:對2.2-2.5的測試采用不同接口同時調用(即系統不同模塊同時測試)
2.8 其他:以不同ip地址加壓,測試服務器負載均衡效果。
以上,本次只做了2.2、2.3、2.4、2.8
3.測試指標
測響應時間、錯誤率;同時專人監控服務器硬件資源使用狀況、監控tomcat應用服務器等。
計算和監控吞吐量(測試工具自動計算測試執行過程中的吞吐量(每秒鐘處理請求數),同時服務器監控軟件業監控到了測試執行時服務器的吞吐量)
本次實際測試得到吞吐量距離預估有較大差距;錯誤率超出預期;且測試數據準備有一定問題。
4.測試工具
本次選用Jmeter,因為便宜且靈活。
需設置語言為英文,默認中文翻譯不完整。
5.測試腳本編寫、調試
5.1 提前對接口、網頁進行錄制。每個待測接口、網頁需要加斷言。 斷言多采用JQuery斷言和Regular Expression斷言
5.2 重點在測試數據的準備。
5.3 采用了本地web應用提供數據,jmeter獲取這些數據,再發送給服務器的方法(這次發現這個本地應用生成的數據在較高并發時有重復,導致了不必要的錯誤率)
5.4 測試結果監聽器: assertion results, summary report, aggregate report, result tree, result table
5.5 測試接口調用時,可用網頁、數據庫等其他方法確認接口調用成功。觀察接口調用是否生效,是否和網頁同樣效果。
6.測試執行
6.1 一臺電腦加壓300-600并發用戶。如果需要更多則需要增加電腦。
6.2 以不同ip地址加壓,測試服務器負載均衡效果。
6.3 機房測試,排除internet網絡延遲問題
6.4 數據備份和還原,排除性能測試對數據的改變
6.5 生產環境測試(系統未上線),排除測試環境的影響
7.測試報告
7.1 截取了jmeter監聽器的結果,可以截取服務器監控的截圖
8.調優
本次測試結果不理想,服務器因硬件強大,幾乎無負載,但應用本身有java出錯。并發現接口調用結果未正確影響網頁的bug。
后續需要等開發修復、優化之后再次測試
posted on 2014-11-24 09:23 順其自然EVO 閱讀(954) 評論(0) 編輯 收藏 所屬分類: 性能測試