Hi All
I am working on login page of my webapp.
In my web app the UserName and Password text fields look like
<input type="text" name="1_2" id="1_2" smokeId="username"
label="Username" value="">
<input value="" type="password" class="txt" smokeId="password" id="1_3">
Id values keep changing every time the page is requested, so I cannot
use recorder. So I started using regular expressions.
I put 2 regular expressions for my Login Page:
Reference Name : UserName
RE: <input type="text" name="1_2" id="(.+?)" smokeId="username"
Template: $1$
Match No: 1
Reference Name : Password
RE: <input value="" type="password" class="txt" smokeId="password"
id="(.+?)"
Template: $1$
Match No: 1
Now in the next HTTPSampler (which is Desktop) I tried using the values.
I tried to parameterize the Name: which is recorded as 1_2 and 1_3 with
${UserName} and ${Password}
But the request to login fails as it just puts ${UserName} instead of
generated value in the HTML page like 1_2.
Any idea where the problem is : ????
Attached are the samplers ....
Please let me know, thanks for all the help.
<HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler"
testname="Login" enabled="true">
<elementProp name="HTTPsampler.Arguments"
elementType="Arguments" guiclass="HTTPArgumentsPanel"
testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments"/>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp
name="HTTPSampler.path">/cc/ClaimCenter.do</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
<boolProp
name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.monitor">false</stringProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree>
<RegexExtractor guiclass="RegexExtractorGui"
testclass="RegexExtractor" testname="Regular Expression Extractor"
enabled="true">
<stringProp
name="RegexExtractor.useHeaders">false</stringProp>
<stringProp
name="RegexExtractor.refname">Password</stringProp>
<stringProp name="RegexExtractor.regex"><input
value="" type="password" class="txt"
smokeId="password" id="(.+?)"</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.default"></stringProp>
<stringProp
name="RegexExtractor.match_number">1</stringProp>
</RegexExtractor>
<hashTree/>
<RegexExtractor guiclass="RegexExtractorGui"
testclass="RegexExtractor" testname="Regular Expression Extractor"
enabled="true">
<stringProp
name="RegexExtractor.useHeaders">false</stringProp>
<stringProp
name="RegexExtractor.refname">UserName</stringProp>
<stringProp name="RegexExtractor.regex"><input
type="text" name="1_2" id="(.+?)"
smokeId="username"</stringProp>
<stringProp name="RegexExtractor.template">$1$</stringProp>
<stringProp name="RegexExtractor.default"></stringProp>
<stringProp
name="RegexExtractor.match_number">1</stringProp>
</RegexExtractor>
<hashTree/>
</hashTree>
<GenericController guiclass="LogicControllerGui"
testclass="GenericController" testname="-------------------"
enabled="true"/>
<hashTree/>
<HTTPSampler guiclass="HttpTestSampleGui"
testclass="HTTPSampler" testname="Desktop" enabled="true">
<elementProp name="HTTPsampler.Arguments"
elementType="Arguments" guiclass="HTTPArgumentsPanel"
testclass="Arguments" enabled="true">
<collectionProp name="Arguments.arguments">
<elementProp name="" elementType="HTTPArgument">
<boolProp
name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.name">inFrame</stringProp>
<stringProp name="Argument.value">mainframe</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
</elementProp>
<elementProp name="" elementType="HTTPArgument">
<boolProp
name="HTTPArgument.always_encode">false</boolProp>
<stringProp
name="Argument.name">eventSource</stringProp>
<stringProp name="Argument.value">1_4_act</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
</elementProp>
<elementProp name="" elementType="HTTPArgument">
<boolProp
name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.name">eventParam</stringProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
</elementProp>
<elementProp name="" elementType="HTTPArgument">
<boolProp
name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.name">eventShift</stringProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
</elementProp>
<elementProp name="" elementType="HTTPArgument">
<boolProp
name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.name">rcounter</stringProp>
<stringProp name="Argument.value">1</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
</elementProp>
<elementProp name="" elementType="HTTPArgument">
<boolProp
name="HTTPArgument.always_encode">false</boolProp>
<stringProp
name="Argument.name">scrollPositions</stringProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
</elementProp>
<elementProp name="" elementType="HTTPArgument">
<boolProp
name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.name">objFocusId</stringProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
</elementProp>
<elementProp name="" elementType="HTTPArgument">
<boolProp
name="HTTPArgument.always_encode">false</boolProp>
<stringProp name="Argument.name">1_1</stringProp>
<stringProp name="Argument.value"></stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
</elementProp>
<elementProp name="" elementType="HTTPArgument">
<boolProp
name="HTTPArgument.always_encode">false</boolProp>
<stringProp
name="Argument.name">${UserName}</stringProp>
<stringProp name="Argument.value">su</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
</elementProp>
<elementProp name="" elementType="HTTPArgument">
<boolProp
name="HTTPArgument.always_encode">false</boolProp>
<stringProp
name="Argument.name">${Password}</stringProp>
<stringProp name="Argument.value">gw</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<boolProp name="HTTPArgument.use_equals">true</boolProp>
</elementProp>
</collectionProp>
</elementProp>
<stringProp name="HTTPSampler.domain"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.protocol">http</stringProp>
<stringProp name="HTTPSampler.method">POST</stringProp>
<stringProp
name="HTTPSampler.contentEncoding">UTF-8</stringProp>
<stringProp
name="HTTPSampler.path">/cc/ClaimCenter.do</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">false</boolProp>
<boolProp
name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<stringProp name="HTTPSampler.mimetype"></stringProp>
<stringProp name="HTTPSampler.FILE_NAME"></stringProp>
<stringProp name="HTTPSampler.FILE_FIELD"></stringProp>
<stringProp name="HTTPSampler.monitor">false</stringProp>
<stringProp name="HTTPSampler.embedded_url_re"></stringProp>
</HTTPSampler>
<hashTree/>