On Wed, Nov 19, 2008 at 10:47 PM, sebb <[EMAIL PROTECTED]> wrote:
> On 19/11/2008, Ondrej Baudys <[EMAIL PROTECTED]> wrote:
>> Hello List,
>>
>> I have stumbled upon what time me is definitely a bug in Jmeter. I was
>> able to reproduce the problem in Jmeter 2.3.1, 2.3, and 2.2
>>
>> Consider the following test plan configuration:
>>
>> Test Plan
>> Thread Group
>> User Defined Variables
>> ForEach Controller
>> HTTP Request Defaults
>> HTTP Request #1
>> HTTP Request #2
>> View Results Tree (Listener)
>>
>>
>> Where the user defined variables are:
>> SITE_1 = web-server
>> SITE_2 = dev-server
>> SITE_3 = localbox
>>
>> and the ForEach Controller takes 'SITE' as input spits out 'siteName' as
>> output
>>
>> The "Server Name or IP" field of the "HTTP Request defaults" set to
>> ${siteName}.localdomain
>>
>> I also use ${siteName} in the Path Field of the "HTTP Requests"
>> 1. ${siteName}/index.html
>> 2. ${siteName}/main.jsp
>>
>>
>> This is what I expect to see in the Request tab of the "View Results Tree":
>>
>> 1. GET http://dev-server.localdomain/dev-server/index.html
>> 2. GET http://dev-server.localdomain/dev-server/main.jsp
>> 3. GET http://web-server.localdomain/web-server/index.html
>> 4. GET http://web-server.localdomain/web-server/main.jsp
>> 5. GET http://localbox.localdomain/localbox/index.html
>> 6. GET http://localbox.localdomain/localbox/main.jsp
>>
>> ie. each pair of above requests has the output variable ${siteName}
>> populated as expected.
>>
>> What actually happens: requests 3. and 5. above are instead
>>
>> 3. GET http://dev-server.localdomain/web-server/index.html
>> 5. GET http://web-server.localdomain/localbox/index.html
>>
>> Ie. the 'siteName' variable as used in HTTP Restquest Defaults' server
>> name field is populated with the *previous iterations value* for the
>> *first http request only*.
>>
>> Obviously everything works in the first step since there is no
>> previous iteration, any subsequent HTTP Requests are fine (only 2
>> requests above but I have tested with varing numbers). The problem
>> always occurs on the first HTTP request.
>>
>> I have tested with the java HTTP request and the apache commons
>> implementation. Same results.
>>
>> I also added a test parameter on the HTTP Request Defaults: it works
>> fine both with and without the variable in the Server Name field. So
>> I think the problem is with the Server Name field only.
>>
>> I am attaching my example test plan (hopefully the mailing list lets
>> it through) so that you can reproduce the problem quickly.
>
> Please don't send attachments to the list.
>
>> I have
>> looked through bugzilla for anything similar but I must admit I don't
>> know how to use it properly... if someone can reproduce the problem
>> and/or cannot find a problem with my configuration, I will try and
>> open a bug report.
>>
>
> This is not a bug.
>
> HTTP Request Defaults is a Configuration item; they are processed at
> the start of their scope only. They are not processed at run-time like
> samplers or Pre- or Post-Processors.
Ah, I see.
Not to contradict what you just said, but the HTTP Request Defaults DO
get updated at run time in the example I gave above, just not for the
first HTTP request. Is this the expected behaviour? It seems very
strange to me, but then I don't really know where scope of the Request
Defaults begins and ends.
>
> There is no need for the Request Defaults in this case - just use the
> variable on the samplers.
>
Will do.
Thanks for your reply
Ondrej
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]