2012-12-27 92 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有很好的文档记录,并包含教程,如果你想设计自己的驱动程序,这些教程也是有用的/鼓舞人心的。