On 28/11/2008, Hiro Protagonist <[EMAIL PROTECTED]> wrote:
>
> On Fri, 2008-11-28 at 12:13 +0000, sebb wrote:
> > On 28/11/2008, Hiro Protagonist <[EMAIL PROTECTED]> wrote:
> > > Hi All,
> > >
> > > I am currently stuck with the following:
> > > I have a web application that uses AJAX to display information coming
> > > from a database in portlets (graphical representation). These portlets
> > > each trigger a set of SQL queries in a database, and while the database
> > > is getting the query result, an animated GIF is displayed, and
> > > Javascript causes the browser to poll every 5 seconds or so, until the
> > > 'real' information can be displayed, at which point the polls stop.
> > > This is an isue with JMeter, because as far as JMeter is concerned, the
> > > request that was sent has been answered, and it moves on to the next
> > > request.
> > > However, what I need is essentially a loop that keeps checking what the
> > > contents of the response is, and repeat the http request until the word
> > > 'Sarching' does not appear anymore (meaning in received data to be
> > > displayed in the portlet).
> > > There are a number of different portlets on each page, identified by a
> > > unique string in the previous http response, which is used in the
> > > 'polling request' that is sent back to the server.
> > > I have managed to get this far:
> > >
> > > - set up a regex that extracts the unique ID for each portlet
> > > - set up a for_each loop that goes through all of these IDs and sends
> > > requests
> > > - set up a regex that extracts the response from the polled request
> > >
> > > However, the problem I have is that the while loop, which is nested
> > > inside the for_each loop, never moves on to the second value after the
> > > first response has finished and found the response.
> > >
> > > Here is my test plan:
> > >
> > >
> > > *** (various login and authentication requests)
> > > |
> > > @Regex called 'searching' with default value of 'NOTFINISHED'
> > > |
> > > *Request to move to page containing portlets (regex 'searching')
> > > |
> > > #For Each Controller (iterates all values for request/response above)
> > > \
> > > \
> > > #While controller (loop while regex defaults to 'NOTFINISHED')
> > > |
> > > * Request for portlet
> > > \
> > > @Regex searching looking for 'searching' in response.
> > > If not found, default value is NOTFINISHED
> > >
> > > Everything works, except that I get stuck in the while loop after the
> > > first portlet comes back without 'searching' - effectively having found
> > > the information and it should then set the regex to something else.
> > > What is wrong with this setup ?
> >
> > Difficult to say, as you don't show what the While Condition is.
>
>
> I have set the while condition to:
> ${__javaScript( ${SEARCHING}=="NOTFINISHED",dummy)}
That is not valid Java script - it should be
${__javaScript("${SEARCHING}"=="NOTFINISHED",dummy)}
> sebb, also I believe there may be a problem with variable scope here. To
> enter the loop, the while controller needs the variable SEARCHING to
> exist before (which it does). The regex attached to the HTTP request
> inside the while loop re-references this name (SEARCHING), but sets a
> default value of "FINISHED" if the string was not found. It seems that
> this setting never actually takes place - I have placed a debug sampler
> inside the loop and even though the value of SEARCHING is set to
> 'FINISHED' after the regex term was not found, it keeps looping.
>
Add a Debug Sampler after the Regex to show the value.
> >
> > Try adding Debug Sampler(s) and look at the variables in View Results Tree.
> >
> > > Should I be using a user-defined variable instead of a regex ?
> >
> > I don't understand. The regex output is stored in a variable.
> >
> > > Thanks for your help !
> > > hiro
> > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]