一個簡單的LoadRunner測試網頁游戲壓力流程性整理,在此做個備忘。
需求:測試頁游戲WebGame的服務器承載能力、並發量
工具:Cacti、LoadRunner、Visual VM
Cacti:監測服務器的網絡及負載
LoadRunner:壓力測試腳本的編寫及壓力場景設計
VisualVM: JVM運行狀態監控
Step1:為什么選擇這樣的工具
基於http+socket的連接請求,客戶端as、服務器java
http+socke協議:選擇LoadRunner11中的雙協議[Web(HTTP/HTML))+Windows Sockets]
服務器java:VisualVM可直接監控JVM運行狀態及分析JVM消耗的軟件
Cacti:服務器環境搭建於linux的Centos
Step2:錄制腳本
在LoadRunner11中使用雙協議[Web(HTTP/HTML))+Windows Sockets]進行腳本錄制,先錄制一個角色的登陸
建議:
a:游戲的賬號名與角色名保持一致,簡化參數化的復雜度
b:第一次錄制的時候,盡量簡化在游戲中的操作(過多的操作只會生成過多的LR腳本,增加分析腳本的負擔)
c:確定錄制到腳本信息的有用性,不要存在有干擾的信息。若本機LR無法正常使用,可選擇安裝一台VM或者找一台純凈的機器進行
雙協議選擇可參考:http://www.cnblogs.com/s1099312273/archive/2013/05/31/3110878.html
Step3:調整腳本(參數化、精簡)
針對上面錄制的腳本,自己先多看幾編,分析下客戶端真實登陸流程。再與程序溝通,確定正確的登陸與驗證流程。
需要解決的問題:
a:登陸時如果通過登陸服、游戲服驗證
b:簽名驗證如何通過驗證
c:分析並找出Action.c及data.ws中有可參數化的數據,如角色名,時間戳
d:刪除不必要的腳本信息
本階段需要與程序人員進行溝通,了解服務器驗證流程。
Step4:回放腳本、場景創建
回放Step3中調整后的腳本,確保在Vuser Generator中可正常回放。
使用Controller創建並發,並創建對應的場景。如:每秒並發100人登陸持續30秒,2000人持續在線20小時等。
建議:
a:同一台機器不要登陸過多的游戲賬號,最好分布到不同的機器上
b:每次在跟場景時,記錄每次登陸時的時間與在游戲中的真實角色的操作感
c:及時查看每個場景中並發用戶的運行情況
d:每次測試時,最好把服務器重啟,保證不會存在內存數據,影響數據的准確性
Step5:最大承載、並發量
調整場景中數據,測試出服務器的最大並發量及最大承載量。
測試時適當的調整不同場景下的並發量,協調服務器的總負載。
得到當前服務器的最大承載、並發量
Step6:總結
分析出當前瓶頸,產出測試報告,制定下次測試的計划與目標。
That's all.
感謝程序部同學、測試部的兄弟們及網友:天空對我的幫助和支持。