2015-04-23 83 views
0

我在我的應用程序中有User Registration,Flight Search,Book Tickets模塊。我創建了我的JMeter測試&我在測試中爲每個模塊都有不同的線程組。我驗證了&它運作良好。性能測試 - 方法

  • 線程組1:用戶XX號 - 訪問網站 - 點擊迴歸,輸入詳細&寄存器。 (粗體 - >環 - 再次發生,並再次)
  • 線程組2:用戶數XX - 訪問該網站 - 登陸 - 搜索航班 - (粗體 - >環 - 再次發生,並再次)
  • 線程組3:用戶XX號 - 訪問該網站 - 登陸,書票 - (粗體 - >環 - 再次發生,並再次)

問題:

我的經理說,我們需要r取消所有模塊(所有線程組)和適當的用戶,因爲這是它將在生產中的方式。即使我可以一起運行它們 - 如果遇到問題 - 我不知道應用程序的哪個功能導致了問題。

我的目標是分別運行每個模塊&找到它的性能。我認爲明智的做,模塊將獲得響應時間正確的方法,資源利用等

澄清:

  • 我沒有在性能測試中很多經驗。什麼是正確的方法/您如何爲您的應用程序進行測試?
  • 如果我必須找到服務器的最佳負載(它的性能更好) - 我的方法是什麼?

故意標註loadrunner因爲這個問題是不特定於JMeter &它是通用的。

回答

0

該方法真的取決於您的測試練習的目標是什麼。如果您正在尋找優化或分析某個特定模塊,那麼對其進行單獨測試是有意義的。但是,如果您嘗試檢查服務器是否擴展,或者您的容量足夠多,則應該一次性測試所有模塊,達到或超過您的預期負載水平。

一個反例到您的隔離方法:

比如說你得模塊A和B.他們都是CPU密集型的,當你運行它們佔用80%的CPU。您首先測試了A,它使用了80%的CPU,您有20%的空閒空間,並且性能良好。現在你單獨測試B,結果相同。

現在開始生產並且用戶嘗試使用A和B模塊,兩者都試圖使用80%的CPU,並且突然沒有足夠的CPU並且性能受到影響。

+0

如果一個模塊需要CPU的80%,這本身就是一個問題。我的觀點是如果你全部運行它們,你是如何縮小範圍以找到問題的! – KitKarson

+0

這就是監測和分析的用武之地運行沒有適當的服務器端監測性能測試,就像你描述的大雁追逐。 – RaGe

1

如果您的目標是代表人類行爲來評估部署風險,那麼以原子方式測試每個業務流程將無法實現您的目標。

您似乎正在參與一個更適合稱爲性能單元測試的過程。這對開發人員(與性能測試人員不同)非常普遍,他們試圖在一定數量的用戶中驗證各個業務流程的性能。這些也通常被歸類爲非正常的思考時間(通常完全消除),小的數據集,小於有用的測試環境以及極短的測試持續時間,例如5-15分鐘。

1

你可以標記爲交易這意味着每個模塊的HTTP請求,該業務方案將在一組或交易,查詢航班EX-登錄請求作爲一個團體或每次交易,類似的還有書票等。通過以下分組這將以一種綜合的方式進行測試,並且它也會是一種類似於場景的製作。由於分組運行後,您可以輕鬆找出哪一組請求花費更多時間搜索,預訂門票等等。這樣您將獲得準確的性能統計數據,並且您也可以實現類似場景的製作

+0

加1.我會嘗試使用事務控制器。 – KitKarson

0

我知道這有點晚了,但仍然是。

我沒有太多的性能測試經驗。什麼是 正確的方法/您如何爲您的應用程序做測試?

正如詹姆斯所說,方法進行在正常情況下一個性能測試,可運行所有的關鍵業務,同時流動,而不是在一個隔離的方式。

爲了識別問題,我們會將請求分組到交易中並適當地命名業務流。這將有助於確定哪些請求失敗以及應用程序的哪些功能/部分存在問題。

單獨運行它們不會爲您提供更多見解,因爲負載測試工具只能確認是否存在瓶頸,而不是根本原因,而不考慮所涉及的業務流的數量。

如果我必須找到服務器的最佳負載(在哪個負載下性能更好) - 我的方法是什麼?

爲了鑑定服務器的最佳負載,它是強制性的,以所有的腳本作爲最終用戶要訪問該應用程序(所有關鍵場景)的模塊化方式同時和不一起運行。