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#a8520177
Sent from the WebTest mailing list archive at Nabble.com.

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

Reply via email to