??在進行性能測試(壓測)時,是否過濾掉對JavaScript、CSS等靜態資源的請求,取決于你測試的目標和目的。
是測試服務端的性能還是前端的性能。這兩種目的所涉及到的測試場景和工具等方法是不一樣的。
- 一般的web產品,像css, jpeg等這種靜態請求都是從應用層剝離出來的,一般可以放到最外層,減少對應用層的壓力。所以測試業務功能時,這些資源通常不會對你的后端服務造成太大壓力(除非它們是由后端動態生成的),并且它們會增加請求的數量和復雜性,但不會提供太多關于后端性能的直接信息。用JMeter或LoadRunner等工具進行后端性能測試。
- 從前端來看,要評估這些靜態資源的訪問響應時間,加載時間,尤其是js執行效率,前端加載速度可以通過一些比較成熟的工具進行評測,比如page speed,dynatrace,yslow,Lighthouse等,會生成評測報告告訴你一些優化意見,比如圖片的壓縮與合并等等。
- 不過濾的情況:
完整用戶體驗模擬:如果你的目標是模擬真實的用戶訪問體驗,包括頁面加載速度、資源下載時間等,那么不應該過濾這些請求。因為在實際應用中,用戶的瀏覽器會請求這些資源,它們對頁面加載時間有直接影響。
評估服務器帶寬壓力:靜態資源往往占用了大量網絡帶寬,通過包含這些請求,可以更好地評估服務器的帶寬使用情況和CDN性能。
- 過濾的情況:
關注核心業務邏輯:如果你主要關心的是服務器處理業務邏輯的能力,如數據庫查詢、API響應速度等,那么過濾掉這些靜態資源請求可以使測試更專注于這些核心服務的表現。
資源已通過CDN分發:如果你的靜態資源已經部署在CDN上,且CDN的性能穩定,單獨測試這些資源對評估后端服務性能幫助不大,這時可能選擇忽略它們。
簡化測試配置:有時過濾掉這些請求可以簡化測試配置,減少測試的復雜度,特別是在資源眾多且與本次測試目標關聯不大的情況下。
總之,是否過濾應基于你的測試目的和實際情況來決定。在某些情況下,你甚至可以設計不同的測試場景,一部分測試包含所有請求以模擬全面的用戶體驗,另一部分則專注于核心業務邏輯。這樣可以從多個角度獲得有價值的性能數據。