1.規範的性能測試流程數據庫
得到測試需求→測試計劃→測試環境搭建→測試用例設計→測試數據準備→測試腳本編寫→測試腳本執行→瓶頸分析定位→測試結果反饋→測試報告服務器
2.流程節點解釋網絡
①獲取測試需求:架構
提出人:甲方/業務方+開發人員併發
依據系統後期可能達到的訪問量(甲方/業務方),以及系統架構、數據庫,服務器等(開發人員)。肯定「核心業務場景」以及「測試指標」。性能
②測試計劃:測試
需「項目經理,甲方/業務方,測試人員」溝通確認。spa
③測試環境搭建→測試用例設計→測試數據準備→測試腳本編寫→測試腳本執行:操作系統
這部分和功能測試流程大致一致。線程
側重點在於測試環境的搭建(壓力機構建),測試數據準備,腳本編寫。
④瓶頸分析:
這是很重要的一個環節。
性能測試不是一蹴而就的,要達到壓測需求,需反覆調優和壓測。
開始壓測前,須要設置壓力
ulimit -n //查看Linux操做系統鏈接數
如下是我我的項目總結的幾點:
1.壓力機性能需知足壓測需求
2.本地壓測(腳本放在系統服務器上執行),排除網絡因素,測試系統的健壯性。
3.模擬真實的業務場景(eg:設備是鏈接手機熱點上報數據,壓力機的網絡鏈接爲手機熱點)
4.CPU上不去,腳本運行大量失敗。(需經理和開發人員進行代碼審覈)
5.低併發,CPU太高。(需代碼調優)
測試人員能夠在服務器上,用top命令找出CPU佔用率最大的線程。
top //找到CPU佔用率最大進程的PID,或者是待測腳本的PID top -p [PID] //只監控這個PID H //查看當前進程的線程信息,找到CPU消耗最高的線程ID jstack 11567 [PID] //作dump,輸出整個進程信息
這樣查出來的線程編號是:
線程ID轉換爲十六進制 = dump文件中的nid = 內存消耗最大的代碼塊,能夠截取此部分給開發看