2012-12-27 46 views
2

如何從Java客戶端向已部署的Web服務發送多個併發Java請求?知道客戶端是從WSO2ESB生成的。Wso2 ESB - 同時向Web服務發送多個請求

+0

是您打算做一些實物,我們的性能分析bservice還是你只想擁有一個多線程客戶端? – Jubal

+0

[你有什麼嘗試?](http://www.whathaveyoutried.com/) –

+0

尊敬的先生:您好! 正如您所說,我的目標是通過同時發送多個請求來執行Webservice的性能分析,並查看ESB的行爲。 謝謝。 – Yanni

回答

2

如果您不需要編寫自定義的邏輯爲每一個請求,我會更喜歡像了SoapUI或LoadUI。使用它們很容易創建一種壓力測試。 如果您需要創建自定義的測試,你可以把它寫在你自己:

  1. 生成客戶端,只要你想
  2. 如果你的Web服務操作是2路
  3. 使用線程池來創造儘可能多線程 - 從發送請求到得到響應
  4. 收集統計測量時間(這可以幫助您瞭解,如果您的ESB模塊負載處理)
+0

你好。 我通過wso2的給定選項生成客戶端(我創建了一個axis2 WS)。然後我獲得2個類其中一個名爲HelloServiceStub.java。我創建了一個名爲「Consumer.java」的普通Java類,允許設置提供程序參數(提供處理時間)。我有一個問題,請:**我的消費者必須是線程?? ** – Yanni

+1

這一切都如你所願,實現的細節可以有所不同。當我不得不應對類似的任務時,我創建了執行我的任務的執行程序,它消耗了web服務。無論如何,我不會擴展Thread,而是實現Runnable。 [ExecutorsService](http://docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/ExecutorService.html)適用於Runnable,而不是Thread。此外,它還允許您構建自己的層次結構,而無需鎖定父類。 – Timofei

1

有幾種選擇:

  • 寫自己的基準驅動器 - 這是很簡單的,你將有你測量什麼,以及如何的總量控制。

  • Webservice的工具 - Web服務器通常會以某種形式的壓力測試客戶端,你可以從網絡服務器康壽直接使用,或者你可以嘗試例如了SoapUI。

  • Http Benchmark Frameworks - 使用基準框架,可以讓您編寫靈活而強大的基準測試驅動程序。您可以使用:

    • HttpBenchmark - 這是一個開源HttpBenchmark,你可以很容易地修改和使用駕駛工作量您的Web服務/ ESB。
    • Faban Framework,用於驅動各種Web服務基準測試(例如SPECjEnterprise2010)。 Faban有很好的文檔記錄,幷包含教程,如果你想設計自己的驅動程序,這些教程也是有用的/鼓舞人心的。