Marc, I updated to the latest snapshot, and now everything works great! This is exactly what I needed. Thanks _so_ much for your help!
Shawn Bradley President, Sunergeo Systems, Inc. www.sunergeosystems.com -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Marc Guillemot Sent: Tuesday, January 23, 2007 5:50 AM To: [email protected] Subject: Re: [Webtest] Testing with lists of input data Which WebTest build do you use? I think that the issue with the counter value within the repeat should be fixed since a few weeks. Marc. Shawn Bradley wrote: > > > > Marc, > > > > Thanks for this helpful response. This is indeed exactly what I was > looking > for. Unfortunately, I am having difficulty still. When I iterate over > the > <macrodef> steps with <repeat>, the properties are not expanded to their > actual values, but instead are placed in the form literally, i.e. > ${prop.0.fld}, instead of "value". In other words, where I am expecting > "John" to be placed in my first name field, instead I get the unexpanded > property ${user.0.first_name}. Furthermore, the repeat counter does not > seem to increment. On subsequent loop iterations, the property > ${user.0.first_name}, not ${user.1.first_name} is placed in the form > field. > I have also tried using value="[EMAIL PROTECTED]", but the > results > are the same. > > > > Here is the code for my test: > > > > <?xml version="1.0"?> > > <!DOCTYPE project SYSTEM "../Config/WebTest.dtd"[ > > <!ENTITY config SYSTEM "../Config/config.xml"> > > <!ENTITY assertNoError SYSTEM "../modules/assertNoError.xml"> > > <!ENTITY login SYSTEM "../modules/Loginsteps.xml"> > > <!ENTITY addUsers SYSTEM "../modules/userAddMultiple.xml"> ]> > > > > <project name="UserTest" basedir="." default="UserTest"> > > <property name="webtest.home" location="c:/projects/java/canoo" /> > > <property name="apptest.home" > location="c:/Projects/PhpWebProjects/sunergeo/UnitTests/canoo" /> > > > > <property file="${apptest.home}/properties/user.properties"/> > > <import file="${webtest.home}/lib/taskdef.xml"/> > > > > <macrodef name="addUser"> > > <attribute name="index" description="the current loop index"/> > > <sequential> > > <setInputField name="First" value="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <setInputField name="Last" value="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <setInputField name="Address1" value="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <setInputField name="Address2" value="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <setInputField name="City" value="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <setInputField name="State" value="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <setInputField name="Zip" value="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <setInputField name="Country" value="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <setCheckbox name="CanEmail" checked="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <setCheckbox name="CanNewsletter" > checked="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <setInputField name="Email" value="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <setInputField name="password" value="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <setInputField name="ConfirmPass" value="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > <clickButton name="submit" description="Click the submit button to > add > the user"/> > > &assertNoError; > > </sequential> > > </macrodef> > > > > <target name="UserTest" description="Creating user records for > subsequent > tests"> > > <webtest name="UserTest"> > > &config; > > <steps> > > <repeat count="1"> > > <addUser index="#{count}" /> > > </repeat> > > </steps> > > </webtest> > > </target> > > </project> > > > > ============================================================================ > ============================================== > > > > The properties file looks like this: > > > > user.0.first_name=Bill > > user.0.last_name=Smith > > user.0.address1=101 W 1st > > user.0.address2= > > user.0.city=Tyler > > user.0.state=TX > > user.0.zip=75701 > > user.0.country=United States > > user.0.can_email=true > > user.0.can_newsletter=true > > [EMAIL PROTECTED] > > user.0.password=fuzzyduck > > > > Any ideas on what I've done wrong? > > > > Shawn Bradley > > President, Sunergeo Systems, Inc. > > www.sunergeosystems.com > > > > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > On Behalf Of Marc Guillemot > > Sent: Tuesday, January 02, 2007 2:10 AM > > To: [email protected] > > Subject: Re: [Webtest] Testing with lists of input data > > > > Hi Shawn, > > > > if I correctly understand, you have properties like > > > > categ.name.0=first categ > > categ.name.1=second categ > > ... > > > > and want to iterate over this categs. Right? > > > > The repeat loop provides the counter variable but nested properties > evaluation like ${categ.name.#{counter}} is currently not available. The > workaround is to externalize the body of your repeat loop in a macro: > > > > <macrodef name="myRepeatBody"> > > <attribute name="index" description="the current loop index"/> > > <sequentials> > > <setInputField forLabel="Category" value="[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> "/> > > ... > > </sequentials> > > </macrodef> > > > > and > > <webtest ...> > > ... > > <repeat count="..."> > > <myRepeatBody index="#{counter}"/> > > </repeat> > > </webtest> > > > > Happy Testing, > > Marc. > > > > Shawn Bradley wrote: > >> I am fairly new to WebTest, but so far, I've been able to accomplish > >> just about everything I need to. However, I am stuck at this > >> particular requirement. > >> > >> > >> > >> Our app builds expense reports, and each expense entry references an > >> expense category. I am writing tests to exercise the expense category > >> maintenance portion of the app. What I want to do is create a > >> property file that contains the parameters for a dozen or so expense > categories. > >> I then need my WebTest case to create each of these categories in a > >> loop, using <repeat> or some other construct. I DON'T want to have to > >> create the same XML instructions a dozen or more times to construct > >> the categories in a linear fashion. > >> > >> > >> > >> I have spent hours digging through the newsgroup and mailing list > >> archives, and I cannot find an example similar to what I am trying to > >> do. This seems like such a common task to me - surely someone else > >> has had a similar requirement. How do I accomplish this? > >> > >> > >> > >> Thanks, > >> > >> > >> > >> > >> > >> Shawn Bradley > >> > >> President, Sunergeo Systems, Inc. > >> > >> www.sunergeosystems.com > >> > >> > >> > > > > > > > -- View this message in context: http://www.nabble.com/Testing-with-lists-of-input-data-tf3047840.html#a85201 77 Sent from the WebTest mailing list archive at Nabble.com. _______________________________________________ WebTest mailing list [email protected] http://lists.canoo.com/mailman/listinfo/webtest

