yes, i agree.
On 5/20/06, Bob AFC <[EMAIL PROTECTED]> wrote:
The amount of non-sequitur mail is totally ridiculous
Bob Tipton
[EMAIL PROTECTED]
----- Original Message -----
From: "Brian Spindler" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Saturday, May 20, 2006 9:57 AM
Subject: RE: [Webtest] filters
> Paul,
> Thank you so much for the explanation, this will truly help. The site for
> groovy (groovy.codehaus.org) seems to be down, do you have some
> documentation you could fwd me for syntax, examples etc.. for groovy?
> Also, when I enter into a scriptstep what objects/variables do I have
> access to?
>
> -Brian
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] on behalf of Paul King
> Sent: Sat 5/20/2006 8:36 AM
> To: [EMAIL PROTECTED]
> Cc:
> Subject: Re: [Webtest] filters
>
>
>
>
> Hi Brian, I would probably use some scripting (e.g. Groovy)
> to do what you are after. You can optionally use filters
> to select just a minimal part of your page - this may simplify
> the scripting code slightly. Invoke your first page, do the
> scripting and store the server names into a list. Invoke the
> second page, do the scripting and store into a list. Then
> compare the two lists.
>
> If you use the Groovy step, the lists will stay in the binding
> across your Groovy steps (since build 1276). If you are using
> scriptStep, then you will need to have the attribute keep="true"
> to have the binding carry over.
>
> Your script code could look something like:
>
> <steps>
> <invoke url="${testUrl}"/>
> <selectLinesFilter startRegex=".*Servers Added.*"
> includeStart="no"
> stopRegex=".*Servers Modified.*" includeStop="no"/>
> <scriptStep language="groovy"><![CDATA[
> servers = [ ]
> root = new XmlSlurper().parseText(document.asXml())
> root.depthFirst().findAll{ node ->
> node.text().contains('Server') }.each{ lines ->
> lines.toString().split('\n').findAll{ str ->
> str.trim().size() > 0}.each{ servers <<
> it.trim() }}
> assert servers.unique().size() == 3
> ]]></scriptStep>
> </steps>
>
> This was run on the following HTML:
>
> <html>
> <body>
> <h1>A Heading to ignore</h1>
> <p>Servers Added:</p><br/>
> Server1<br/>
> Server2<br/>
> Server3<br/>
> <p>Servers Modified</p>
> </body>
> </html>
>
> If your text is a little more structured you will be able to shorten
> the script quite a lot.
>
> Cheers, Paul.
>
> Brian Spindler wrote:
> > Guys/Gals,
> >
> > I've been looking at the filter steps and believe they are what I need
> > however I am having a hard time finding all the logic I need so I hoped
> > someone could quickly point me in the right direction. This is a
> > simplified example of the HTML that I might want to filter:
> >
> > <p> Servers Added:</p><br/>
> > Server1<br/>
> > Server2<br/>
> > Server3<br/>
> > <p> Servers Modified</p>
> >
> > I was using a selectLinesFilter to try and capture the
> > "Server1<br/>Server2<br/>Server3<br/>" however what I am trying to
> > accomplish is to extract the servers and compare them to the results of
> > another HTML page. The reason I think this is going to get difficult is
> > because the other page the server names will be within <td></td> tags.
> > Does this mean I need to extract the server names individually to where
> > I confirm there existence one by one with verifyText steps?
> >
> > Any help would be greatly appreciated.
> >
> > Thanks!
> > -Brian
>
> _______________________________________________
> WebTest mailing list
> [email protected]
> http://lists.canoo.com/mailman/listinfo/webtest
>
>
> Yzjm~y
_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest
_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest