On 20/10/2008, sebb <[EMAIL PROTECTED]> wrote:
> On 20/10/2008, Anthony Chadszinow <[EMAIL PROTECTED]> wrote:
> > Hi Sebb,
> >
> > "There was a problem with my test plan - there was a space after the
> > Javascript function call, and so the expression was evaluating to "false "
> > rather than "false"." made me look at my conditions expression in the while
> > loop too and it was
> > "${__javaScript("${moo}"=="Business")} " - So I had a
> > space too. This was true in my real use case as well. Perhaps I picked
> it
> > up by copying and pasting from the manual.
> >
> > As you said this evaluates to "false " which I guess is cast to true at
> > some point in Jmeter's code. To quote Admiral Ackbar, "IT'S A TRAP!!!"
> >
> > Thank you. You fixed my problem :-)
> >
> > Don't know if it's the right thing to do but maybe you should run a trim
> > before evaluation of the condition? Trim white spaces that. Saying not
> > sure if it's the right way to go because that would be runtime and to keep
> > the tests as accuate as possible you probably want to minimise any runtime
> > work so maybe you should trim on save event and never let leading or
> > trailing white spaces get in there. It was a difficult problem to pick up
> on
> > & it would make it more user friendly. Up to you though of course.
>
>
> The runtime aspect is not important, as the calculation of the
> function / variable will be far more expensive.
>
> My only concern would be whether there might perhaps be some existing
> tests that rely on the current behaviour. However, this does seem
> rather unlikely, so I'll probably add this.
>
It will be in the next release of JMeter (hopefully this year).
> >
> > Cheers!!!
> > Chad
> >
> > sebb wrote:
> >
> > > On 20/10/2008, sebb <[EMAIL PROTECTED]> wrote:
> > >
> > >
> > > > On 16/10/2008, Anthony Chadszinow <[EMAIL PROTECTED]> wrote:
> > > > > Hi,
> > > > >
> > > >
> > > >
> > > >
> > > > > Sorry, I've cleaned up my email and hope you can see where I'm
> coming
> > from
> > > > >
> > > > >
> > > > > now.
> > > > >
> > > > > "What are you trying to achieve ?" - In a product I writing tests
> > for a
> > > > > processing popup opens and I need a loop to follow that popups
> > progress.
> > > > > The samplers following the popups progress should terminate the loop
> > once
> > > > > the popup tells me it should. I can tell the loop should terminate
> > because
> > > > > while the popup should continue a piece of content is in it. Once
> > the popup
> > > > > should terminate that content is gone. So in practice, if the reg
> > exp finds
> > > > > a result which equals to what I was looking for in the loop then
> loop
> > should
> > > > > continue but if it's not found the loop should terminate. The
> > example I
> > > > > presented reflected the same sort of base actions I'm performing
> > however I
> > > > > presented the example in a way that everyone could test if they
> > wanted by
> > > > > using www.google.com as my test case and modifying my reg
> > expressions.
> > > > > Since I'm still getting the same problem with my test case I believe
> > if you
> > > > > help me with my test case then it will address my real case.
> > > > >
> > > > > "No need for dummy parameter if you are using JMeter 2.3.2" - I'm
> > actually
> > > > > using a nightly build but before emailing for help I tested this on
> > 2.3.2 to
> > > > > see if I would get the same problem on the stable release. Is there
> > no need
> > > > > for dummy variable if I'm using a jmeter with a higher version than
> > 2.3.2?
> > > > > The manual said I needed dummy which is why I put it in there in the
> > first
> > > > > place
> > > > >
> >
> http://jakarta.apache.org/jmeter/usermanual/component_reference.html#logic_controllers
> > > > > section '18.2.10 While Controller' in the examples of Condition
> > clauses.
> > > > >
> > > > > ""while ${moo} is equal to" seems to be something missing here ???"
> > -
> > > > > Sorry, I meant to say while ${moo} is equal to "Business" keep
> going.
> > If
> > > > > you give my reg exp a try on www.google.com you would see that <a
> > > > > href="/services/">(.*?) Solutions</a> returns "Business" so the
> first
> > > > > sampler sets the variable to something which will make the loop go
> > and then
> > > > > the internal reg expression is meant to set the variable to
> something
> > other
> > > > > than "Business" which should terminate the loop.
> > > > >
> > > > > "Better to use a Debug Sampler, or a Java Request so you don't make
> > > > > unnecessary HTTP requests.", "What do you mean by that?" - Thanks,
> > I've now
> > > > > worked out I've been using the debug sampler wrong. I was always
> > putting it
> > > > > at the bottom of my test plans but now I see you can drop any number
> > of
> > > > > debug samplers anywhere. This was quite a noob mistake when I look
> > back at
> > > > > it. I've modified my test case such that it looks like as follows
> > now
> > > > >
> > > > > 1. View Results Tree
> > > > > 2. Http Sampler getting www.google.com
> > > > > 3. Child of above sampler - Reg Exp Extractor with settings Ref
> > > > > name=moo, reg exp=<a href="/services/">(.*?) Solutions</a>,
> > > > > template=$1$, match no=1, def val=not_found
> > > > > 4. Debug Sampler
> > > > > 5. While loop with settings
> > > > > condition=${__javaScript("${moo}"=="Business")}
> > so
> > > > > loop while
> > > > > ${moo} is equal to "Business" then continue looping
> > > > > 6. Child of loop - Http sampler getting www.google.com
> > > > > 7. Child of above Http sampler - Reg Exp Extractor with settings
> > Ref
> > > > > name=moo, reg
> > > > > exp=content_that_wont_be_here(.*)no_not_at_all,
> > > > > template=$1$, match no=1, def val=not_found
> > > > > 8. Child of loop - Debug Sampler
> > > > >
> > > > > At debug sampler #4 ${moo} = "Business" as expected and the loop is
> > > > > entered. At debug sampler #8 ${moo} = "not_found" however my loop
> > never
> > > > > terminates.
> > > > >
> > > > > So in the end I still have my same problem which is an infinite
> > loop. I'm
> > > > > now suspecting this is a variable scoping issue and that the reg exp
> > in the
> > > > > loop cannot effect the variables value at the loops Condition scope
> > level.
> > > > > If this is the case how can I do this example in another way to
> > achieve what
> > > > > I'm after?
> > > >
> > > >
> > > > The Debug sampler output will show that it is not a variable scoping
> > issue.
> > > >
> > > > There seems to be a problem with the While Controller not
> > > > re-evaluating the condition properly. Not sure why this is yet.
> > > >
> > > >
> > >
> > > Duh! Finger trouble. There was a problem with my test plan - there was
> > > a space after the Javascript function call, and so the expression was
> > > evaluating to "false " rather than "false".
> > >
> > > Try enabling Debug on the While Controller - select the controller and
> > > use the Help menu item to enable debug. This will log the condition
> > > value.
> > >
> > >
> > >
> > > > Try setting the default value to "false" in step #7, and using the
> > > > condition "${moo}" in step #5 (in both cases remove the quotes).
> > > >
> > > >
> > > > > Cheers,
> > > > > Chad
> > > > >
> > > > > sebb wrote:
> > > > >
> > > > > >
> > > > > > On 16/10/2008, Anthony Chadszinow <[EMAIL PROTECTED]> wrote:
> > > > > >
> > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > I've had trouble with a while loop so I built a dumbed down
> > example of
> > > > > what
> > > > > > > I'm really doing to explain my infinite loop problem. Feel free
> > to
> > > > > build
> > > > > > > this yourself because there's only 6 operators.
> > > > > > >
> > > > > > >
> > > > > >
> > > > > > What are you trying to achieve ?
> > > > > >
> > > > > >
> > > > > >
> > > > > > > In thread group I have -
> > > > > > >
> > > > > > > 1. View Results Tree
> > > > > > > 2. Http Sampler getting www.google.com
> > > > > > > 3. Child of above sampler - Reg Exp Extrator with settings Ref
> > > > > > > name=moo, reg exp=<a href="/services/">(.*?) Solutions</a>,
> > > > > > > template=$1$, match no=1, def val=not_found
> > > > > > > 4. While loop with settings
> > > > > > >
> > > > >
> > condition=${__javaScript("${moo}"=="Business",dummy)}
> > > > > > >
> > > > > > >
> > > > > >
> > > > > > No need for dummy parameter if you are using JMeter 2.3.2
> > > > > >
> > > > > >
> > > > > >
> > > > > > > so loop
> > > > > > > while ${moo} is equal to
> > > > > > >
> > > > > > >
> > > > > >
> > > > > > seems to be something missing here ???
> > > > > >
> > > > > >
> > > > > >
> > > > > > > 5. Child of loop - Http sampler getting www.google.com with get
> > var
> > > > > > > moo_is=${moo} <--- to expose what moo is at any point in
> time
> > > > > > >
> > > > > > >
> > > > > >
> > > > > > Better to use a Debug Sampler, or a Java Request so you don't make
> > > > > > unnecessary HTTP requests.
> > > > > >
> > > > > >
> > > > > >
> > > > > > > 6. Child of above Http sampler - Reg Exp Extractor with
> settings
> > Ref
> > > > > > > name=moo, reg
> > > > > > > exp=content_that_wont_be_here(.*)no_not_at_all,
> > > > > > > template=$1$, match no=1, def val=not_found
> > > > > > >
> > > > > > > No debug sampler because it's infinite so I have to kill
> > processes and
> > > > > > > debug sampler never comes up anyway.
> > > > > > >
> > > > > > >
> > > > > >
> > > > > > What do you mean by that?
> > > > > >
> > > > > >
> > > > > >
> > > > > > > So the point of operator #6 is it's going to set ${moo}to not
> > found
> > > > > after
> > > > > > > the first iteration because the reg expression will never match
> > and it
> > > > > does
> > > > > > > this as expected. This is proved by view results tree 'Request'
> > tab.
> > > > > On
> > > > > > > the first iteration of the loop the google request get var
> > 'moo_is' has
> > > > > the
> > > > > > > value "Business" which is why the loop iterates at least once
> > just as it
> > > > > > > should. All requests that follow have 'moo_is' equal to
> > "not_found"
> > > > > which
> > > > > > > is what I expect however my loop never stops. What am I doing
> > wrong
> > > > > here?
> > > > > > >
> > > > > > > Cheers,
> > > > > > > Chad
> > > > > > >
> > > > > > > --
> > > > > > > Anthony Chadszinow
> > > > > > > MySource Classic Lead Developer
> > > > > > >
> > > > > > > Squiz
> > > > > > > 92 Jarrett St Leichhardt, Sydney NSW, Australia 2040 t:
> 13000
> > SQUIZ
> > > > > (
> > > > > > > Support )
> > > > > > > t: 8507 9900 / 1300 130 661
> > > > > > > f: 8507 9988
> > > > > > > w: www.matrix.squiz.net
> > > > > > > w: www.squiz.net
> > > > > > >
> > > > > > > Sydney | Melbourne | Canberra | Hobart | Wellington |
> > London
> > > > > > > Open Source - Own it - Squiz.net
> > > > > > >
> > ----------------------------------------------------
> > > > > > >
> > > > > > > IMPORTANT:This email (and any attachments) is
> > commercial-in-confidence
> > > > > and
> > > > > > > or may be legally privileged and must not be forwarded, copied
> > or
> > > > > shared
> > > > > > > without express permission from Squiz. If you are not the
> > intended
> > > > > > > recipient, you may not legally copy, disclose or use the
> > contents in
> > > > > any
> > > > > > > way
> > > > > > > and you should contact [EMAIL PROTECTED] immediately and
> destroy
> > this
> > > > > message
> > > > > > > and any
> > > > > > > attachments. Thank you.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > ---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail:
> > > > > [EMAIL PROTECTED]
> > > > > > For additional commands, e-mail:
> > > > > [EMAIL PROTECTED]
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > > --
> > > > > Anthony Chadszinow
> > > > > MySource Classic Lead Developer
> > > > >
> > > > > Squiz
> > > > > 92 Jarrett St Leichhardt, Sydney NSW, Australia 2040 t: 13000
> > SQUIZ (
> > > > > Support )
> > > > > t: 8507 9900 / 1300 130 661
> > > > > f: 8507 9988
> > > > > w: www.matrix.squiz.net
> > > > > w: www.squiz.net
> > > > >
> > > > > Sydney | Melbourne | Canberra | Hobart | Wellington |
> > London
> > > > > Open Source - Own it - Squiz.net
> > > > >
> > ----------------------------------------------------
> > > > >
> > > > > IMPORTANT:This email (and any attachments) is
> > commercial-in-confidence and
> > > > > or may be legally privileged and must not be forwarded, copied or
> > shared
> > > > > without express permission from Squiz. If you are not the intended
> > > > > recipient, you may not legally copy, disclose or use the contents
> in
> > any
> > > > > way
> > > > > and you should contact [EMAIL PROTECTED] immediately and destroy
> this
> > message
> > > > > and any
> > > > > attachments. Thank you.
> > > > >
> > > > >
> > > >
> > > >
> > > >
> > >
> > >
> > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail:
> > [EMAIL PROTECTED]
> > > For additional commands, e-mail:
> > [EMAIL PROTECTED]
> > >
> > >
> > >
> > >
> >
> > --
> > Anthony Chadszinow
> > MySource Classic Lead Developer
> >
> > Squiz
> > 92 Jarrett St Leichhardt, Sydney NSW, Australia 2040 t: 13000 SQUIZ (
> > Support )
> > t: 8507 9900 / 1300 130 661
> > f: 8507 9988
> > w: www.matrix.squiz.net
> > w: www.squiz.net
> >
> > Sydney | Melbourne | Canberra | Hobart | Wellington | London
> > Open Source - Own it - Squiz.net
> > ----------------------------------------------------
> >
> > IMPORTANT:This email (and any attachments) is commercial-in-confidence and
> > or may be legally privileged and must not be forwarded, copied or shared
> > without express permission from Squiz. If you are not the intended
> > recipient, you may not legally copy, disclose or use the contents in any
> > way
> > and you should contact [EMAIL PROTECTED] immediately and destroy this
> message
> > and any
> > attachments. Thank you.
> >
> >
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]