2013-02-10 100 views
0

在回答之前:使用SoapUI。请阅读该问题,因为我试过SoapUISOAP服务的自动化测试

我有很多大的wsdl文件。每个方法是这样的: 首先做一个synchronous Call

  • 请求:请不要foo并发送请求URI: XY
  • 回应:好吧,你的工作有UUID: abc

作业完成后,我的服务会回应URI: XY,同步发送一个request消息:

  • 请求:好的,我完成你的工作与UUID: abc,结果是bar

我们需要使用此行为,因为我们有所有的答案将被保存,并通过UUID标识池。

你知道测试这种SOAP服务的可能吗?

我想:

  • SOAP UI
  • BPEL单元(我想应该是可能的BPEL单位,但我不能让它正常工作)

请不要建议写我自己的JAVA测试,因为我有超过100种测试方法。

此外,测试需要运行,结果需要在测试套件中自动分析,我无法在每次更改Web服务的代码时手动执行100个方法。

回答

1

我soapUI的球员之一,所以你可能会恨我的答案...

但解决方案是使用了SoapUI;更具体地使用MockResponse TestSteps。在涉及到BPEL测试时,SoapUI不是很强大,但使用MockResponse步骤可以解决它。

看这里:http://www.soapui.org/SOAP-and-WSDL/testing-asynchronous-services.html。即使所有调用都是同步完成的,但仍然可以将其视为异步测试,因为我们不仅仅有简单的请求/响应。

我也知道Oracle在这方面有很好的写作。

+0

其实我爱你的答案,因为这工作:)非常感谢你帮助我。如果您有链接或名称,我也对Oracle文件感兴趣? – Robin 2013-02-11 11:04:05

0

您可以使用Eclipse测试Web服务。

只需将WSDL文件放到您的项目上 - >右键单击文件 - > web服务 - >使用web service explorer进行测试。

您将拥有一个界面,显示您需要的所有WSDL操作和字段。

+0

谢谢你的回答,但我需要这个测试是自动化的。只需调用一个Soap方法,就可以在Soap UI中无任何问题地工作。你有解决这个问题吗? – Robin 2013-02-10 16:33:15

+0

@Robin您可以使用Eclipse进行操作 - >右键单击您的WSDL文件 - >生成客户端。这将创建您需要的Java代码中的所有类,从而为您提供一个Web服务客户端,您可以在其中设置参数并根据需要调整服务次数 – 2013-02-11 09:28:41

+0

@Michael嗨!你能指点我一些关于使用生成的客户端的指南吗? – 2017-04-11 16:11:11

1

您需要做的是创建一个模拟服务,它将接收到第二个调用,表明作业处理已完成。这可以在SOAP UI中完成,您可以阅读如何创建模拟Web服务here

+0

我知道模拟服务。但就我而言,您无法自动测试您在模拟服务中收到的结果。请告诉我,如果我错了。 – Robin 2013-02-10 16:34:48