SOAP Web服务,是否可以进行性能测试?

4
我有一个使用Spring-ws编写的Java SOAP Web Service服务。
我需要知道这个服务能否处理每天200万个请求,并了解它的性能如何。
- 大规模使用的性能在多大程度上与我的Java代码和架构有关,我能否对其进行改进?
- 这与我使用的应用服务器有多大关系,我应该使用哪个应用服务器,有什么限制、设置…我如何设置和测试这种性能?
谢谢。

到目前为止,答案都与如何测试性能以及如何确保您对真实性能需求的正确理解有关。至于其他问题,是的,您选择的实现平台 - 硬件和软件 - 也会影响性能。但我无法告诉您哪些服务器将表现得足够好。如果在负载下遇到性能问题,则必须找出限制所在,以确定尝试替代方案的位置。 - dbreaux
4个回答

4
由于SOAP在HTTP协议中具有架构基础,因此有数十种商业和开源工具可用于执行负载和可扩展性测试。您需要确保所选的任何工具都满足正确运行接口的技术需求,与您公司内部技能相匹配,并包含您需要确定测试成果成功或失败的报告。如果您选择的工具在这三个方面中的任何一个方面不匹配,则与购买市场上最昂贵的工具并雇用最昂贵的咨询机构使用它们没有什么区别...就像用螺丝刀的尾端钉钉子一样,而不是使用正确的工具(锤子)。
今天市场上大多数商业工具都有短期租赁/租赁选项,还有开源品种。每个工具都有与核心任务相关的工程效率,例如脚本构建、测试构建、测试执行和分析,这是与工具不同的。商业工具往往在任务之间具有更平衡的权重,而开源工具往往需要在脚本创建和分析的边缘任务上需要更高的LsOE。
考虑到您将至少使用几百万个样本(假设您至少要运行24小时),因此您需要确保分析工具具有大型数据集的可证明记录。长期以来,商业性能测试工具在这个级别上都有可证明的记录,而开源工具则是命中或错过,在某些情况下,分析成为根据记录的响应时间数据自己动手制作的建议。您可以看到,在此处构建自己的分析引擎可能会花费大量时间!
从技术上讲,您想要做到的是可能的。您可能希望重新审视您的性能要求,原因如下。我恰好与一家机构合作,该机构今天使用Web服务接口为全球客户提供服务。他们的后端交易数据存档已达到250TB,历时十年。在过去一年中,每小时的高水位约为60K个请求。按照24小时的基础计算,这仍然少于您每天的200万个请求。如果您测试到这个级别并发现问题,那么您是否发现了真正的问题,还是发现了工程幽灵,由于生产与测试容量的差异而永远不会在生产中发生。正确建模负载始终很困难,但花费时间钉定事务混合和适当容量的负载模型将是值得的,因为这样可以避免使用开发人员技能追求性能幽灵并在此过程中烧掉预算。
祝你好运!

特别是最后一段,投票支持。 - dbreaux

3

2

请记住,一天(24小时)是一个大样本。我怀疑200万次点击不会均匀分布在24小时内。尝试了解流量模式将会是什么样子。如果一半的流量在凌晨1点到4点之间到来(例如),那么您将需要测试3小时内的100万次点击以及24小时内的200万次点击。


1

SOAPUI可以通过从WSDL计算SOAP消息来帮助您进行负载测试您的Web服务:

Apache JMeter是一款性能/负载测试工具,可以使用SOAP采样器或常规HTTP采样器对其进行负载测试:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接