[Webtest] More groovy questions/help needed

Dierk Koenig webtest@lists.canoo.com
Wed, 12 Apr 2006 22:19:01 +0200


*haha*, good job!
Mittie

> -----Original Message-----
> From: webtest-admin@lists.canoo.com
> [mailto:webtest-admin@lists.canoo.com]On Behalf Of Michael Knapp
> Sent: Mittwoch, 12. April 2006 22:02
> To: webtest@lists.canoo.com
> Subject: RE: [Webtest] More groovy questions/help needed
> 
> 
> Thanks Mittie (and Marc for help when Mittie was gone).   I found a
> solution.  Since it might  be helpful to  others, allow me to share it:
> 
> 
> 
> Objective: store key=value pairs between projects.  (in my case, I
> needed to create a gift registry in one webtest and access it as a
> different user in a subsequent webtest).  This may be a sloppy hack, but
> it works for me!
> 
> 
> 
> Project 1:
> ____________
> 
> <project default="useCase"><target name="UseCase"><webtest><steps>.....
> ...
> <-- do stuff -->
> ...
> <-- set variables -->
> 	<storeProperty
>             description="Property to store for later"
>             name="value1"
>             value="#{first_value_to_save}" 
> 		propertyType="ant"/>
> 
> 	<storeProperty
>             description="Property to store for later"
>             name="value2"
>             value="#{second_value_to_save}" 
> 		propertyType="ant"/>
> 
> 	<antcall target="storeVars"/>
> 
> </steps></webtest></target>
> 
> <-- store the variables as filesnames, like tmp/key_value -->
> <target name="storeVars">
> 
> 	<exec executable="touch"> <arg value="tmp/key1_${value1}"
> /></exec>
> 	<exec executable="touch"> <arg value="tmp/key2_${value2}"
> /></exec>
> 
> <-- later realized there's an ant "touch" step, but haven't changed my
> code -->
> 
> </target>	
> 
> </project>
> 
> 
> Project 2:
> _____________
> 
> <project default="useCase"><target name="UseCase"><webtest><steps>...
> 	...
> 	<-- do stuff -->
> 	...
> 
> <-- access the variables -->
> 	<groovy>
> 
> 		f = new File("./tmp");
> 
> 		f.eachFileMatch({m = it =~ /key1_(.*)/}) { 
> 		step.setWebtestProperty("propName1",m[0][1])
> 			//println it //for debug
> 		} 
> 
> 		f.eachFileMatch({m = it =~ /key2_(.*)/}) { 
> 			step.setWebtestProperty("propName2",m[0][1])
> 			//println it //for debug
> 		} 
> 
> 	</groovy>
> 
> <-- use the variables -->
> 	<someStep
> 		property="#{propName1}"/>
> 
> 	<invoke
> 		url="/myUrl?key2=#{propName2}"/>	
> 
> </steps></webtest></target></project>
> 
> 
> 
> Hope its of use.....
> 
> mike
> 
> > -----Original Message-----
> > From: webtest-admin@lists.canoo.com 
> > [mailto:webtest-admin@lists.canoo.com] On Behalf Of Dierk Koenig
> > Sent: Saturday, April 08, 2006 10:41 AM
> > To: webtest@lists.canoo.com
> > Subject: RE: [Webtest] More groovy questions/help needed
> > 
> > Hi, I'm back.
> > 
> > Please let me know if your questions are still open.
> > 
> > > [groovy] groovy.lang.MissingMethodException: No signature of method
> > > Script1.group() is applicable for argument types:
> > > ([Ljava.lang.reflect.Method;) values: {[.......]}
> > ..
> > > This happens for assorted methods, and even for code I'm lifting 
> > > directly from 
> > > http://webtest-community.canoo.com/wiki/space/Groovy/GroovyStep
> > > Like:
> > >
> > > print 'methods of step:'
> > > print group(step.class.methods)
> > > print 'properties of step:' print group(step.allProperties())
> > 
> > In the examples you refer to the 'group' method gets defined 
> > inside the script of the Groovy Step and is therefore available.
> > 
> > More examples are in the Canoo WebTests selftests:
> > http://webtest.canoo.com/fisheye/viewrep/CanooWebtest/webtest/
> > selftests/test
> > s
> > 
> > Look for the ones starting with 'G'.
> > 
> > happy testing
> > Mittie
> > 
> > _______________________________________________
> > WebTest mailing list
> > WebTest@lists.canoo.com
> > http://lists.canoo.com/mailman/listinfo/webtest
> > 
> > 
> _______________________________________________
> WebTest mailing list
> WebTest@lists.canoo.com
> http://lists.canoo.com/mailman/listinfo/webtest