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