最近組內同事針對性能測試LR的腳本部分做了介紹,是個不錯的分享。會后反思自己也有很長一段時間沒做性能測試了,根據以往的經驗,有必要做些整理和補充,本文主要介紹一些Loadrunner性能測試的學習方法、思路、流程以及測試過程中需要注意的點。腳本相關的介紹在這篇文章就不過多描述了,有興趣的朋友網上進行查找,資料也相對比較豐富。
一、Loadrunner初步了解
關於Loadrunner的學習,初期重點關注Vuser Generator的使用,需掌握以下內容,再去實戰操作基本就不難了。
- 錄制腳本的基本步驟;
- 理解基礎函數的含義:lr_start_transaction(),lr_end_transaction(),web_reg_find(),web_url(),web_submit_form();
- 會看輸出窗口中的Replay log;
- Vuser-Run Time Setting中Run logic\log\Think Time的設置;
- 腳本的迭代;
- 手動寫腳本,掌握基本函數;
- Loadrunner參數的設置;
針對我們目前的項目基本上是做HTTP/HTTPS協議的壓測,大家手上有項目時,可以通過錄制了解一下整個HTTP請求及響應的情況,學習一下Loadrunner內置的函數。
另外參數設置、迭代、關聯函數等等希望大家查一下資料弄懂,實踐一下不同方式有什么不同。
二、性能指標
在做性能測試之前,簡單說下性能指標:
響應時間
針對頁面操作,響應時間小於2秒,用戶會感覺系統較快較滿意;響應時間在2~5秒,用戶可以接受,但對速度有些不滿;響應時間超過5秒,用戶將無法接受。作為優秀的項目當然越快越好,我們在做壓測的時候,一般希望響應時間在1秒以內,
針對系統內部調用的接口響應時間更要快,具體情況視具體接口而定。
吞吐量
通常需要結合業務部門的市場目標而定。
服務器資源占用
CPU占用率、內存使用率不能過高;Cache命中率不能過低。
三、性能測試流程
制定性能測試目標–>選擇性能測試工具–>設計性能測試–>執行性能測試腳本–>監控分析系統–>性能調優
1、目標:
如,系統需滿足500個用戶在線、20個用戶並發操作發帖的情況下,發帖響應時間不超過2秒,系統資源使用率不超過30%。
2、選擇性能測試工具:
可選擇LR、Locust、jmeter等主流測試工具,這篇文章主要介紹LR相關。
3、性能測試准備:
測試腳本開發、負載的生成規則及監控方式、測試環境的搭建。
性能測試准備過程中需要注意的點:
- 確認壓測前SQL Review已通過;
- 確認壓測環境已成功搭建,壓測服務器上單獨部署一套程序代碼;
- 明確域名及需要綁定的host;
- 搞清楚需要壓測的業務及場景(也可以理解為測試用例);
- 清楚輸入參數及服務端返回信息;
- 明確需要參數化的輸入值,明確“請求成功的服務端返回碼”;
4、負載過程、負載后對數據進行分析,這個分析需要眾多專家共同協作,找出數據背后的問題,確定性能瓶頸。
5、確定瓶頸后,進行軟硬件調優,調優完成重復之前的步驟。
執行性能測試過程中需要注意:
需要與數據庫交互的壓測,事務pass不代表實際操作一定成功,首先確保腳本中的檢查點要寫正確,其次務必查詢一下數據庫是否有相應操作。
場景測試的前10分鍾,隨時關注一下TPS、響應時間,若TPS過低或響應時間太慢,當機立斷停止場景運行,找一下運行慢的原因,若不是腳本設置原因,找一下開發同學反饋問題,待開發調優后再壓測,避免浪費時間。
若無以上問題,場景測試的前1小時,關注一下曲線波動情況,若有明顯下降或上下波動很明顯,請聯系開發同學查原因。
若1小時已通過,可以連續跑穩定性測試,12小時或更長,當然中間有時間也要關注一下曲線圖是否有異常。
了解更多請關注微信公眾號:測試架構師