Michael Knapp wrote:
I need to do a lot of SOAP tesing for an upcoming project  and would
love to use WT.  Is it  possible?  Any plans for a SOAP module/steps?
Or any other tool that you'd recommend (and if it could be configured to
work with ant/WT all the better)?

Thanks
Mike

I thought I would put some more information into an example.

If you look at the Web Service example at:

   http://groovy.codehaus.org/Groovy+SOAP

Here is how you would test it using traditional webtest:

   <steps>
       <invoke method="POST" contentFile="addreq.xml" soapAction=""
           url="http://localhost:6980/MathServiceInterface"/>
       <verifyXPath xpath="//addResponse/out[text()='3.0']"/>
       <invoke method="POST" contentFile="squarereq.xml" soapAction=""
           url="http://localhost:6980/MathServiceInterface"/>
       <verifyXPath xpath="//squareResponse/out[text()='9.0']"/>
   </steps>

Where addreq.xml would look something like:

   <?xml version='1.0' encoding='UTF-8'?>
   <soap:Envelope
       xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
       xmlns:xsd="http://www.w3.org/2001/XMLSchema";
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
       <soap:Body>
       <add xmlns="http://DefaultNamespace";>
           <in0 xmlns="http://DefaultNamespace";>1.0</in0>
           <in1>2.0</in1>
       </add>
       </soap:Body>
   </soap:Envelope>

and squarereq.xml would look something like:

   <?xml version='1.0' encoding='UTF-8'?>
   <soap:Envelope
           xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
           xmlns:xsd="http://www.w3.org/2001/XMLSchema";
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
       <soap:Body>
           <square xmlns="http://DefaultNamespace";>
               <in0 xmlns="http://DefaultNamespace";>3.0</in0>
           </square>
       </soap:Body>
   </soap:Envelope>

Alternatively, testing using groovy within webtest would look like:

   <steps>
       <groovy>
           import groovy.net.soap.SoapClient

           def proxy = new 
SoapClient("http://localhost:6980/MathServiceInterface?wsdl";)

           def result = proxy.add(1.0, 2.0)
           assert (result == 3.0)

           result = proxy.square(3.0)
           assert (result == 9.0)
       </groovy>
   </steps>

Note: you will need to place the jars mentioned on that page in your
webtest lib directory (i.e. groovysoap, stax, jaf and mail jars).

The first approach (traditional webtest) produces more information in the test
summary reporting but requires you to do more work (i.e. keep the requests 
around
as XML). It depends if you already have those XML files around for other 
purposes,
e.g. manual testing.



Cheers ,Paul.
_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest

Reply via email to