cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ivelin Ivanov" <ive...@iname.com>
Subject Re: Cocoon functional testing using Anteater
Date Fri, 05 Apr 2002 12:46:55 GMT

Ovidiu,


You leave me speachless.

Only two requests I can think of:
- take Anteater out of the schecoon tree and move it in its own tree uner
scratchpad.
- write a 2 page README or xdoc that explains how to run a few tests. You
can use your last response for start :)

When you do that I would love to play with this framemework and promote it
to people I know.

Cheers,

Ivelin


----- Original Message -----
From: "Ovidiu Predescu" <ovidiu@apache.org>
To: "Ivelin Ivanov" <ivelin@iname.com>
Cc: <cocoon-dev@xml.apache.org>; "Jeff Turner" <jeff@socialchange.net.au>
Sent: Thursday, April 04, 2002 11:58 PM
Subject: Re: Cocoon functional testing using Anteater


> On Thu, 4 Apr 2002 21:25:42 -0600, "Ivelin Ivanov" <ivelin@iname.com>
wrote:
>
> >
> > Super Extra Cocool !
> >
> > Have you considered integration with Jakarta's Latka?
> > http://jakarta.apache.org/commons/latka/index.html
>
> Jeff Turner, the co-author of Anteater, is looking into this. He's a
> committer in the Latka project. Unfortunately Latka is not implemented
> on top of Ant, so integration would really mean refactoring most of
> the code.
>
> > Please put on the wish list a features:
> >
> > 1) allowing for POST of text/xml mime content. This will allow testing
web
> > services.
>
> This is already done. Use the contentType attribute of <httpRequest>,
> or directly use the <soapRequest> which is a specialization of
> <httpRequest> for SOAP requests.
>
> > 2) Allowing for match of XML content. This will help with WS (related to
1)
> > and testing against "content" views of a web site.
>
> Already implemented ;-)
>
> Anteater was designed specifically for Web Services and Web
> Applications testing.
>
> > A quick and dirty example:
> >
> > <project name="calc-test" default="calc">
> >
> >   <target name="calc">
> >     <http description="Test the 'calc' JavaScript implementation">
> >       <httpRequest href="${schecoon}/calc/${cont1}" mime="text/xml">
> >         <post>
> >             <?xml version="1.0" encoding="utf-8"?>
> >             <soap:Envelope
> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> >             <soap:Body>
> >             <GetTopIdeas
> > xmlns="http://www.soapengine.com/lucin/salcentral/cidea.asmx">
> >                 <UserID>long</UserID>
> >                 <Password>string</Password>
> >                 <HTMLFormat>boolean</HTMLFormat>
> >             </GetTopIdeas>
> >           </soap:Body>
> >           </soap:Envelope>
> >         </post>
> >         <match>
> >           <xpath
> > select="envelope/body/getTopIdeasResponse/GetTopIdeasResult"
> > assign="result">
> >             <value>
> >                 <Item
> > xmlns="http://www.soapengine.com/lucin/salcentral/cidea.asmx">
> >                   <IdeaID>6</r:IdeaID>
> >                   <IdeaName>Global Positioning</IdeaName>
> >                   <YesVote>0</YesVote>
> >                   <NoVote>0</NoVote>
> >               </Item>
> >             </value>
> >           </xpath>
> >         </match>
> >       </httpRequest>
> >
> >
> >
> >
> > Do you think this will make it in CVS before 2010 ;-) ?
>
> Already implemented ;-), although with a different syntax.
>
> The following sample is taken directly from the test.xml file in the
> Anteater distribution:
>
>   <target name="simple-soap">
>     <property name="url" value="http://services.xmethods.net:80/soap"/>
>     <echo>A SOAP request will now be sent off to ${url} to retrieve a
stock quote.</echo>
>
>     <http description="Post a simple SOAP request">
>       <soapRequest href="${url}"
>                    content="test/requests/get-quote">
>         <match>
>           <header name="Content-Length" assign="cl"/>
>           <responseCode value="200" assign="rc"/>
>           <xpath
select="soap:Envelope/soap:Body/n:getQuoteResponse/Result"
>                  assign="result"/>
>           <echo>Got ${cl} bytes back from server; HTTP response code
${rc}</echo>
>           <echo>XPath-selected the value '${result}'</echo>
>         </match>
>       </soapRequest>
>     </http>
>   </target>
>
>
> To check for specific values just use:
>
>  <xpath select="your/xpath/of/choice" value="specific/value"/>
>
> This test will succeed only if the value of the specified XPath is
> exactly the specified value. You can also use <contentEquals> or
> <regexp> to match on the content.
>
> The major difference between Anteater and any other HTTP testing
> framework out there is that you can use Anteater to test the client
> side, not only the server side. Most of the testing frameworks
> simulate the client side only, with Anteater you can simulate the
> server side as well!
>
> This is achieved using the <listener> task. Suppose you want to test
> if your client Web service application sends the correct message to a
> service. You can write something like this:
>
>   <listener path="/my-service/">
>     <match>
>       <method value="POST"/>
>       <header name="SOAPAction" value=""/>
>       <header name="Content-type" value="text/xml"/>
>       <xpath select="/soap:Envelope/soap:Body/n:getQuoteRequest"/>
>       <sendResponse select="responses/stock.xml"/>
>     </match>
>   </listener>
>
> You can setup multiple listeners to wait in parallel for requests
> using <parallel>, if you don't care about the order in which the
> messages are received. Or you can use <sequential> to listen for
> messages only in a given order.
>
> Again check out the test.xml file from Anteater's distribution for
> more samples. You're more than welcome to contribute suggestions for
> improvements, or even code to Anteater ;-)
>
> Regards,
> --
> Ovidiu Predescu <ovidiu@cup.hp.com>
> http://www.geocities.com/SiliconValley/Monitor/7464/ (GNU, Emacs, other
stuff)
>
>
> > ----- Original Message -----
> > From: "Ovidiu Predescu" <ovidiu@cup.hp.com>
> > To: <cocoon-dev@xml.apache.org>
> > Sent: Thursday, April 04, 2002 8:14 PM
> > Subject: Cocoon functional testing using Anteater
> >
> >
> > > I've finally decided to take time to implement functional testing in
> > > Cocoon using Anteater, a tool Jeff Turner and I worked on since the
> > > end of last year.
> > >
> > > Using Anteater you can write regression tests against a deployed
> > > Cocoon application. You can fire HTTP requests, and check for various
> > > things in the response, using regular expressions, XPath and other
> > > things. Anteater is more powerful than this, it can also act as the
> > > server side, allowing you to test the client side of your application.
> > >
> > > For now the integration is done specifically for Schecoon, but it
> > > should be trivial to adapt to the normal Cocoon. To run the tests you
> > > simply type in the schecoon/ directory:
> > >
> > > ./build.sh test
> > >
> > > This spawns off Anteater on the tests/anteater/all-tests.xml file. The
> > > default task in this file will search for test files located in
> > > tests/anteater and will run them automatically.
> > >
> > > To write a test you create a "normal" Ant file, which will actually
> > > contain Anteater extended tasks. The file should contain only one
> > > target, whose name is the same as the file's name, except for the .xml
> > > suffix. This target will be automatically picked up by the
> > > all-tests.xml file and executed. Checkout the calc.xml test for an
> > > example:
> > >
> > >
> >
http://cvs.apache.org/viewcvs.cgi/xml-cocoon2/src/scratchpad/schecoon/tests/
> > anteater/calc.xml?rev=1.3&content-type=text/vnd.viewcvs-markup
> > >
> > > This file tests the Calculator example written using the brand new
> > > control flow layer in Schecoon.
> > >
> > > To run the sample, you first need to install Anteater from
> > >
> > > http://sourceforge.net/projects/aft/
> > >
> > > At this point, the Anteater documentation is very crude, and there's
> > > no Web page, besides the Sourceforge project one. If you know Ant it
> > > should be fairly easy to learn the new commands introduced by
> > > Anteater.
> > >
> > > Please let me know if you're interested in getting more info on
> > > Schecoon or Anteater.
> > >
> > > Have fun,
> > > --
> > > Ovidiu Predescu <ovidiu@cup.hp.com>
> > > http://www.geocities.com/SiliconValley/Monitor/7464/ (GNU, Emacs,
other
> > stuff)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
> For additional commands, email: cocoon-dev-help@xml.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Mime
View raw message