2011-04-28 28 views
0

我看到很多人都在討論如何根據真實的生產現場模擬真實的用戶負載,以便更好地分析或處理他們所具有的性能狀態/問題。這非常酷,因爲我們可以輕鬆找到性能問題,並在新功能或更新完成時在「一天的黎明」中解決它們。我們是否需要以及如何模擬真實用戶的性能負載模式?

這裏是往返基本工作流程:

  1. 獲取用戶的真實負載訪問日誌,發現從生產相應的詳細請求
  2. 存儲這些實際負載的信息,並將它們映射到一些快存儲(我的第一個想法是mongodb或類似的東西)
  3. 啓動多線程將記錄的負載推入本地性能env。
  4. 讓我們來看看,然後會發生什麼.....

所以我的第一個問題是你在想什麼了「模擬真實用戶的模式」,他們是真正有價值的,或只是浪費時間

我知道Jmeter有一個AccessLogSampler模擬HTTP請求,但我的soapRequest到web服務。看起來我必須在java中做很多工具,但是還有其他的巧妙工具?

您的想法真的很感激!

Vance

回答

0

如果您不模擬實際負載,那麼您不會發現真正的性能問題。

真實故事:我曾經在一個以數據庫爲中心的應用程序中開發了一項新功能。我根據我認爲該功能的使用情況編寫了性能測試,並據此進行了優化。然後它被釋放,並以我無法想象的方式使用 - 而我的大多數優化都毫無價值。如果簡單地實現未優化的功能,並等待真實數據,我會更好。

0

Web服務測試有兩種主要類型:基於碰撞和基於場景的測試。基於點擊率非常簡單,專注於分配/請求率。 基於場景的專注於順序和邏輯/事務速率/併發虛擬用戶。

基於命中對負載測試非常簡單,這種方式對於真正的高負載系統是首選。情景在Web應用程序中不可避免地依賴於序列。

一切都取決於您的服務(或服務的一部分)。

我的替代AccessLogSampler是HTTP原始請求

+0

謝謝。因此,我有兩個選擇: 1.對來自tomcat的每個api使用相同的用戶相應的soap請求,並將它們加載到本地env中。 2.爲每個api使用一些常見的用戶示例(例如,平均用戶搜索一次10個項目?),並將這些常用用戶示例用於性能負載測試腳本。 我很好奇這兩個選項如何影響性能結果,或者,這是正確的做法。 – Vance 2011-05-15 15:52:55

+0

閱讀關於「開放工作量」和「關閉工作量」的方法...選擇你的方式。 – 2011-05-17 10:42:08

相關問題