性能測試中如何選取被測對象的業務邏輯
很多搞性能測試的人員,只會跟著網上、前輩教導的方法進行測試:挑選業務邏輯中并發量、訪問量最高的業務邏輯、結合讀寫等業務進行測試,然后取整條業務邏輯(模擬用戶全流程動作)的邏輯進行測試;結果就是:準備大堆的測試數據,復雜的準備工作;其實那些數據只是用來滿足業務流中的條件,而不是真的能產生壓力的部分;
筆者采用的方法:
1、B/S結構中,用戶操作功能流程其實是前端js依次調用不同的CGI接口,后臺實現上面其實并沒有強依賴關系(只要滿足對應條件進行發包都能執行)。
所以,首先挑選業務邏輯中用戶訪問最高的流程,然后從流程中挑選調用次數、壓力最大的CGI接口;這樣聚焦于對應的測試對象,可以避免很多無用的測試數據;
2、根據業務邏輯,分析被測對象券流程中,所調用的接口,對于安全旁路、分支判斷等,根據情況進行取舍(有些業務只測試某個CGI,有些是測試全平臺,測試中根據情況進行聚焦)。
3、根據分析情況直接修改被測對象代碼:通常接口調用形式都會使用iret方式來判斷,例如:
/*原有代碼----begin*/ iret=xxx.call(args1,args2,args3); if(iret != 0){ print("xxxxx"); break; } /*原有代碼----end*/ iret=0 ---------- 添加iret=0,讓程序繼續走。 |
這樣不會影響外部接口調用次數,不會影響網絡發包次數,但可能會影響單個網絡包大小進而影響網絡流量;同時稍微增加cpu負擔(賦值造成內存讀寫)。但其實我們要測的是業務主流程,而不是外部接口(外部接口如果有需要可單獨進行壓測),所以筆者認為也是可以采取此種方案,而不需要準備一大堆無用的數據,只需有針對性的進行業務邏輯選取即可;
posted on 2014-09-26 10:07 順其自然EVO 閱讀(217) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄