[Webtest] [webtest][JIRA] Created: (WT-161) <property> values not initialized within <webtest> task
John Kercher (JIRA)
webtest@lists.canoo.com
Wed, 1 Mar 2006 00:28:45 +0100 (CET)
<property> values not initialized within <webtest> task
-------------------------------------------------------
Key: WT-161
URL: http://webtest-community.canoo.com/jira/browse/WT-161
Project: WebTest
Type: Bug
Versions: 1.7
Environment: winxp pro, ant 1.6.5, found in webtest build 1209
Reporter: John Kercher
>From my post (28 Feb 2006) to the mailing list (subject "support of <property> via <antWrapper>"):
Recently I suggested adding support for nested <property> tags within
<steps> so that modules could declare default properties that could be
overridden by the caller. Marc pointed me to the <antWrapper>. I
grabbed the latest build (1209) and gave it try. I modified my
createuser module to preset some properties that test authors might not
be concerned about in all cases:
<echo>module:createUser.xml</echo>
<fail unless="createuser.name">
The required property 'createuser.name' was not specified; this property
must specify a unique name for the user to be created.
</fail>
<property name="createuser.pwd" value="pwd"/>
<property name="createuser.pwd.confirm" value="pwd"/>
<property name="createuser.isUser" value="True"/>
<property name="createuser.isAdmin" value="False"/>
<property name="createuser.isEnabled" value="True"/>
<property name="createuser.email"
value="${createuser.name}@wherever.org"/>
<property name="createuser.notes" value="This user created by
WebTest."/>
<echo>checking default: pwd=${createuser.pwd}</echo>
<invoke description="get create user page" url="/CreateUser!input.action"/>
<setinputfield description="set user name" name="user.name" value="${createuser.name}"/>
<setinputfield description="set user password" name="password" value="${createuser.pwd}"/>
<setinputfield description="confirm password" name="confirmPassword" value="${createuser.pwd.confirm}"/>
(...etc...)
<clickElement description="submit new user" xpath="//*[@name = 'createUser']"/>
The <echo> and <fail> tasks work as expected (without specifying
<antWrapper>, which is cool), but the default <property> setters do not.
The line that echos default properties outputs "checking default:
pwd=${createuser.pwd}", as if the property had never been set. I also
tried putting these in an external properties file and including it in
the module, but the results were the same.
Is this expected/known behavior? I can remove these defaults to an
external file and include them before the <webtest> task, but it seems
like being able to include them in the module would improve the module's
usability (as far as test writers are concerned).
>From Mark G.'s reply in the mailing list:
This is not expected and wasn't known.
I think that the reason is that we evaluate the properties to early (in fact
when the task is added to the container) instead of evaluating them just before
execution. I guess that following minimal test would show the problem too:
<webtest>
<steps>
<property name="myProp" value="foo"/>
<echo message="myProp: ${myProp}"/>
</steps>
</webtest>
I recommand you to open a bug issue for this problem. This won't be fixed before
the symbolic 2.0 (next week) but some changes I already had in mind will address
this problem too.
Marc.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://webtest-community.canoo.com/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira