You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by Craig Palmer <cr...@peace.com> on 2004/02/04 20:46:37 UTC

Re: JMeter from time to time doesn't calculate regular expressions for some threads

It is very difficult to diagnose what appears to be a transient issue, 
let alone fix it. I think I can guarantee that Jmeter does NOT have a 
setting/configuration that introduces random problems to occur at 
random times.

In every case that I have found the regular expression not working, I 
have looked carefully at the content and found my mistake every time. 
I would bet that it isnt finding a match because there is no match.

What you need to do is put a 'View Results Tree' on the http sampler 
that you want to match the regular expression and run the test cycle. 
When the "mis-match" occurs (the listener will keep a full history of 
all the pages fetched"), copy the Result Data to a file and then run 
the exact same regular expression over it using Perl 5.003. The same 
thing should happen.

If the regular expression works in Perl, then there is cause to 
investigate to the next level. If it doesnt, then either the page 
content is not what you are expecting, or you need to revise your 
regular expression.

BTW, I say Perl 5.003 becuase this is the equivalent regular 
expression engine that Jmeter uses. If you are not too familiar with 
Perl, then here is an example program to give you a jump start 
assuming that you saved the page content as "page.html":

#!/usr/bin/perl

# open file for reading
open(IN, "page.html") || die "unable to open file";

# Run through each line looking to match the regular expression
# Note that if you use brackets (), the the results will be found
# in $1, $2 etc. E.g. $Line =~ /contentId=(\d+)/ then you could
# write in the if statement $contentId = $1;
while($Line = <IN>) {
   if($Line =~ /<reg exp here>/) {
     print "Found Match!";
}

close(IN);



Vladimir Tsygankov wrote:
> Hello, friends!
> We noticed that JMeter from time to time doesn’t calculate regular
> expressions in requests for some threads (our test has 20 threads). 
> As a result we receive Exceptions from the server instead of correct
> responses. We tried almost everything: increasing of Ramp-Up period,
> time delay between requests, priority of java etc. It doesn’t help.
> We’d like to have a guarantee that a regular expression has been
> calculated before a request is sent.
>  Is there any settings for JMeter or for script to fix the problem?
> Thanks in advance,
> Vladimir
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> 
> 


-- 
Craig Palmer                    Mobile NZ: +64 21 755 254
Peace Software                  URL: http://www.peace.com
                                 Email: craig.palmer@peace.com


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Craig Palmer <cr...@peace.com>.
Hmmm, OK - looking at the regexp extractor code, there is some 
debugging, but I dont think it will be useful enough for this purpose. 
It would be simple to temporarily add more though.

I havent had any problems to date with it but I have only run up to 10 
threads. Today I'll be pushing it to around 400 threads across a 
couple of remote servers. I do a lot of regular expression parsing 
across some large and complex html pages. I'll pay particular 
attention to the correctness today and see if I have any issues.

I think the key thing is to prove that the regular expression engine 
should have picked up the match (such as using perl as mentioned) and 
that there wasnt some other issue at hand. You need to isolate the 
problem down first and be certain of the exact inputs.

Will hopefully touch base later with my results.

Craig.

Shawn Elliott wrote:
> I too have had problems with the regular expression not picking up
> matches.  I have closely inspected the response page and it should have
> picked it up.  Though I have not logged it out to a file to see exactly
> what it is picking up. (Will do that today)
> 
> Another piece of information is that the regular expression seems to not
> match correctly at a higher rate when I have a single thread that is
> looping, opposed to multiple threads not looping.
> 
> Furthermore I have 4 thread groups each running a regular expression...
> 
> Example
> Thread Grp 1: NumofThreads=1, Loop=10
> Thread Grp 2: NumofThreads=1, Loop=10
> Thread Grp 3: NumofThreads=1, Loop=10
> Thread Grp 4: NumofThreads=1, Loop=10
> 
> Results in the regular expression not matching anything, more than the
> following scenario
> 
> Thread Grp 1: NumofThreads=10, Loop=1
> Thread Grp 2: NumofThreads=10, Loop=1
> Thread Grp 3: NumofThreads=10, Loop=1
> Thread Grp 4: NumofThreads=10, Loop=1
> 
> ....  writing this email just made me think of something...
> Each regular expression is saving its result to a variable defined in
> the 'User Parameters'  is this parameter shared between all the
> threads??  There for the expression is just over writing the other
> threads value??
> 
> 
> -shawn
> 
> -----Original Message-----
> From: Craig Palmer [mailto:craigp@peace.com] 
> Sent: Wednesday, February 04, 2004 11:47 AM
> To: JMeter Users List
> Subject: Re: JMeter from time to time doesn't calculate regular
> expressions for some threads
> 
> It is very difficult to diagnose what appears to be a transient issue, 
> let alone fix it. I think I can guarantee that Jmeter does NOT have a 
> setting/configuration that introduces random problems to occur at 
> random times.
> 
> In every case that I have found the regular expression not working, I 
> have looked carefully at the content and found my mistake every time. 
> I would bet that it isnt finding a match because there is no match.
> 
> What you need to do is put a 'View Results Tree' on the http sampler 
> that you want to match the regular expression and run the test cycle. 
> When the "mis-match" occurs (the listener will keep a full history of 
> all the pages fetched"), copy the Result Data to a file and then run 
> the exact same regular expression over it using Perl 5.003. The same 
> thing should happen.
> 
> If the regular expression works in Perl, then there is cause to 
> investigate to the next level. If it doesnt, then either the page 
> content is not what you are expecting, or you need to revise your 
> regular expression.
> 
> BTW, I say Perl 5.003 becuase this is the equivalent regular 
> expression engine that Jmeter uses. If you are not too familiar with 
> Perl, then here is an example program to give you a jump start 
> assuming that you saved the page content as "page.html":
> 
> #!/usr/bin/perl
> 
> # open file for reading
> open(IN, "page.html") || die "unable to open file";
> 
> # Run through each line looking to match the regular expression
> # Note that if you use brackets (), the the results will be found
> # in $1, $2 etc. E.g. $Line =~ /contentId=(\d+)/ then you could
> # write in the if statement $contentId = $1;
> while($Line = <IN>) {
>    if($Line =~ /<reg exp here>/) {
>      print "Found Match!";
> }
> 
> close(IN);
> 
> 
> 
> Vladimir Tsygankov wrote:
> 
>>Hello, friends!
>>We noticed that JMeter from time to time doesn't calculate regular
>>expressions in requests for some threads (our test has 20 threads). 
>>As a result we receive Exceptions from the server instead of correct
>>responses. We tried almost everything: increasing of Ramp-Up period,
>>time delay between requests, priority of java etc. It doesn't help.
>>We'd like to have a guarantee that a regular expression has been
>>calculated before a request is sent.
>> Is there any settings for JMeter or for script to fix the problem?
>>Thanks in advance,
>>Vladimir
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>>
>>
> 
> 
> 


-- 
Craig Palmer                    Mobile NZ: +64 21 755 254
Peace Software                  URL: http://www.peace.com
                                 Email: craig.palmer@peace.com


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Jordi Salvat i Alabart <js...@atg.com>.
Reproduced it. I'm working on fixing it. Looks like I introduced this 
one not long ago.

-- 
Salut,

Jordi.

Shawn Elliott wrote:
> A: Yes downloaded bin and lib 
> A: Double check the environment vars and they are correct.
> 
> Note:  I only get this error when running a remote test.  If I run a
> stand alone test I do not see the exception.  Again, I was able to run
> the remote test with out issue with 02032004 build...
> 
> -shawn
> 
> -----Original Message-----
> From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
> Sent: Tuesday, February 10, 2004 2:38 AM
> To: JMeter Users List
> Subject: Re: JMeter from time to time doesn't calculate regular
> expressions for some threads
> 
> Strange.
> 
> I just downloaded it (jakarta-jmeter-20040209) and tried: it works well 
> both with jdk 1.3.1_07 and 1.4.2_02 (on Debian Unstable, but I don't 
> believe this matters to this issue).
> 
> Q: Did you also download the libraries? If you didn't, try it: Some of 
> those in JMeter 1.9.1 may be obsolete, I can't be sure.
> 
> Q: Is there anything in the CLASSPATH environment variable before you 
> start JMeter? In particular: is any version of the ORO libraries listed 
> there?
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Shawn Elliott <sh...@gotocme.com>.
Thank you, will pick up tonight's build and give it a whirl.

-----Original Message-----
From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
Sent: Tuesday, February 10, 2004 3:17 PM
To: JMeter Users List
Subject: Re: JMeter from time to time doesn't calculate regular
expressions for some threads

This is fixed now. HTTPSampler now works in remote mode.

My apologies for not having tested that case.

-- 
Salut,

Jordi.

Shawn Elliott wrote:
> A: Yes downloaded bin and lib 
> A: Double check the environment vars and they are correct.
> 
> Note:  I only get this error when running a remote test.  If I run a
> stand alone test I do not see the exception.  Again, I was able to run
> the remote test with out issue with 02032004 build...
> 
> -shawn
> 
> -----Original Message-----
> From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
> Sent: Tuesday, February 10, 2004 2:38 AM
> To: JMeter Users List
> Subject: Re: JMeter from time to time doesn't calculate regular
> expressions for some threads
> 
> Strange.
> 
> I just downloaded it (jakarta-jmeter-20040209) and tried: it works
well 
> both with jdk 1.3.1_07 and 1.4.2_02 (on Debian Unstable, but I don't 
> believe this matters to this issue).
> 
> Q: Did you also download the libraries? If you didn't, try it: Some of

> those in JMeter 1.9.1 may be obsolete, I can't be sure.
> 
> Q: Is there anything in the CLASSPATH environment variable before you 
> start JMeter? In particular: is any version of the ORO libraries
listed 
> there?
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Jordi Salvat i Alabart <js...@atg.com>.
Hi Shawn,

did my version or the nightly build solve this issue? Did you get past 
this roadblock? I want to make sure this issue is completely cleared 
before we do the next release -- which should be pretty soon.

-- 
Salut,

Jordi.

Jordi Salvat i Alabart wrote:
> Looks like I made the change too late for Gump to pick it up for this 
> build. You'll have to build from CVS or wait until tomorrow... or 
> download the build I just made from:
> 
> http://pc-casa.ath.cx/outgoing/
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Jordi Salvat i Alabart <js...@atg.com>.
Looks like I made the change too late for Gump to pick it up for this 
build. You'll have to build from CVS or wait until tomorrow... or 
download the build I just made from:

http://pc-casa.ath.cx/outgoing/

-- 
Salut,

Jordi.

Shawn Elliott wrote:
> I still get the same exception with the 02102004 build...
> 
> 
>>java.lang.NullPointerException
>>        at org.apache.oro.text.regex.Perl5Matcher.contains(Unknown
>>Source)
>>        at org.apache.oro.text.regex.Util.substitute(Unknown Source)
>>        at org.apache.oro.text.regex.Util.substitute(Unknown Source)
>>        at 
>>org.apache.jmeter.protocol.http.sampler.HTTPSampler.encodeSpaces(HTTP
>>Sampler.java:308)
>>        at 
>>org.apache.jmeter.protocol.http.sampler.HTTPSampler.setEncodedPath(HT
>>TPSampler.java:300)
>>        at 
>>org.apache.jmeter.protocol.http.sampler.HTTPSampler.setProperty(HTTPS
>>ampler.java:328)
>>        at 
>>org.apache.jmeter.engine.util.ValueReplacer.setProperties(ValueReplac
>>er.java:120)
>>        at 
>>org.apache.jmeter.engine.util.ValueReplacer.replaceValues(ValueReplac
>>er.java:111)
>>        at
>>org.apache.jmeter.engine.PreCompiler.addNode(PreCompiler.java:102)
>>        at 
>>org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:10
>>34)
>>        at 
>>org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:10
>>35)
>>        at
>>org.apache.jorphan.collections.HashTree.traverse(HashTree.java:1020)
>>        at 
>>org.apache.jmeter.engine.StandardJMeterEngine.compileTree(StandardJMe
>>terEngine.java:132)
>>        at 
>>org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngin
>>e.java:278)
>>        at java.lang.Thread.run(Thread.java:536)
> 
> 
> -----Original Message-----
> From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
> Sent: Tuesday, February 10, 2004 3:17 PM
> To: JMeter Users List
> Subject: Re: JMeter from time to time doesn't calculate regular
> expressions for some threads
> 
> This is fixed now. HTTPSampler now works in remote mode.
> 
> My apologies for not having tested that case.
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Shawn Elliott <sh...@gotocme.com>.
I still get the same exception with the 02102004 build...

> java.lang.NullPointerException
>         at org.apache.oro.text.regex.Perl5Matcher.contains(Unknown
> Source)
>         at org.apache.oro.text.regex.Util.substitute(Unknown Source)
>         at org.apache.oro.text.regex.Util.substitute(Unknown Source)
>         at 
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.encodeSpaces(HTTP
> Sampler.java:308)
>         at 
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.setEncodedPath(HT
> TPSampler.java:300)
>         at 
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.setProperty(HTTPS
> ampler.java:328)
>         at 
> org.apache.jmeter.engine.util.ValueReplacer.setProperties(ValueReplac
> er.java:120)
>         at 
> org.apache.jmeter.engine.util.ValueReplacer.replaceValues(ValueReplac
> er.java:111)
>         at
> org.apache.jmeter.engine.PreCompiler.addNode(PreCompiler.java:102)
>         at 
> org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:10
> 34)
>         at 
> org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:10
> 35)
>         at
> org.apache.jorphan.collections.HashTree.traverse(HashTree.java:1020)
>         at 
> org.apache.jmeter.engine.StandardJMeterEngine.compileTree(StandardJMe
> terEngine.java:132)
>         at 
> org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngin
> e.java:278)
>         at java.lang.Thread.run(Thread.java:536)

-----Original Message-----
From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
Sent: Tuesday, February 10, 2004 3:17 PM
To: JMeter Users List
Subject: Re: JMeter from time to time doesn't calculate regular
expressions for some threads

This is fixed now. HTTPSampler now works in remote mode.

My apologies for not having tested that case.

-- 
Salut,

Jordi.

Shawn Elliott wrote:
> A: Yes downloaded bin and lib 
> A: Double check the environment vars and they are correct.
> 
> Note:  I only get this error when running a remote test.  If I run a
> stand alone test I do not see the exception.  Again, I was able to run
> the remote test with out issue with 02032004 build...
> 
> -shawn
> 
> -----Original Message-----
> From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
> Sent: Tuesday, February 10, 2004 2:38 AM
> To: JMeter Users List
> Subject: Re: JMeter from time to time doesn't calculate regular
> expressions for some threads
> 
> Strange.
> 
> I just downloaded it (jakarta-jmeter-20040209) and tried: it works
well 
> both with jdk 1.3.1_07 and 1.4.2_02 (on Debian Unstable, but I don't 
> believe this matters to this issue).
> 
> Q: Did you also download the libraries? If you didn't, try it: Some of

> those in JMeter 1.9.1 may be obsolete, I can't be sure.
> 
> Q: Is there anything in the CLASSPATH environment variable before you 
> start JMeter? In particular: is any version of the ORO libraries
listed 
> there?
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Jordi Salvat i Alabart <js...@atg.com>.
This is fixed now. HTTPSampler now works in remote mode.

My apologies for not having tested that case.

-- 
Salut,

Jordi.

Shawn Elliott wrote:
> A: Yes downloaded bin and lib 
> A: Double check the environment vars and they are correct.
> 
> Note:  I only get this error when running a remote test.  If I run a
> stand alone test I do not see the exception.  Again, I was able to run
> the remote test with out issue with 02032004 build...
> 
> -shawn
> 
> -----Original Message-----
> From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
> Sent: Tuesday, February 10, 2004 2:38 AM
> To: JMeter Users List
> Subject: Re: JMeter from time to time doesn't calculate regular
> expressions for some threads
> 
> Strange.
> 
> I just downloaded it (jakarta-jmeter-20040209) and tried: it works well 
> both with jdk 1.3.1_07 and 1.4.2_02 (on Debian Unstable, but I don't 
> believe this matters to this issue).
> 
> Q: Did you also download the libraries? If you didn't, try it: Some of 
> those in JMeter 1.9.1 may be obsolete, I can't be sure.
> 
> Q: Is there anything in the CLASSPATH environment variable before you 
> start JMeter? In particular: is any version of the ORO libraries listed 
> there?
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Shawn Elliott <sh...@gotocme.com>.
Now that I think about it, I know I changed the environment variables,
but may not have restarted the rmiregistry window... let me test this
tonight and double check this.

Thanks
Shawn

-----Original Message-----
From: Shawn Elliott [mailto:shawn.elliott@gotocme.com] 
Sent: Tuesday, February 10, 2004 10:37 AM
To: 'JMeter Users List'
Subject: RE: JMeter from time to time doesn't calculate regular
expressions for some threads

A: Yes downloaded bin and lib 
A: Double check the environment vars and they are correct.

Note:  I only get this error when running a remote test.  If I run a
stand alone test I do not see the exception.  Again, I was able to run
the remote test with out issue with 02032004 build...

-shawn

-----Original Message-----
From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
Sent: Tuesday, February 10, 2004 2:38 AM
To: JMeter Users List
Subject: Re: JMeter from time to time doesn't calculate regular
expressions for some threads

Strange.

I just downloaded it (jakarta-jmeter-20040209) and tried: it works well 
both with jdk 1.3.1_07 and 1.4.2_02 (on Debian Unstable, but I don't 
believe this matters to this issue).

Q: Did you also download the libraries? If you didn't, try it: Some of 
those in JMeter 1.9.1 may be obsolete, I can't be sure.

Q: Is there anything in the CLASSPATH environment variable before you 
start JMeter? In particular: is any version of the ORO libraries listed 
there?

-- 
Salut,

Jordi.

Shawn Elliott wrote:
> I just downloaded the nightly build and receive this exception when
> attempting to start my test....
> 
> 
> java.lang.NullPointerException
>         at org.apache.oro.text.regex.Perl5Matcher.contains(Unknown
> Source)
>         at org.apache.oro.text.regex.Util.substitute(Unknown Source)
>         at org.apache.oro.text.regex.Util.substitute(Unknown Source)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.encodeSpaces(HTTP
> Sampler.java:308)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.setEncodedPath(HT
> TPSampler.java:300)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.setProperty(HTTPS
> ampler.java:328)
>         at
> org.apache.jmeter.engine.util.ValueReplacer.setProperties(ValueReplac
> er.java:120)
>         at
> org.apache.jmeter.engine.util.ValueReplacer.replaceValues(ValueReplac
> er.java:111)
>         at
> org.apache.jmeter.engine.PreCompiler.addNode(PreCompiler.java:102)
>         at
> org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:10
> 34)
>         at
> org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:10
> 35)
>         at
> org.apache.jorphan.collections.HashTree.traverse(HashTree.java:1020)
>         at
> org.apache.jmeter.engine.StandardJMeterEngine.compileTree(StandardJMe
> terEngine.java:132)
>         at
> org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngin
> e.java:278)
>         at java.lang.Thread.run(Thread.java:536)
> 
> 
> This does not happen with the build from 02/03/04...
> 
> -shawn
> 
> -----Original Message-----
> From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
> Sent: Monday, February 09, 2004 10:19 AM
> To: JMeter Users List
> Subject: Re: JMeter from time to time doesn't calculate regular
> expressions for some threads
> 
> Just found the bug just by inspection. My apologies: my earlier review

> was incorrect. I'll fix it now. You'll need to download a nightly or 
> (better, given your experience with nightlies) build from CVS. Or, of 
> course, wait for the next release, which should happen sooner than
> later.
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Shawn Elliott <sh...@gotocme.com>.
A: Yes downloaded bin and lib 
A: Double check the environment vars and they are correct.

Note:  I only get this error when running a remote test.  If I run a
stand alone test I do not see the exception.  Again, I was able to run
the remote test with out issue with 02032004 build...

-shawn

-----Original Message-----
From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
Sent: Tuesday, February 10, 2004 2:38 AM
To: JMeter Users List
Subject: Re: JMeter from time to time doesn't calculate regular
expressions for some threads

Strange.

I just downloaded it (jakarta-jmeter-20040209) and tried: it works well 
both with jdk 1.3.1_07 and 1.4.2_02 (on Debian Unstable, but I don't 
believe this matters to this issue).

Q: Did you also download the libraries? If you didn't, try it: Some of 
those in JMeter 1.9.1 may be obsolete, I can't be sure.

Q: Is there anything in the CLASSPATH environment variable before you 
start JMeter? In particular: is any version of the ORO libraries listed 
there?

-- 
Salut,

Jordi.

Shawn Elliott wrote:
> I just downloaded the nightly build and receive this exception when
> attempting to start my test....
> 
> 
> java.lang.NullPointerException
>         at org.apache.oro.text.regex.Perl5Matcher.contains(Unknown
> Source)
>         at org.apache.oro.text.regex.Util.substitute(Unknown Source)
>         at org.apache.oro.text.regex.Util.substitute(Unknown Source)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.encodeSpaces(HTTP
> Sampler.java:308)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.setEncodedPath(HT
> TPSampler.java:300)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.setProperty(HTTPS
> ampler.java:328)
>         at
> org.apache.jmeter.engine.util.ValueReplacer.setProperties(ValueReplac
> er.java:120)
>         at
> org.apache.jmeter.engine.util.ValueReplacer.replaceValues(ValueReplac
> er.java:111)
>         at
> org.apache.jmeter.engine.PreCompiler.addNode(PreCompiler.java:102)
>         at
> org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:10
> 34)
>         at
> org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:10
> 35)
>         at
> org.apache.jorphan.collections.HashTree.traverse(HashTree.java:1020)
>         at
> org.apache.jmeter.engine.StandardJMeterEngine.compileTree(StandardJMe
> terEngine.java:132)
>         at
> org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngin
> e.java:278)
>         at java.lang.Thread.run(Thread.java:536)
> 
> 
> This does not happen with the build from 02/03/04...
> 
> -shawn
> 
> -----Original Message-----
> From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
> Sent: Monday, February 09, 2004 10:19 AM
> To: JMeter Users List
> Subject: Re: JMeter from time to time doesn't calculate regular
> expressions for some threads
> 
> Just found the bug just by inspection. My apologies: my earlier review

> was incorrect. I'll fix it now. You'll need to download a nightly or 
> (better, given your experience with nightlies) build from CVS. Or, of 
> course, wait for the next release, which should happen sooner than
> later.
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Jordi Salvat i Alabart <js...@atg.com>.
Strange.

I just downloaded it (jakarta-jmeter-20040209) and tried: it works well 
both with jdk 1.3.1_07 and 1.4.2_02 (on Debian Unstable, but I don't 
believe this matters to this issue).

Q: Did you also download the libraries? If you didn't, try it: Some of 
those in JMeter 1.9.1 may be obsolete, I can't be sure.

Q: Is there anything in the CLASSPATH environment variable before you 
start JMeter? In particular: is any version of the ORO libraries listed 
there?

-- 
Salut,

Jordi.

Shawn Elliott wrote:
> I just downloaded the nightly build and receive this exception when
> attempting to start my test....
> 
> 
> java.lang.NullPointerException
>         at org.apache.oro.text.regex.Perl5Matcher.contains(Unknown
> Source)
>         at org.apache.oro.text.regex.Util.substitute(Unknown Source)
>         at org.apache.oro.text.regex.Util.substitute(Unknown Source)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.encodeSpaces(HTTP
> Sampler.java:308)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.setEncodedPath(HT
> TPSampler.java:300)
>         at
> org.apache.jmeter.protocol.http.sampler.HTTPSampler.setProperty(HTTPS
> ampler.java:328)
>         at
> org.apache.jmeter.engine.util.ValueReplacer.setProperties(ValueReplac
> er.java:120)
>         at
> org.apache.jmeter.engine.util.ValueReplacer.replaceValues(ValueReplac
> er.java:111)
>         at
> org.apache.jmeter.engine.PreCompiler.addNode(PreCompiler.java:102)
>         at
> org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:10
> 34)
>         at
> org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:10
> 35)
>         at
> org.apache.jorphan.collections.HashTree.traverse(HashTree.java:1020)
>         at
> org.apache.jmeter.engine.StandardJMeterEngine.compileTree(StandardJMe
> terEngine.java:132)
>         at
> org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngin
> e.java:278)
>         at java.lang.Thread.run(Thread.java:536)
> 
> 
> This does not happen with the build from 02/03/04...
> 
> -shawn
> 
> -----Original Message-----
> From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
> Sent: Monday, February 09, 2004 10:19 AM
> To: JMeter Users List
> Subject: Re: JMeter from time to time doesn't calculate regular
> expressions for some threads
> 
> Just found the bug just by inspection. My apologies: my earlier review 
> was incorrect. I'll fix it now. You'll need to download a nightly or 
> (better, given your experience with nightlies) build from CVS. Or, of 
> course, wait for the next release, which should happen sooner than
> later.
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Shawn Elliott <sh...@gotocme.com>.
I just downloaded the nightly build and receive this exception when
attempting to start my test....


java.lang.NullPointerException
        at org.apache.oro.text.regex.Perl5Matcher.contains(Unknown
Source)
        at org.apache.oro.text.regex.Util.substitute(Unknown Source)
        at org.apache.oro.text.regex.Util.substitute(Unknown Source)
        at
org.apache.jmeter.protocol.http.sampler.HTTPSampler.encodeSpaces(HTTP
Sampler.java:308)
        at
org.apache.jmeter.protocol.http.sampler.HTTPSampler.setEncodedPath(HT
TPSampler.java:300)
        at
org.apache.jmeter.protocol.http.sampler.HTTPSampler.setProperty(HTTPS
ampler.java:328)
        at
org.apache.jmeter.engine.util.ValueReplacer.setProperties(ValueReplac
er.java:120)
        at
org.apache.jmeter.engine.util.ValueReplacer.replaceValues(ValueReplac
er.java:111)
        at
org.apache.jmeter.engine.PreCompiler.addNode(PreCompiler.java:102)
        at
org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:10
34)
        at
org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:10
35)
        at
org.apache.jorphan.collections.HashTree.traverse(HashTree.java:1020)
        at
org.apache.jmeter.engine.StandardJMeterEngine.compileTree(StandardJMe
terEngine.java:132)
        at
org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngin
e.java:278)
        at java.lang.Thread.run(Thread.java:536)


This does not happen with the build from 02/03/04...

-shawn

-----Original Message-----
From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com] 
Sent: Monday, February 09, 2004 10:19 AM
To: JMeter Users List
Subject: Re: JMeter from time to time doesn't calculate regular
expressions for some threads

Just found the bug just by inspection. My apologies: my earlier review 
was incorrect. I'll fix it now. You'll need to download a nightly or 
(better, given your experience with nightlies) build from CVS. Or, of 
course, wait for the next release, which should happen sooner than
later.

-- 
Salut,

Jordi.

Vladimir Tsygankov wrote:
> Hello, colleagues,
> I'm returning to the problem of "Regular expression problem for many
> threads".
> Maybe that problem has been already fixed but we could not check that.
> Unfortunately nightly builds don't work for now (they even can't
perform
> any request from my tests) - we tried 4 last builds (02/05/2004 -
> 02/08/2004).
> 
> Therefore we tried to clear out what was the problem under release of
> JMeter 1.9.1 (08/17/2003). 
> As we understand regular expression function is called from JMeter
> program but doesn't find necessary string on correct server page for
> some threads. The most terrible is that happens occasionally (for any
> thread. Sometimes it doesn't happen at all).
> 
> Attached file contains more information about texts of requests and
> answers for them which we copied from JMeter's "View Result Tree"
> element. We saved it for "bad" and "good" thread.
> 
> Could you help us please?
> Thanks in advance,
> Vladimir
> 
> 
>>-----Original Message-----
>>From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com]
>>Sent: Thursday, February 05, 2004 1:05 PM
>>To: JMeter Users List
>>Subject: Re: JMeter from time to time doesn't calculate regular
>>expressions for some threads
>>
>>Hi Shawn.
>>
>>There was a bug (long since fixed) that may cause this effect. Which
>>version are you using? Could you try a nightly build?
>>
>>--
>>Salut,
>>
>>Jordi.
>>
>>En/na Shawn Elliott ha escrit:
>>
>>>I too have had problems with the regular expression not picking up
>>>matches.  I have closely inspected the response page and it should
> 
> have
> 
>>>picked it up.  Though I have not logged it out to a file to see
> 
> exactly
> 
>>>what it is picking up. (Will do that today)
>>>
>>>Another piece of information is that the regular expression seems to
> 
> not
> 
>>>match correctly at a higher rate when I have a single thread that is
>>>looping, opposed to multiple threads not looping.
>>>
>>>Furthermore I have 4 thread groups each running a regular
> 
> expression...
> 
>>>Example
>>>Thread Grp 1: NumofThreads=1, Loop=10
>>>Thread Grp 2: NumofThreads=1, Loop=10
>>>Thread Grp 3: NumofThreads=1, Loop=10
>>>Thread Grp 4: NumofThreads=1, Loop=10
>>>
>>>Results in the regular expression not matching anything, more than
> 
> the
> 
>>>following scenario
>>>
>>>Thread Grp 1: NumofThreads=10, Loop=1
>>>Thread Grp 2: NumofThreads=10, Loop=1
>>>Thread Grp 3: NumofThreads=10, Loop=1
>>>Thread Grp 4: NumofThreads=10, Loop=1
>>>
>>>....  writing this email just made me think of something...
>>>Each regular expression is saving its result to a variable defined
> 
> in
> 
>>>the 'User Parameters'  is this parameter shared between all the
>>>threads??  There for the expression is just over writing the other
>>>threads value??
>>>
>>>
>>>-shawn
>>>
>>>-----Original Message-----
>>>From: Craig Palmer [mailto:craigp@peace.com]
>>>Sent: Wednesday, February 04, 2004 11:47 AM
>>>To: JMeter Users List
>>>Subject: Re: JMeter from time to time doesn't calculate regular
>>>expressions for some threads
>>>
>>>It is very difficult to diagnose what appears to be a transient
> 
> issue,
> 
>>>let alone fix it. I think I can guarantee that Jmeter does NOT have
> 
> a
> 
>>>setting/configuration that introduces random problems to occur at
>>>random times.
>>>
>>>In every case that I have found the regular expression not working,
> 
> I
> 
>>>have looked carefully at the content and found my mistake every
> 
> time.
> 
>>>I would bet that it isnt finding a match because there is no match.
>>>
>>>What you need to do is put a 'View Results Tree' on the http sampler
>>>that you want to match the regular expression and run the test
> 
> cycle.
> 
>>>When the "mis-match" occurs (the listener will keep a full history
> 
> of
> 
>>>all the pages fetched"), copy the Result Data to a file and then run
>>>the exact same regular expression over it using Perl 5.003. The same
>>>thing should happen.
>>>
>>>If the regular expression works in Perl, then there is cause to
>>>investigate to the next level. If it doesnt, then either the page
>>>content is not what you are expecting, or you need to revise your
>>>regular expression.
>>>
>>>BTW, I say Perl 5.003 becuase this is the equivalent regular
>>>expression engine that Jmeter uses. If you are not too familiar with
>>>Perl, then here is an example program to give you a jump start
>>>assuming that you saved the page content as "page.html":
>>>
>>>#!/usr/bin/perl
>>>
>>># open file for reading
>>>open(IN, "page.html") || die "unable to open file";
>>>
>>># Run through each line looking to match the regular expression
>>># Note that if you use brackets (), the the results will be found
>>># in $1, $2 etc. E.g. $Line =~ /contentId=(\d+)/ then you could
>>># write in the if statement $contentId = $1;
>>>while($Line = <IN>) {
>>>   if($Line =~ /<reg exp here>/) {
>>>     print "Found Match!";
>>>}
>>>
>>>close(IN);
>>>
>>>
>>>
>>>Vladimir Tsygankov wrote:
>>>
>>>
>>>>Hello, friends!
>>>>We noticed that JMeter from time to time doesn't calculate regular
>>>>expressions in requests for some threads (our test has 20 threads).
>>>>As a result we receive Exceptions from the server instead of correct
>>>>responses. We tried almost everything: increasing of Ramp-Up period,
>>>>time delay between requests, priority of java etc. It doesn't help.
>>>>We'd like to have a guarantee that a regular expression has been
>>>>calculated before a request is sent.
>>>>Is there any settings for JMeter or for script to fix the problem?
>>>>Thanks in advance,
>>>>Vladimir
>>>>
>>>>
>>
>>>---------------------------------------------------------------------
>>>
>>>>To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>>>>
>>>>
>>>
>>>
>>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> 
> 
> 
> 
>
------------------------------------------------------------------------
> 
>  General information about these test results.
> 
> Test has 20 threads. Regular expression had not been calculated for
"QuestionID" field in 8-th thread only.
> Every thread sent some requests (R1, R2, ..., R13, R14, ...). 
> 
> That file contains the next requests and answers for treads 8
(collectAllMatches.size() = 0) and 9 (collectAllMatches.size() > 0):
> R13, answer for R13 and R14. We copied that requests and answers for
them from JMeter's "View Result Tree" element.
> 
> Regular expressions used in requsts R14 are:
> DuestionID = ${__regexFunction(<INPUT TYPE="HIDDEN" NAME="QuestionID"
value="(.*)">,$1$,1,,,refQuestionID5)}
> ItemSelect = ${refQuestionID5_g1}
> 
> Our opinion: 
> We even inserted debug code in class "RegexFunction" and saw that
method "execute" has been called when it should be 
> but occasionally for some threads it couldn't find nesessary string on
correct html page.
> 
>
************************************************************************
**************
>
************************************************************************
**************
>  Thread #8
>  ID = nDBalr...
>  R13
> 
> http://test.athenium.com/teamthink/rqa1/teamthink
> Query Data:
PageHandler=Home.IMBrokers.EIMBroker&performAction=submitItem&QuestionID
=50&origItemsStored=1&IsProcessData=1&Title=&submitMCMAAnswerAnyway=&ite
mSelect=50&rationaleText=r&messageIDToDelete=&newMessage=c&SessionID=nDB
alrZWDgaD0EMl1o2OYNOrHg2CLJKqoRVXLGCkfJmiqnVpUZFGcRmSnocaUZcqKJBXci
> Cookie Data:
> null
>
************************************************************************
**************
>  Thread #8
>  ID = nDBalr...
>  Answer R13
> 
> HTTP/1.1 200 null
> Date: Fri, 06 Feb 2004 19:45:40 GMT
> Server: Apache/1.3.26 (Unix) Debian GNU/Linux mod_jk/1.1.0 PHP/4.1.2
mod_ssl/2.8.9 OpenSSL/0.9.6g mod_perl/1.26 DAV/1.0.3
> Keep-Alive: timeout=15, max=100
> Connection: Keep-Alive
> Content-Type: text/html; charset=iso-8859-1
> 
> <!-- this template holds all the different ItemMachine Views -->
> 
> <SCRIPT LANGUAGE="JAVASCRIPT">
> 
>                                                      
> 
> var somethingChanged = false;
>                                                      
> function setSomethingChanged(){
> 
>    somethingChanged = true;
> 
> }
> 
> 
> function storeOriginalForm() {
> 
>   document.IMForm.origItemsStored.value = "1";
> }
> 
> 
> function resetAnswer(){
> 
> 
> }
> 
> 
> //this function return true if the user wants the form data to be
processes, otherwise false..
> function determineProcessData() {
> 
> 	if (document.IMForm.origItemsStored.value != "1") {
> 	 	return false;
> 	}
> 	
>    if (somethingChanged) {
>  		var agree=confirm("Click OK to Submit your changes to
this page, or Cancel to forget them.");
> 	} else {
>  		document.IMForm.IsProcessData.value = 0;
>  		return true;
> 	}
> 	if (agree) {
> 		document.IMForm.IsProcessData.value = 1;
> 		return true;
> 	} else {
> 		document.IMForm.IsProcessData.value = 0;
> 		return true;
> 	}
> }
> 
> 
> 
> 
> function submitItem(){
>    
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="submitItem";
>    document.IMForm.submit();
> 
> }
> 
> function selectItem(){
>    if (determineProcessData()){                              
>       document.IMForm.performAction.value="useItemSelect";
>       document.IMForm.submit();
>    }
> }
> 
> 
> function addItem(){
>    document.IMForm.IsProcessData.value = "1";
>    document.IMForm.performAction.value="addItem";
>    document.IMForm.submit();
> }
> 
> 
> function deleteItem(){
> 
>    okToDelete = confirm("Are you sure you want to delete this
question?  This cannot be undone.");
>    if(!okToDelete){
>       return;
>    }
> 
>    document.IMForm.IsProcessData.value = "1";
>    document.IMForm.performAction.value="deleteItem";
>    document.IMForm.submit();
> }
> 
> 
> function addAnswerFoil(){
>    
>    document.IMForm.IsProcessData.value = "1";
>    document.IMForm.performAction.value="addFoil";
>    document.IMForm.submit();
> }
> 
> 
> function changeCat(){
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeCat";
>    document.IMForm.submit();
> }
> 
> 
> function changeClassif(){
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeClassif";
>    document.IMForm.submit();
> }
> 
> function changeQuesType(){
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeQuesType";
>    document.IMForm.submit();
> }
> 
> 
> function deleteFoil(foilToDelete){
>    
>    okToDelete = confirm("Are you sure you want to delete this answer?
This cannot be undone.");
>    if(!okToDelete){
>       return;
>    }
>    
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.foilToDelete.value= foilToDelete;
>    document.IMForm.performAction.value="deleteMCFoil";
>    document.IMForm.submit();
> }
> 
> 
> //unchecks the checked radio button
> function clearAnswers(){
>    
>    for(i=0; i < document.IMForm.MCFoil.length; i++){
>       if(document.IMForm.MCFoil[i].checked){
>          document.IMForm.MCFoil[i].checked = false;
>       }
>    }
>    setSomethingChanged();
> }
> 
> 
> function useFeedbackClicked(){
>    
>    var okToToggle = true;
> 
>    if(!document.IMForm.useFeedback.checked){
>       okToToggle =confirm("If you chose not to use the feedback text,
the feedback texts will be deleted.  This cannot be undone.  Are you
sure you want to do this?");
>    }
> 
>    if(okToToggle){
>       document.IMForm.IsProcessData.value = 1;
>       document.IMForm.performAction.value="toggleUseFeedback";
>       document.IMForm.submit();
>    }else{
>       //return checkbox to its original state
>       document.IMForm.useFeedback.checked = true;
>       return;
>    }
> 
> }
> 
> function clearNACheck(){
>    //do nada
> }
> 
> 
> </script>
> 
> 
> 
> <script>
> var headerTitle = "Author Answers";
> if (parent.header != null && parent.header.updateBannerText != null)
parent.header.updateBannerText(headerTitle);
> 
> 
> function changeRuleShow(){
> 
>    //we still want to process and changed form stuff, so process the
data      
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeRuleShow";
>    document.IMForm.submit();
> }
> 
> function changeTypeRuleShow(whichRuleType){
> 
>    //we still want to process and changed form stuff, so process the
data      
>    document.IMForm.IsProcessData.value = 1;
> 
>    var performActionString;
> 
>    if (whichRuleType == 0) {
>       performActionString = "changeQuestionRuleShow";
>    } else if (whichRuleType == 1) {
>       performActionString = "changeTaxonomyRuleShow";
>    }if (whichRuleType == 2) {
>       performActionString = "changeQuestionSetRuleShow";
>    }
> 
>    document.IMForm.performAction.value=performActionString;
>    document.IMForm.submit();
> }
> 
> function okToNav(){
> 
>  if(somethingChanged != null && somethingChanged){
>   okToNav = confirm("If you would like to save your changes click
\'cancel\' and submit.  Otherwise, click \'OK\' to return without saving
your changes");
> 
>   if(okToNav){
> 	return true;
>   }else{
> 	return false;
>   }
>  }else{
>   return true;
>  }
> 		
> }
> 
> 
> //used for rapid random question filling in for QA purposes.  Will
call the method QAfillInQuestionFields() that is written for each
question type
> //fill in the mesage field and submit.
> 
> function fillInQA(){
> 
>    if(usingQAFillIn  != null){
>       QAfillInQuestionFields();
>    }
> 
> 	if(document.IMForm.newMessage != null){
> 		document.IMForm.newMessage.value = "THis is a QA comment
for question 4";
> 	}
>     
> 	submitItem();
> }
> 
> 
> function getRandom(min,max)
> {
>    return (Math.round(Math.random()*(max-min)))+min;
> }
> 
> function flipDV(version) {
>   document.IMForm.FlipDV.value=version;
>   document.IMForm.submit();
> }
> 
> </script>
> 
> 
> 
> <body bgcolor="#FFFFFF"  onLoad="storeOriginalForm();" LINK="BLUE"
VLINK="BLUE" ALINK="BLUE" >
> 
> <form name="IMForm"
ACTION="/teamthink/rqa1/teamthink?SessionID=nDBalrZWDgaD0EMl1o2OYNOrHg2C
LJKqoRVXLGCkfJmiqnVpUZFGcRmSnocaUZcqKJBXci" METHOD="POST"  ONSUBMIT="if
(this.submitted) return true; else return false;">
> 	<input type=hidden name="SessionID"
value="nDBalrZWDgaD0EMl1o2OYNOrHg2CLJKqoRVXLGCkfJmiqnVpUZFGcRmSnocaUZcqK
JBXci"> <input type="hidden" name="PageHandler"
value="Home.IMBrokers.EIMBroker">
> 
> 	<INPUT TYPE="HIDDEN" NAME="performAction" value="">
> 	<INPUT TYPE="HIDDEN" NAME="QuestionID" value="49">
> 	<INPUT TYPE="HIDDEN" NAME="origItemsStored" value="0">
> 	<INPUT TYPE="HIDDEN" NAME="IsProcessData" value="0">
> 	<INPUT TYPE="HIDDEN" NAME="Title" value="">
> 	<INPUT TYPE="HIDDEN" NAME="FlipDV" value="">
>    
>     
> 	<A href="javascript:fillInQA();"><IMG
SRC="/teamthink/rqa1/images/clearpixel.gif" BORDER="0" WIDTH="10"
HEIGHT="10"></A>
>     	 
> 	<center>
> 		<BR>
> 
> 		
> 
> 		<table border="0" width="650" cellspacing="0"
cellpadding="0" >
> 			<tr>
> 				<td><script>
> 
> var windowReference;
> function openViewResponsePopup(){
>    windowReference =
window.open('/teamthink/rqa1/teamthink?SessionID=nDBalrZWDgaD0EMl1o2OYNO
rHg2CLJKqoRVXLGCkfJmiqnVpUZFGcRmSnocaUZcqKJBXci&PageHandler=Home.IMBroke
rs.UserResponsesQuestionBroker&QuestionID=49', 'ViewUserResponses',
'resizable=yes,scrollbars=yes,height=400,width=650');
>    if (!windowReference.opener){
>        windowReference.opener = self;
>    }
> }
> 
> 
> </script>
> <TABLE border="0" cellSpacing="0" width="100%" cellpadding="3">
>      <TR>
>         <td valign="middle" align="left" >
>             <font face="Arial"><b><font size="2">Question:</font></b>
>             <SELECT NAME="itemSelect" ONCHANGE="selectItem()"><option
value="52" >1 *</option>
> <option value="51" >2</option>
> <option value="50" >3</option>
> <option value="49"  selected >4 *</option>
> <option value="48" >5 *</option>
> <option value="47" >6 *</option>
> <option value="46" >7 *</option>
> <option value="45" >8 *</option>
> <option value="44" >9 *</option>
> <option value="43" >10 *</option>
> <option value="42" >11 *</option>
> <option value="41" >12 *</option>
> <option value="40" >13 *</option>
> <option value="39" >14 *</option>
> <option value="38" >15 *</option>
> <option value="37" >16 *</option>
> <option value="36" >17 *</option>
> <option value="35" >18 *</option>
> <option value="34" >19 *</option>
> </SELECT>
>             </font>
>             </td>
>         <td align="right" >&nbsp;<FONT
>         face="Arial"><SMALL><STRONG>Type:</STRONG>
>         MC   </SMALL></FONT></td>
> <TD align="center"  WIDTH="33%" >
> 		
> 			
>             <font face="Arial"> <SMALL><A href="#"
onClick="openViewResponsePopup()">Team Response</A> </SMALL></font>
> 			
> 			
> 			&nbsp;
> 			
> 
> 			</font></td>
> 			
>     </tr>
> </table>
> 
> </td>
> 			</tr>
> 			<TR>
> 				<td>
> 					<table border="0"
cellSpacing="0" width="100%" cellpadding="3" >
> 
> 						<TR>
>     <TD>
>         <TABLE BORDER="0" CELLSPACING="0" WIDTH="100%">
>            
>             <TR>
>     <TD>
>         <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
>             <tr>
>                 <td width="21" bgcolor="#E1E0C2" >&nbsp;</td>
>                 <td  bgcolor="#E1E0C2" WIDTH="100%" ><font
face="Arial" size="3">MC</font></td>
>             </tr>
>         </TABLE>
>     </TD>
> </TR>
> 
> 
>             <TR>
>   <TD> 
>          <INPUT TYPE="HIDDEN" NAME="foilToDelete" value="">
>        <table border="0" cellspacing="2" cellpadding="0"  width="100%"
bgcolor="#FFFFFF">
>            
>            <TR bgcolor="#E1E0C2" >
>     <TD COLSPAN="3" >
>         <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
>             <TR>
>                 <TD align="LEFT">
> 					<font face="Arial"
><SMALL><STRONG>&nbsp; &nbsp; &nbsp; Select Answer </STRONG></font></TD>
>                           
> 						  </TR>
>         </TABLE>
> 		</TD>
> </TR>
> 
> 
> 
>              
> 		   <tr BGCOLOR="#E1E1E1">
>     <td width="21" ><font face="Arial" size="2">&nbsp;A)</font></td>
>     <td width="591"><font face="Arial" size="2">a</font></td>
>     <td width="22" align="middle"  height="18">
>         <INPUT VALUE="A" NAME="MCFoil" TYPE="radio"
ONCLICK="clearNACheck(); setSomethingChanged()" >
>     </td>
> </tr>
> 
>   
> 
> <tr BGCOLOR="#FFFFFF">
>     <td width="21" ><font face="Arial" size="2">&nbsp;B)</font></td>
>     <td width="591"><font face="Arial" size="2">b</font></td>
>     <td width="22" align="middle"  height="18">
>         <INPUT VALUE="B" NAME="MCFoil" TYPE="radio"
ONCLICK="clearNACheck(); setSomethingChanged()" >
>     </td>
> </tr>
> 
>   
> 
> <tr>
>     <td colspan="2" ALIGN="CENTER">
> 							 
> 	
> 	</td>
>     
>     <td   align="center" >
> 	
>         <font size="1" face="Arial"> <A
href="javascript:clearAnswers(); ">clear</A></font>
>     
> 	
> 	
> 	</td>
> </tr>
> 
> 
> 						 
> 		 </table>
>    </TD>
> </TR>
> 
> 
>             
> <TR bgcolor="#E1E0C2" >
>     <TD><font face="Arial" ><SMALL><STRONG>&nbsp; &nbsp; &nbsp;  Enter
Rationale: 
>     </STRONG> <small>(optional)</SMALL></SMALL></font></TD>
> 
> </TR>
> 
> <TR>
>     <TD vAlign="top" ALIGN="CENTER">
>         <table border="0" cellSpacing="0" width="100%" cellpadding="0"
bgcolor="#FFFFFF">
>             <tr>
>                 <td width="100%" ALIGN="CENTER"><TEXTAREA
NAME="rationaleText"cols="60" rows= "3" WRAP="VIRTUAL"
ONCHANGE="setSomethingChanged()" style="width: 100%;"></TEXTAREA>
>                 <td>
>             </tr>
>         </table>
>     </TD>
> </TR>
> 
>             
> 			
> 			
> 
>         </TABLE>
> 
>     </TD>
> </TR>
> 
> 
> 						
>

> 						
> 
> 						
>

> 						
> 						
> 						
> <TR>
> 	<TD>
> 
> 		<table width="100%">
> 			<script language="JavaScript">
>             <!--
>             var windowReference;
> 
>             function openPopup(messageID) {
>                windowReference =
window.open('/teamthink/rqa1/teamthink?SessionID=nDBalrZWDgaD0EMl1o2OYNO
rHg2CLJKqoRVXLGCkfJmiqnVpUZFGcRmSnocaUZcqKJBXci&PageHandler=MessageEdito
r&messageID='+ messageID, 'messageEditor',
'height=300,width=600,resizable=yes');
>                if (!windowReference.opener)
>                   windowReference.opener = self;
>             }
>             //-->
> 			</script>
> 
> 
> 			<INPUT TYPE="hidden" NAME="messageIDToDelete"
value="">
> 
> 			
> 
> 			 
> 			
> 		</table>
> 
> 	</TD>
> </TR>
> <TR>
> 	<TD>
> 		<table width="100%">
> 			<tr width="100%">
> 				<td bgcolor="#E1E0C2" width="100%"><font
face="arial"><STRONG><SMALL> &nbsp; &nbsp;&nbsp;  Add a
Comment:</SMALL></STRONG> </FONT></td>
> 			</tr>
> 			<tr>
> 				<td ALIGN="CENTER"><textarea cols="60"
rows="3" name="newMessage" WRAP="VIRTUAL" style="width: 100%;"
ONCHANGE="setSomethingChanged();" TABINDEX="1000"></textarea></td>
> 			</tr>
> 		</table>
> 
> 	</TD>
> </TR>
> 
> 
> 						
> <tr>
>     <td  ALIGN="RIGHT">
> 		 
> 	    
> 		
> 		<input name="IMSubmitButton" type="button"
value="Submit" onclick="submitItem();" TABINDEX="2000">
> 		 
> 		 
> 	  
> 	   
>   							
>        
> 	
> 
>  <br>
>     </td>
>    
> </tr>
> 
> 
> 
> 					</table>
> 				</td>

> 			</tr>
> 		</table>
> 	</CENTER>
> </form>
> </BODY>
>
************************************************************************
**************
>  Thread #8
>  R14
>  ID = NDBalr...
> 
>  !!! Incorrect request (regular expressions have not been calculated
for "QuestionID")
> 
> http://test.athenium.com/teamthink/rqa1/teamthink
> Query Data:
PageHandler=Home.IMBrokers.EIMBroker&performAction=submitItem&QuestionID
=&origItemsStored=1&IsProcessData=1&Title=&submitMCMAAnswerAnyway=&itemS
elect=${refQuestionID5_g1}&foilToDelete=&MCFoil=A&rationaleText=r&messag
eIDToDelete=&newMessage=c&SessionID=nDBalrZWDgaD0EMl1o2OYNOrHg2CLJKqoRVX
LGCkfJmiqnVpUZFGcRmSnocaUZcqKJBXci
> Cookie Data:
> null
> 
>
************************************************************************
**************
>  Thread #9
>  Correct request:
>  R13
>  ID = kWO2...
> 
> http://test.athenium.com/teamthink/rqa1/teamthink
> Query Data:
PageHandler=Home.IMBrokers.EIMBroker&performAction=submitItem&QuestionID
=50&origItemsStored=1&IsProcessData=1&Title=&submitMCMAAnswerAnyway=&ite
mSelect=50&rationaleText=r&messageIDToDelete=&newMessage=c&SessionID=kWO
2YEOgF1VQMRUkH2rRJK2eJ2CYGVhFWaZHZVji0mREQIA0WOmZMXXUScA
> Cookie Data:
> null
> 
>
************************************************************************
**************
>  Thread #9
>  Answer R13:
> 
> HTTP/1.1 200 null
> Date: Fri, 06 Feb 2004 19:45:51 GMT
> Server: Apache/1.3.26 (Unix) Debian GNU/Linux mod_jk/1.1.0 PHP/4.1.2
mod_ssl/2.8.9 OpenSSL/0.9.6g mod_perl/1.26 DAV/1.0.3
> Keep-Alive: timeout=15, max=79
> Connection: Keep-Alive
> Content-Type: text/html; charset=iso-8859-1
> 
> <!-- this template holds all the different ItemMachine Views -->
> 
> <SCRIPT LANGUAGE="JAVASCRIPT">
> 
>                                                      
> 
> var somethingChanged = false;
>                                                      
> function setSomethingChanged(){
> 
>    somethingChanged = true;
> 
> }
> 
> 
> function storeOriginalForm() {
> 
>   document.IMForm.origItemsStored.value = "1";
> }
> 
> 
> function resetAnswer(){
> 
> 
> }
> 
> 
> //this function return true if the user wants the form data to be
processes, otherwise false..
> function determineProcessData() {
> 
> 	if (document.IMForm.origItemsStored.value != "1") {
> 	 	return false;
> 	}
> 	
>    if (somethingChanged) {
>  		var agree=confirm("Click OK to Submit your changes to
this page, or Cancel to forget them.");
> 	} else {
>  		document.IMForm.IsProcessData.value = 0;
>  		return true;
> 	}
> 	if (agree) {
> 		document.IMForm.IsProcessData.value = 1;
> 		return true;
> 	} else {
> 		document.IMForm.IsProcessData.value = 0;
> 		return true;
> 	}
> }
> 
> 
> 
> 
> function submitItem(){
>    
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="submitItem";
>    document.IMForm.submit();
> 
> }
> 
> function selectItem(){
>    if (determineProcessData()){                              
>       document.IMForm.performAction.value="useItemSelect";
>       document.IMForm.submit();
>    }
> }
> 
> 
> function addItem(){
>    document.IMForm.IsProcessData.value = "1";
>    document.IMForm.performAction.value="addItem";
>    document.IMForm.submit();
> }
> 
> 
> function deleteItem(){
> 
>    okToDelete = confirm("Are you sure you want to delete this
question?  This cannot be undone.");
>    if(!okToDelete){
>       return;
>    }
> 
>    document.IMForm.IsProcessData.value = "1";
>    document.IMForm.performAction.value="deleteItem";
>    document.IMForm.submit();
> }
> 
> 
> function addAnswerFoil(){
>    
>    document.IMForm.IsProcessData.value = "1";
>    document.IMForm.performAction.value="addFoil";
>    document.IMForm.submit();
> }
> 
> 
> function changeCat(){
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeCat";
>    document.IMForm.submit();
> }
> 
> 
> function changeClassif(){
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeClassif";
>    document.IMForm.submit();
> }
> 
> function changeQuesType(){
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeQuesType";
>    document.IMForm.submit();
> }
> 
> 
> function deleteFoil(foilToDelete){
>    
>    okToDelete = confirm("Are you sure you want to delete this answer?
This cannot be undone.");
>    if(!okToDelete){
>       return;
>    }
>    
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.foilToDelete.value= foilToDelete;
>    document.IMForm.performAction.value="deleteMCFoil";
>    document.IMForm.submit();
> }
> 
> 
> //unchecks the checked radio button
> function clearAnswers(){
>    
>    for(i=0; i < document.IMForm.MCFoil.length; i++){
>       if(document.IMForm.MCFoil[i].checked){
>          document.IMForm.MCFoil[i].checked = false;
>       }
>    }
>    setSomethingChanged();
> }
> 
> 
> function useFeedbackClicked(){
>    
>    var okToToggle = true;
> 
>    if(!document.IMForm.useFeedback.checked){
>       okToToggle =confirm("If you chose not to use the feedback text,
the feedback texts will be deleted.  This cannot be undone.  Are you
sure you want to do this?");
>    }
> 
>    if(okToToggle){
>       document.IMForm.IsProcessData.value = 1;
>       document.IMForm.performAction.value="toggleUseFeedback";
>       document.IMForm.submit();
>    }else{
>       //return checkbox to its original state
>       document.IMForm.useFeedback.checked = true;
>       return;
>    }
> 
> }
> 
> function clearNACheck(){
>    //do nada
> }
> 
> 
> </script>
> 
> 
> 
> <script>
> var headerTitle = "Author Answers";
> if (parent.header != null && parent.header.updateBannerText != null)
parent.header.updateBannerText(headerTitle);
> 
> 
> function changeRuleShow(){
> 
>    //we still want to process and changed form stuff, so process the
data      
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeRuleShow";
>    document.IMForm.submit();
> }
> 
> function changeTypeRuleShow(whichRuleType){
> 
>    //we still want to process and changed form stuff, so process the
data      
>    document.IMForm.IsProcessData.value = 1;
> 
>    var performActionString;
> 
>    if (whichRuleType == 0) {
>       performActionString = "changeQuestionRuleShow";
>    } else if (whichRuleType == 1) {
>       performActionString = "changeTaxonomyRuleShow";
>    }if (whichRuleType == 2) {
>       performActionString = "changeQuestionSetRuleShow";
>    }
> 
>    document.IMForm.performAction.value=performActionString;
>    document.IMForm.submit();
> }
> 
> function okToNav(){
> 
>  if(somethingChanged != null && somethingChanged){
>   okToNav = confirm("If you would like to save your changes click
\'cancel\' and submit.  Otherwise, click \'OK\' to return without saving
your changes");
> 
>   if(okToNav){
> 	return true;
>   }else{
> 	return false;
>   }
>  }else{
>   return true;
>  }
> 		
> }
> 
> 
> //used for rapid random question filling in for QA purposes.  Will
call the method QAfillInQuestionFields() that is written for each
question type
> //fill in the mesage field and submit.
> 
> function fillInQA(){
> 
>    if(usingQAFillIn  != null){
>       QAfillInQuestionFields();
>    }
> 
> 	if(document.IMForm.newMessage != null){
> 		document.IMForm.newMessage.value = "THis is a QA comment
for question 4";
> 	}
>     
> 	submitItem();
> }
> 
> 
> function getRandom(min,max)
> {
>    return (Math.round(Math.random()*(max-min)))+min;
> }
> 
> function flipDV(version) {
>   document.IMForm.FlipDV.value=version;
>   document.IMForm.submit();
> }
> 
> </script>
> 
> 
> 
> <body bgcolor="#FFFFFF"  onLoad="storeOriginalForm();" LINK="BLUE"
VLINK="BLUE" ALINK="BLUE" >
> 
> <form name="IMForm"
ACTION="/teamthink/rqa1/teamthink?SessionID=kWO2YEOgF1VQMRUkH2rRJK2eJ2CY
GVhFWaZHZVji0mREQIA0WOmZMXXUScA" METHOD="POST"  ONSUBMIT="if
(this.submitted) return true; else return false;">
> 	<input type=hidden name="SessionID"
value="kWO2YEOgF1VQMRUkH2rRJK2eJ2CYGVhFWaZHZVji0mREQIA0WOmZMXXUScA">
<input type="hidden" name="PageHandler"
value="Home.IMBrokers.EIMBroker">
> 
> 	<INPUT TYPE="HIDDEN" NAME="performAction" value="">
> 	<INPUT TYPE="HIDDEN" NAME="QuestionID" value="49">
> 	<INPUT TYPE="HIDDEN" NAME="origItemsStored" value="0">
> 	<INPUT TYPE="HIDDEN" NAME="IsProcessData" value="0">
> 	<INPUT TYPE="HIDDEN" NAME="Title" value="">
> 	<INPUT TYPE="HIDDEN" NAME="FlipDV" value="">
>    
>     
> 	<A href="javascript:fillInQA();"><IMG
SRC="/teamthink/rqa1/images/clearpixel.gif" BORDER="0" WIDTH="10"
HEIGHT="10"></A>
>     	 
> 	<center>
> 		<BR>
> 
> 		
> 
> 		<table border="0" width="650" cellspacing="0"
cellpadding="0" >
> 			<tr>
> 				<td><script>
> 
> var windowReference;
> function openViewResponsePopup(){
>    windowReference =
window.open('/teamthink/rqa1/teamthink?SessionID=kWO2YEOgF1VQMRUkH2rRJK2
eJ2CYGVhFWaZHZVji0mREQIA0WOmZMXXUScA&PageHandler=Home.IMBrokers.UserResp
onsesQuestionBroker&QuestionID=49', 'ViewUserResponses',
'resizable=yes,scrollbars=yes,height=400,width=650');
>    if (!windowReference.opener){
>        windowReference.opener = self;
>    }
> }
> 
> 
> </script>
> <TABLE border="0" cellSpacing="0" width="100%" cellpadding="3">
>      <TR>
>         <td valign="middle" align="left" >
>             <font face="Arial"><b><font size="2">Question:</font></b>
>             <SELECT NAME="itemSelect" ONCHANGE="selectItem()"><option
value="52" >1 *</option>
> <option value="51" >2</option>
> <option value="50" >3</option>
> <option value="49"  selected >4 *</option>
> <option value="48" >5 *</option>
> <option value="47" >6 *</option>
> <option value="46" >7 *</option>
> <option value="45" >8 *</option>
> <option value="44" >9 *</option>
> <option value="43" >10 *</option>
> <option value="42" >11 *</option>
> <option value="41" >12 *</option>
> <option value="40" >13 *</option>
> <option value="39" >14 *</option>
> <option value="38" >15 *</option>
> <option value="37" >16 *</option>
> <option value="36" >17 *</option>
> <option value="35" >18 *</option>
> <option value="34" >19 *</option>
> </SELECT>
>             </font>
>             </td>
>         <td align="right" >&nbsp;<FONT
>         face="Arial"><SMALL><STRONG>Type:</STRONG>
>         MC   </SMALL></FONT></td>
> <TD align="center"  WIDTH="33%" >
> 		
> 			
>             <font face="Arial"> <SMALL><A href="#"
onClick="openViewResponsePopup()">Team Response</A> </SMALL></font>
> 			
> 			
> 			&nbsp;
> 			
> 
> 			</font></td>
> 			
>     </tr>
> </table>
> 
> </td>
> 			</tr>
> 			<TR>
> 				<td>
> 					<table border="0"
cellSpacing="0" width="100%" cellpadding="3" >
> 
> 						<TR>
>     <TD>
>         <TABLE BORDER="0" CELLSPACING="0" WIDTH="100%">
>            
>             <TR>
>     <TD>
>         <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
>             <tr>
>                 <td width="21" bgcolor="#E1E0C2" >&nbsp;</td>
>                 <td  bgcolor="#E1E0C2" WIDTH="100%" ><font
face="Arial" size="3">MC</font></td>
>             </tr>
>         </TABLE>
>     </TD>
> </TR>
> 
> 
>             <TR>
>   <TD> 
>          <INPUT TYPE="HIDDEN" NAME="foilToDelete" value="">
>        <table border="0" cellspacing="2" cellpadding="0"  width="100%"
bgcolor="#FFFFFF">
>            
>            <TR bgcolor="#E1E0C2" >
>     <TD COLSPAN="3" >
>         <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
>             <TR>
>                 <TD align="LEFT">
> 					<font face="Arial"
><SMALL><STRONG>&nbsp; &nbsp; &nbsp; Select Answer </STRONG></font></TD>
>                           
> 						  </TR>
>         </TABLE>
> 		</TD>
> </TR>
> 
> 
> 
>              
> 		   <tr BGCOLOR="#E1E1E1">
>     <td width="21" ><font face="Arial" size="2">&nbsp;A)</font></td>
>     <td width="591"><font face="Arial" size="2">a</font></td>
>     <td width="22" align="middle"  height="18">
>         <INPUT VALUE="A" NAME="MCFoil" TYPE="radio"
ONCLICK="clearNACheck(); setSomethingChanged()" >
>     </td>
> </tr>
> 
>   
> 
> <tr BGCOLOR="#FFFFFF">
>     <td width="21" ><font face="Arial" size="2">&nbsp;B)</font></td>
>     <td width="591"><font face="Arial" size="2">b</font></td>
>     <td width="22" align="middle"  height="18">
>         <INPUT VALUE="B" NAME="MCFoil" TYPE="radio"
ONCLICK="clearNACheck(); setSomethingChanged()" >
>     </td>
> </tr>
> 
>   
> 
> <tr>
>     <td colspan="2" ALIGN="CENTER">
> 							 
> 	
> 	</td>
>     
>     <td   align="center" >
> 	
>         <font size="1" face="Arial"> <A
href="javascript:clearAnswers(); ">clear</A></font>
>     
> 	
> 	
> 	</td>
> </tr>
> 
> 
> 						 
> 		 </table>
>    </TD>
> </TR>
> 
> 
>             
> <TR bgcolor="#E1E0C2" >
>     <TD><font face="Arial" ><SMALL><STRONG>&nbsp; &nbsp; &nbsp;  Enter
Rationale: 
>     </STRONG> <small>(optional)</SMALL></SMALL></font></TD>
> 
> </TR>
> 
> <TR>
>     <TD vAlign="top" ALIGN="CENTER">
>         <table border="0" cellSpacing="0" width="100%" cellpadding="0"
bgcolor="#FFFFFF">
>             <tr>
>                 <td width="100%" ALIGN="CENTER"><TEXTAREA
NAME="rationaleText"cols="60" rows= "3" WRAP="VIRTUAL"
ONCHANGE="setSomethingChanged()" style="width: 100%;"></TEXTAREA>
>                 <td>
>             </tr>
>         </table>
>     </TD>
> </TR>
> 
>             
> 			
> 			
> 
>         </TABLE>
> 
>     </TD>
> </TR>
> 
> 
> 						
>

> 						
> 
> 						
>

> 						
> 						
> 						
> <TR>
> 	<TD>
> 
> 		<table width="100%">
> 			<script language="JavaScript">
>             <!--
>             var windowReference;
> 
>             function openPopup(messageID) {
>                windowReference =
window.open('/teamthink/rqa1/teamthink?SessionID=kWO2YEOgF1VQMRUkH2rRJK2
eJ2CYGVhFWaZHZVji0mREQIA0WOmZMXXUScA&PageHandler=MessageEditor&messageID
='+ messageID, 'messageEditor', 'height=300,width=600,resizable=yes');
>                if (!windowReference.opener)
>                   windowReference.opener = self;
>             }
>             //-->
> 			</script>
> 
> 
> 			<INPUT TYPE="hidden" NAME="messageIDToDelete"
value="">
> 
> 			
> 
> 			 
> 			
> 		</table>
> 
> 	</TD>
> </TR>
> <TR>
> 	<TD>
> 		<table width="100%">
> 			<tr width="100%">
> 				<td bgcolor="#E1E0C2" width="100%"><font
face="arial"><STRONG><SMALL> &nbsp; &nbsp;&nbsp;  Add a
Comment:</SMALL></STRONG> </FONT></td>
> 			</tr>
> 			<tr>
> 				<td ALIGN="CENTER"><textarea cols="60"
rows="3" name="newMessage" WRAP="VIRTUAL" style="width: 100%;"
ONCHANGE="setSomethingChanged();" TABINDEX="1000"></textarea></td>
> 			</tr>
> 		</table>
> 
> 	</TD>
> </TR>
> 
> 
> 						
> <tr>
>     <td  ALIGN="RIGHT">
> 		 
> 	    
> 		
> 		<input name="IMSubmitButton" type="button"
value="Submit" onclick="submitItem();" TABINDEX="2000">
> 		 
> 		 
> 	  
> 	   
>   							
>        
> 	
> 
>  <br>
>     </td>
>    
> </tr>
> 
> 
> 
> 					</table>
> 				</td>

> 			</tr>
> 		</table>
> 	</CENTER>
> </form>
> </BODY>
> 
>
************************************************************************
**************
>  Thread #9
>  ID = kWO2...
>  R14
> 
> Query Data:
PageHandler=Home.IMBrokers.EIMBroker&performAction=submitItem&QuestionID
=49&origItemsStored=1&IsProcessData=1&Title=&submitMCMAAnswerAnyway=&ite
mSelect=49&foilToDelete=&MCFoil=A&rationaleText=r&messageIDToDelete=&new
Message=c&SessionID=kWO2YEOgF1VQMRUkH2rRJK2eJ2CYGVhFWaZHZVji0mREQIA0WOmZ
MXXUScA
> Cookie Data:
> null
> 
> 
>
------------------------------------------------------------------------
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


Re: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Jordi Salvat i Alabart <js...@atg.com>.
Just found the bug just by inspection. My apologies: my earlier review 
was incorrect. I'll fix it now. You'll need to download a nightly or 
(better, given your experience with nightlies) build from CVS. Or, of 
course, wait for the next release, which should happen sooner than later.

-- 
Salut,

Jordi.

Vladimir Tsygankov wrote:
> Hello, colleagues,
> I’m returning to the problem of “Regular expression problem for many
> threads”.
> Maybe that problem has been already fixed but we could not check that.
> Unfortunately nightly builds don’t work for now (they even can’t perform
> any request from my tests) – we tried 4 last builds (02/05/2004 –
> 02/08/2004).
> 
> Therefore we tried to clear out what was the problem under release of
> JMeter 1.9.1 (08/17/2003). 
> As we understand regular expression function is called from JMeter
> program but doesn’t find necessary string on correct server page for
> some threads. The most terrible is that happens occasionally (for any
> thread. Sometimes it doesn’t happen at all).
> 
> Attached file contains more information about texts of requests and
> answers for them which we copied from JMeter's "View Result Tree"
> element. We saved it for “bad” and “good” thread.
> 
> Could you help us please?
> Thanks in advance,
> Vladimir
> 
> 
>>-----Original Message-----
>>From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com]
>>Sent: Thursday, February 05, 2004 1:05 PM
>>To: JMeter Users List
>>Subject: Re: JMeter from time to time doesn't calculate regular
>>expressions for some threads
>>
>>Hi Shawn.
>>
>>There was a bug (long since fixed) that may cause this effect. Which
>>version are you using? Could you try a nightly build?
>>
>>--
>>Salut,
>>
>>Jordi.
>>
>>En/na Shawn Elliott ha escrit:
>>
>>>I too have had problems with the regular expression not picking up
>>>matches.  I have closely inspected the response page and it should
> 
> have
> 
>>>picked it up.  Though I have not logged it out to a file to see
> 
> exactly
> 
>>>what it is picking up. (Will do that today)
>>>
>>>Another piece of information is that the regular expression seems to
> 
> not
> 
>>>match correctly at a higher rate when I have a single thread that is
>>>looping, opposed to multiple threads not looping.
>>>
>>>Furthermore I have 4 thread groups each running a regular
> 
> expression...
> 
>>>Example
>>>Thread Grp 1: NumofThreads=1, Loop=10
>>>Thread Grp 2: NumofThreads=1, Loop=10
>>>Thread Grp 3: NumofThreads=1, Loop=10
>>>Thread Grp 4: NumofThreads=1, Loop=10
>>>
>>>Results in the regular expression not matching anything, more than
> 
> the
> 
>>>following scenario
>>>
>>>Thread Grp 1: NumofThreads=10, Loop=1
>>>Thread Grp 2: NumofThreads=10, Loop=1
>>>Thread Grp 3: NumofThreads=10, Loop=1
>>>Thread Grp 4: NumofThreads=10, Loop=1
>>>
>>>....  writing this email just made me think of something...
>>>Each regular expression is saving its result to a variable defined
> 
> in
> 
>>>the 'User Parameters'  is this parameter shared between all the
>>>threads??  There for the expression is just over writing the other
>>>threads value??
>>>
>>>
>>>-shawn
>>>
>>>-----Original Message-----
>>>From: Craig Palmer [mailto:craigp@peace.com]
>>>Sent: Wednesday, February 04, 2004 11:47 AM
>>>To: JMeter Users List
>>>Subject: Re: JMeter from time to time doesn't calculate regular
>>>expressions for some threads
>>>
>>>It is very difficult to diagnose what appears to be a transient
> 
> issue,
> 
>>>let alone fix it. I think I can guarantee that Jmeter does NOT have
> 
> a
> 
>>>setting/configuration that introduces random problems to occur at
>>>random times.
>>>
>>>In every case that I have found the regular expression not working,
> 
> I
> 
>>>have looked carefully at the content and found my mistake every
> 
> time.
> 
>>>I would bet that it isnt finding a match because there is no match.
>>>
>>>What you need to do is put a 'View Results Tree' on the http sampler
>>>that you want to match the regular expression and run the test
> 
> cycle.
> 
>>>When the "mis-match" occurs (the listener will keep a full history
> 
> of
> 
>>>all the pages fetched"), copy the Result Data to a file and then run
>>>the exact same regular expression over it using Perl 5.003. The same
>>>thing should happen.
>>>
>>>If the regular expression works in Perl, then there is cause to
>>>investigate to the next level. If it doesnt, then either the page
>>>content is not what you are expecting, or you need to revise your
>>>regular expression.
>>>
>>>BTW, I say Perl 5.003 becuase this is the equivalent regular
>>>expression engine that Jmeter uses. If you are not too familiar with
>>>Perl, then here is an example program to give you a jump start
>>>assuming that you saved the page content as "page.html":
>>>
>>>#!/usr/bin/perl
>>>
>>># open file for reading
>>>open(IN, "page.html") || die "unable to open file";
>>>
>>># Run through each line looking to match the regular expression
>>># Note that if you use brackets (), the the results will be found
>>># in $1, $2 etc. E.g. $Line =~ /contentId=(\d+)/ then you could
>>># write in the if statement $contentId = $1;
>>>while($Line = <IN>) {
>>>   if($Line =~ /<reg exp here>/) {
>>>     print "Found Match!";
>>>}
>>>
>>>close(IN);
>>>
>>>
>>>
>>>Vladimir Tsygankov wrote:
>>>
>>>
>>>>Hello, friends!
>>>>We noticed that JMeter from time to time doesn't calculate regular
>>>>expressions in requests for some threads (our test has 20 threads).
>>>>As a result we receive Exceptions from the server instead of correct
>>>>responses. We tried almost everything: increasing of Ramp-Up period,
>>>>time delay between requests, priority of java etc. It doesn't help.
>>>>We'd like to have a guarantee that a regular expression has been
>>>>calculated before a request is sent.
>>>>Is there any settings for JMeter or for script to fix the problem?
>>>>Thanks in advance,
>>>>Vladimir
>>>>
>>>>
>>
>>>---------------------------------------------------------------------
>>>
>>>>To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>>>>
>>>>
>>>
>>>
>>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> 
> 
> 
> 
> ------------------------------------------------------------------------
> 
>  General information about these test results.
> 
> Test has 20 threads. Regular expression had not been calculated for "QuestionID" field in 8-th thread only.
> Every thread sent some requests (R1, R2, ..., R13, R14, ...). 
> 
> That file contains the next requests and answers for treads 8 (collectAllMatches.size() = 0) and 9 (collectAllMatches.size() > 0):
> R13, answer for R13 and R14. We copied that requests and answers for them from JMeter's "View Result Tree" element.
> 
> Regular expressions used in requsts R14 are:
> DuestionID = ${__regexFunction(<INPUT TYPE="HIDDEN" NAME="QuestionID" value="(.*)">,$1$,1,,,refQuestionID5)}
> ItemSelect = ${refQuestionID5_g1}
> 
> Our opinion: 
> We even inserted debug code in class "RegexFunction" and saw that method "execute" has been called when it should be 
> but occasionally for some threads it couldn't find nesessary string on correct html page.
> 
> **************************************************************************************
> **************************************************************************************
>  Thread #8
>  ID = nDBalr...
>  R13
> 
> http://test.athenium.com/teamthink/rqa1/teamthink
> Query Data: PageHandler=Home.IMBrokers.EIMBroker&performAction=submitItem&QuestionID=50&origItemsStored=1&IsProcessData=1&Title=&submitMCMAAnswerAnyway=&itemSelect=50&rationaleText=r&messageIDToDelete=&newMessage=c&SessionID=nDBalrZWDgaD0EMl1o2OYNOrHg2CLJKqoRVXLGCkfJmiqnVpUZFGcRmSnocaUZcqKJBXci
> Cookie Data:
> null
> **************************************************************************************
>  Thread #8
>  ID = nDBalr...
>  Answer R13
> 
> HTTP/1.1 200 null
> Date: Fri, 06 Feb 2004 19:45:40 GMT
> Server: Apache/1.3.26 (Unix) Debian GNU/Linux mod_jk/1.1.0 PHP/4.1.2 mod_ssl/2.8.9 OpenSSL/0.9.6g mod_perl/1.26 DAV/1.0.3
> Keep-Alive: timeout=15, max=100
> Connection: Keep-Alive
> Content-Type: text/html; charset=iso-8859-1
> 
> <!-- this template holds all the different ItemMachine Views -->
> 
> <SCRIPT LANGUAGE="JAVASCRIPT">
> 
>                                                      
> 
> var somethingChanged = false;
>                                                      
> function setSomethingChanged(){
> 
>    somethingChanged = true;
> 
> }
> 
> 
> function storeOriginalForm() {
> 
>   document.IMForm.origItemsStored.value = "1";
> }
> 
> 
> function resetAnswer(){
> 
> 
> }
> 
> 
> //this function return true if the user wants the form data to be processes, otherwise false..
> function determineProcessData() {
> 
> 	if (document.IMForm.origItemsStored.value != "1") {
> 	 	return false;
> 	}
> 	
>    if (somethingChanged) {
>  		var agree=confirm("Click OK to Submit your changes to this page, or Cancel to forget them.");
> 	} else {
>  		document.IMForm.IsProcessData.value = 0;
>  		return true;
> 	}
> 	if (agree) {
> 		document.IMForm.IsProcessData.value = 1;
> 		return true;
> 	} else {
> 		document.IMForm.IsProcessData.value = 0;
> 		return true;
> 	}
> }
> 
> 
> 
> 
> function submitItem(){
>    
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="submitItem";
>    document.IMForm.submit();
> 
> }
> 
> function selectItem(){
>    if (determineProcessData()){                              
>       document.IMForm.performAction.value="useItemSelect";
>       document.IMForm.submit();
>    }
> }
> 
> 
> function addItem(){
>    document.IMForm.IsProcessData.value = "1";
>    document.IMForm.performAction.value="addItem";
>    document.IMForm.submit();
> }
> 
> 
> function deleteItem(){
> 
>    okToDelete = confirm("Are you sure you want to delete this question?  This cannot be undone.");
>    if(!okToDelete){
>       return;
>    }
> 
>    document.IMForm.IsProcessData.value = "1";
>    document.IMForm.performAction.value="deleteItem";
>    document.IMForm.submit();
> }
> 
> 
> function addAnswerFoil(){
>    
>    document.IMForm.IsProcessData.value = "1";
>    document.IMForm.performAction.value="addFoil";
>    document.IMForm.submit();
> }
> 
> 
> function changeCat(){
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeCat";
>    document.IMForm.submit();
> }
> 
> 
> function changeClassif(){
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeClassif";
>    document.IMForm.submit();
> }
> 
> function changeQuesType(){
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeQuesType";
>    document.IMForm.submit();
> }
> 
> 
> function deleteFoil(foilToDelete){
>    
>    okToDelete = confirm("Are you sure you want to delete this answer?  This cannot be undone.");
>    if(!okToDelete){
>       return;
>    }
>    
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.foilToDelete.value= foilToDelete;
>    document.IMForm.performAction.value="deleteMCFoil";
>    document.IMForm.submit();
> }
> 
> 
> //unchecks the checked radio button
> function clearAnswers(){
>    
>    for(i=0; i < document.IMForm.MCFoil.length; i++){
>       if(document.IMForm.MCFoil[i].checked){
>          document.IMForm.MCFoil[i].checked = false;
>       }
>    }
>    setSomethingChanged();
> }
> 
> 
> function useFeedbackClicked(){
>    
>    var okToToggle = true;
> 
>    if(!document.IMForm.useFeedback.checked){
>       okToToggle =confirm("If you chose not to use the feedback text, the feedback texts will be deleted.  This cannot be undone.  Are you sure you want to do this?");
>    }
> 
>    if(okToToggle){
>       document.IMForm.IsProcessData.value = 1;
>       document.IMForm.performAction.value="toggleUseFeedback";
>       document.IMForm.submit();
>    }else{
>       //return checkbox to its original state
>       document.IMForm.useFeedback.checked = true;
>       return;
>    }
> 
> }
> 
> function clearNACheck(){
>    //do nada
> }
> 
> 
> </script>
> 
> 
> 
> <script>
> var headerTitle = "Author Answers";
> if (parent.header != null && parent.header.updateBannerText != null) parent.header.updateBannerText(headerTitle);
> 
> 
> function changeRuleShow(){
> 
>    //we still want to process and changed form stuff, so process the data      
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeRuleShow";
>    document.IMForm.submit();
> }
> 
> function changeTypeRuleShow(whichRuleType){
> 
>    //we still want to process and changed form stuff, so process the data      
>    document.IMForm.IsProcessData.value = 1;
> 
>    var performActionString;
> 
>    if (whichRuleType == 0) {
>       performActionString = "changeQuestionRuleShow";
>    } else if (whichRuleType == 1) {
>       performActionString = "changeTaxonomyRuleShow";
>    }if (whichRuleType == 2) {
>       performActionString = "changeQuestionSetRuleShow";
>    }
> 
>    document.IMForm.performAction.value=performActionString;
>    document.IMForm.submit();
> }
> 
> function okToNav(){
> 
>  if(somethingChanged != null && somethingChanged){
>   okToNav = confirm("If you would like to save your changes click \'cancel\' and submit.  Otherwise, click \'OK\' to return without saving your changes");
> 
>   if(okToNav){
> 	return true;
>   }else{
> 	return false;
>   }
>  }else{
>   return true;
>  }
> 		
> }
> 
> 
> //used for rapid random question filling in for QA purposes.  Will call the method QAfillInQuestionFields() that is written for each question type
> //fill in the mesage field and submit.
> 
> function fillInQA(){
> 
>    if(usingQAFillIn  != null){
>       QAfillInQuestionFields();
>    }
> 
> 	if(document.IMForm.newMessage != null){
> 		document.IMForm.newMessage.value = "THis is a QA comment for question 4";
> 	}
>     
> 	submitItem();
> }
> 
> 
> function getRandom(min,max)
> {
>    return (Math.round(Math.random()*(max-min)))+min;
> }
> 
> function flipDV(version) {
>   document.IMForm.FlipDV.value=version;
>   document.IMForm.submit();
> }
> 
> </script>
> 
> 
> 
> <body bgcolor="#FFFFFF"  onLoad="storeOriginalForm();" LINK="BLUE" VLINK="BLUE" ALINK="BLUE" >
> 
> <form name="IMForm" ACTION="/teamthink/rqa1/teamthink?SessionID=nDBalrZWDgaD0EMl1o2OYNOrHg2CLJKqoRVXLGCkfJmiqnVpUZFGcRmSnocaUZcqKJBXci" METHOD="POST"  ONSUBMIT="if (this.submitted) return true; else return false;">
> 	<input type=hidden name="SessionID" value="nDBalrZWDgaD0EMl1o2OYNOrHg2CLJKqoRVXLGCkfJmiqnVpUZFGcRmSnocaUZcqKJBXci"> <input type="hidden" name="PageHandler" value="Home.IMBrokers.EIMBroker">
> 
> 	<INPUT TYPE="HIDDEN" NAME="performAction" value="">
> 	<INPUT TYPE="HIDDEN" NAME="QuestionID" value="49">
> 	<INPUT TYPE="HIDDEN" NAME="origItemsStored" value="0">
> 	<INPUT TYPE="HIDDEN" NAME="IsProcessData" value="0">
> 	<INPUT TYPE="HIDDEN" NAME="Title" value="">
> 	<INPUT TYPE="HIDDEN" NAME="FlipDV" value="">
>    
>     
> 	<A href="javascript:fillInQA();"><IMG SRC="/teamthink/rqa1/images/clearpixel.gif" BORDER="0" WIDTH="10" HEIGHT="10"></A>
>     	 
> 	<center>
> 		<BR>
> 
> 		
> 
> 		<table border="0" width="650" cellspacing="0" cellpadding="0" >
> 			<tr>
> 				<td><script>
> 
> var windowReference;
> function openViewResponsePopup(){
>    windowReference = window.open('/teamthink/rqa1/teamthink?SessionID=nDBalrZWDgaD0EMl1o2OYNOrHg2CLJKqoRVXLGCkfJmiqnVpUZFGcRmSnocaUZcqKJBXci&PageHandler=Home.IMBrokers.UserResponsesQuestionBroker&QuestionID=49', 'ViewUserResponses', 'resizable=yes,scrollbars=yes,height=400,width=650');
>    if (!windowReference.opener){
>        windowReference.opener = self;
>    }
> }
> 
> 
> </script>
> <TABLE border="0" cellSpacing="0" width="100%" cellpadding="3">
>      <TR>
>         <td valign="middle" align="left" >
>             <font face="Arial"><b><font size="2">Question:</font></b>
>             <SELECT NAME="itemSelect" ONCHANGE="selectItem()"><option value="52" >1 *</option>
> <option value="51" >2</option>
> <option value="50" >3</option>
> <option value="49"  selected >4 *</option>
> <option value="48" >5 *</option>
> <option value="47" >6 *</option>
> <option value="46" >7 *</option>
> <option value="45" >8 *</option>
> <option value="44" >9 *</option>
> <option value="43" >10 *</option>
> <option value="42" >11 *</option>
> <option value="41" >12 *</option>
> <option value="40" >13 *</option>
> <option value="39" >14 *</option>
> <option value="38" >15 *</option>
> <option value="37" >16 *</option>
> <option value="36" >17 *</option>
> <option value="35" >18 *</option>
> <option value="34" >19 *</option>
> </SELECT>
>             </font>
>             </td>
>         <td align="right" >&nbsp;<FONT
>         face="Arial"><SMALL><STRONG>Type:</STRONG>
>         MC   </SMALL></FONT></td>
> <TD align="center"  WIDTH="33%" >
> 		
> 			
>             <font face="Arial"> <SMALL><A href="#" onClick="openViewResponsePopup()">Team Response</A> </SMALL></font>
> 			
> 			
> 			&nbsp;
> 			
> 
> 			</font></td>
> 			
>     </tr>
> </table>
> 
> </td>
> 			</tr>
> 			<TR>
> 				<td>
> 					<table border="0" cellSpacing="0" width="100%" cellpadding="3" >
> 
> 						<TR>
>     <TD>
>         <TABLE BORDER="0" CELLSPACING="0" WIDTH="100%">
>            
>             <TR>
>     <TD>
>         <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
>             <tr>
>                 <td width="21" bgcolor="#E1E0C2" >&nbsp;</td>
>                 <td  bgcolor="#E1E0C2" WIDTH="100%" ><font face="Arial" size="3">MC</font></td>
>             </tr>
>         </TABLE>
>     </TD>
> </TR>
> 
> 
>             <TR>
>   <TD> 
>          <INPUT TYPE="HIDDEN" NAME="foilToDelete" value="">
>        <table border="0" cellspacing="2" cellpadding="0"  width="100%" bgcolor="#FFFFFF">
>            
>            <TR bgcolor="#E1E0C2" >
>     <TD COLSPAN="3" >
>         <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
>             <TR>
>                 <TD align="LEFT">
> 					<font face="Arial" ><SMALL><STRONG>&nbsp; &nbsp; &nbsp; Select Answer </STRONG></font></TD>
>                           
> 						  </TR>
>         </TABLE>
> 		</TD>
> </TR>
> 
> 
> 
>              
> 		   <tr BGCOLOR="#E1E1E1">
>     <td width="21" ><font face="Arial" size="2">&nbsp;A)</font></td>
>     <td width="591"><font face="Arial" size="2">a</font></td>
>     <td width="22" align="middle"  height="18">
>         <INPUT VALUE="A" NAME="MCFoil" TYPE="radio" ONCLICK="clearNACheck(); setSomethingChanged()" >
>     </td>
> </tr>
> 
>   
> 
> <tr BGCOLOR="#FFFFFF">
>     <td width="21" ><font face="Arial" size="2">&nbsp;B)</font></td>
>     <td width="591"><font face="Arial" size="2">b</font></td>
>     <td width="22" align="middle"  height="18">
>         <INPUT VALUE="B" NAME="MCFoil" TYPE="radio" ONCLICK="clearNACheck(); setSomethingChanged()" >
>     </td>
> </tr>
> 
>   
> 
> <tr>
>     <td colspan="2" ALIGN="CENTER">
> 							 
> 	
> 	</td>
>     
>     <td   align="center" >
> 	
>         <font size="1" face="Arial"> <A href="javascript:clearAnswers(); ">clear</A></font>
>     
> 	
> 	
> 	</td>
> </tr>
> 
> 
> 						 
> 		 </table>
>    </TD>
> </TR>
> 
> 
>             
> <TR bgcolor="#E1E0C2" >
>     <TD><font face="Arial" ><SMALL><STRONG>&nbsp; &nbsp; &nbsp;  Enter Rationale: 
>     </STRONG> <small>(optional)</SMALL></SMALL></font></TD>
> 
> </TR>
> 
> <TR>
>     <TD vAlign="top" ALIGN="CENTER">
>         <table border="0" cellSpacing="0" width="100%" cellpadding="0" bgcolor="#FFFFFF">
>             <tr>
>                 <td width="100%" ALIGN="CENTER"><TEXTAREA NAME="rationaleText"cols="60" rows= "3" WRAP="VIRTUAL" ONCHANGE="setSomethingChanged()" style="width: 100%;"></TEXTAREA>
>                 <td>
>             </tr>
>         </table>
>     </TD>
> </TR>
> 
>             
> 			
> 			
> 
>         </TABLE>
> 
>     </TD>
> </TR>
> 
> 
> 						
> 											
> 						
> 
> 						
> 												   
> 						
> 						
> 						
> <TR>
> 	<TD>
> 
> 		<table width="100%">
> 			<script language="JavaScript">
>             <!--
>             var windowReference;
> 
>             function openPopup(messageID) {
>                windowReference = window.open('/teamthink/rqa1/teamthink?SessionID=nDBalrZWDgaD0EMl1o2OYNOrHg2CLJKqoRVXLGCkfJmiqnVpUZFGcRmSnocaUZcqKJBXci&PageHandler=MessageEditor&messageID='+ messageID, 'messageEditor', 'height=300,width=600,resizable=yes');
>                if (!windowReference.opener)
>                   windowReference.opener = self;
>             }
>             //-->
> 			</script>
> 
> 
> 			<INPUT TYPE="hidden" NAME="messageIDToDelete" value="">
> 
> 			
> 
> 			 
> 			
> 		</table>
> 
> 	</TD>
> </TR>
> <TR>
> 	<TD>
> 		<table width="100%">
> 			<tr width="100%">
> 				<td bgcolor="#E1E0C2" width="100%"><font face="arial"><STRONG><SMALL> &nbsp; &nbsp;&nbsp;  Add a Comment:</SMALL></STRONG> </FONT></td>
> 			</tr>
> 			<tr>
> 				<td ALIGN="CENTER"><textarea cols="60" rows="3" name="newMessage" WRAP="VIRTUAL" style="width: 100%;" ONCHANGE="setSomethingChanged();" TABINDEX="1000"></textarea></td>
> 			</tr>
> 		</table>
> 
> 	</TD>
> </TR>
> 
> 
> 						
> <tr>
>     <td  ALIGN="RIGHT">
> 		 
> 	    
> 		
> 		<input name="IMSubmitButton" type="button" value="Submit" onclick="submitItem();" TABINDEX="2000">
> 		 
> 		 
> 	  
> 	   
>   							
>        
> 	
> 
>  <br>
>     </td>
>    
> </tr>
> 
> 
> 
> 					</table>
> 				</td>																	 	
> 			</tr>
> 		</table>
> 	</CENTER>
> </form>
> </BODY>
> **************************************************************************************
>  Thread #8
>  R14
>  ID = NDBalr...
> 
>  !!! Incorrect request (regular expressions have not been calculated for "QuestionID")
> 
> http://test.athenium.com/teamthink/rqa1/teamthink
> Query Data: PageHandler=Home.IMBrokers.EIMBroker&performAction=submitItem&QuestionID=&origItemsStored=1&IsProcessData=1&Title=&submitMCMAAnswerAnyway=&itemSelect=${refQuestionID5_g1}&foilToDelete=&MCFoil=A&rationaleText=r&messageIDToDelete=&newMessage=c&SessionID=nDBalrZWDgaD0EMl1o2OYNOrHg2CLJKqoRVXLGCkfJmiqnVpUZFGcRmSnocaUZcqKJBXci
> Cookie Data:
> null
> 
> **************************************************************************************
>  Thread #9
>  Correct request:
>  R13
>  ID = kWO2...
> 
> http://test.athenium.com/teamthink/rqa1/teamthink
> Query Data: PageHandler=Home.IMBrokers.EIMBroker&performAction=submitItem&QuestionID=50&origItemsStored=1&IsProcessData=1&Title=&submitMCMAAnswerAnyway=&itemSelect=50&rationaleText=r&messageIDToDelete=&newMessage=c&SessionID=kWO2YEOgF1VQMRUkH2rRJK2eJ2CYGVhFWaZHZVji0mREQIA0WOmZMXXUScA
> Cookie Data:
> null
> 
> **************************************************************************************
>  Thread #9
>  Answer R13:
> 
> HTTP/1.1 200 null
> Date: Fri, 06 Feb 2004 19:45:51 GMT
> Server: Apache/1.3.26 (Unix) Debian GNU/Linux mod_jk/1.1.0 PHP/4.1.2 mod_ssl/2.8.9 OpenSSL/0.9.6g mod_perl/1.26 DAV/1.0.3
> Keep-Alive: timeout=15, max=79
> Connection: Keep-Alive
> Content-Type: text/html; charset=iso-8859-1
> 
> <!-- this template holds all the different ItemMachine Views -->
> 
> <SCRIPT LANGUAGE="JAVASCRIPT">
> 
>                                                      
> 
> var somethingChanged = false;
>                                                      
> function setSomethingChanged(){
> 
>    somethingChanged = true;
> 
> }
> 
> 
> function storeOriginalForm() {
> 
>   document.IMForm.origItemsStored.value = "1";
> }
> 
> 
> function resetAnswer(){
> 
> 
> }
> 
> 
> //this function return true if the user wants the form data to be processes, otherwise false..
> function determineProcessData() {
> 
> 	if (document.IMForm.origItemsStored.value != "1") {
> 	 	return false;
> 	}
> 	
>    if (somethingChanged) {
>  		var agree=confirm("Click OK to Submit your changes to this page, or Cancel to forget them.");
> 	} else {
>  		document.IMForm.IsProcessData.value = 0;
>  		return true;
> 	}
> 	if (agree) {
> 		document.IMForm.IsProcessData.value = 1;
> 		return true;
> 	} else {
> 		document.IMForm.IsProcessData.value = 0;
> 		return true;
> 	}
> }
> 
> 
> 
> 
> function submitItem(){
>    
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="submitItem";
>    document.IMForm.submit();
> 
> }
> 
> function selectItem(){
>    if (determineProcessData()){                              
>       document.IMForm.performAction.value="useItemSelect";
>       document.IMForm.submit();
>    }
> }
> 
> 
> function addItem(){
>    document.IMForm.IsProcessData.value = "1";
>    document.IMForm.performAction.value="addItem";
>    document.IMForm.submit();
> }
> 
> 
> function deleteItem(){
> 
>    okToDelete = confirm("Are you sure you want to delete this question?  This cannot be undone.");
>    if(!okToDelete){
>       return;
>    }
> 
>    document.IMForm.IsProcessData.value = "1";
>    document.IMForm.performAction.value="deleteItem";
>    document.IMForm.submit();
> }
> 
> 
> function addAnswerFoil(){
>    
>    document.IMForm.IsProcessData.value = "1";
>    document.IMForm.performAction.value="addFoil";
>    document.IMForm.submit();
> }
> 
> 
> function changeCat(){
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeCat";
>    document.IMForm.submit();
> }
> 
> 
> function changeClassif(){
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeClassif";
>    document.IMForm.submit();
> }
> 
> function changeQuesType(){
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeQuesType";
>    document.IMForm.submit();
> }
> 
> 
> function deleteFoil(foilToDelete){
>    
>    okToDelete = confirm("Are you sure you want to delete this answer?  This cannot be undone.");
>    if(!okToDelete){
>       return;
>    }
>    
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.foilToDelete.value= foilToDelete;
>    document.IMForm.performAction.value="deleteMCFoil";
>    document.IMForm.submit();
> }
> 
> 
> //unchecks the checked radio button
> function clearAnswers(){
>    
>    for(i=0; i < document.IMForm.MCFoil.length; i++){
>       if(document.IMForm.MCFoil[i].checked){
>          document.IMForm.MCFoil[i].checked = false;
>       }
>    }
>    setSomethingChanged();
> }
> 
> 
> function useFeedbackClicked(){
>    
>    var okToToggle = true;
> 
>    if(!document.IMForm.useFeedback.checked){
>       okToToggle =confirm("If you chose not to use the feedback text, the feedback texts will be deleted.  This cannot be undone.  Are you sure you want to do this?");
>    }
> 
>    if(okToToggle){
>       document.IMForm.IsProcessData.value = 1;
>       document.IMForm.performAction.value="toggleUseFeedback";
>       document.IMForm.submit();
>    }else{
>       //return checkbox to its original state
>       document.IMForm.useFeedback.checked = true;
>       return;
>    }
> 
> }
> 
> function clearNACheck(){
>    //do nada
> }
> 
> 
> </script>
> 
> 
> 
> <script>
> var headerTitle = "Author Answers";
> if (parent.header != null && parent.header.updateBannerText != null) parent.header.updateBannerText(headerTitle);
> 
> 
> function changeRuleShow(){
> 
>    //we still want to process and changed form stuff, so process the data      
>    document.IMForm.IsProcessData.value = 1;
>    document.IMForm.performAction.value="changeRuleShow";
>    document.IMForm.submit();
> }
> 
> function changeTypeRuleShow(whichRuleType){
> 
>    //we still want to process and changed form stuff, so process the data      
>    document.IMForm.IsProcessData.value = 1;
> 
>    var performActionString;
> 
>    if (whichRuleType == 0) {
>       performActionString = "changeQuestionRuleShow";
>    } else if (whichRuleType == 1) {
>       performActionString = "changeTaxonomyRuleShow";
>    }if (whichRuleType == 2) {
>       performActionString = "changeQuestionSetRuleShow";
>    }
> 
>    document.IMForm.performAction.value=performActionString;
>    document.IMForm.submit();
> }
> 
> function okToNav(){
> 
>  if(somethingChanged != null && somethingChanged){
>   okToNav = confirm("If you would like to save your changes click \'cancel\' and submit.  Otherwise, click \'OK\' to return without saving your changes");
> 
>   if(okToNav){
> 	return true;
>   }else{
> 	return false;
>   }
>  }else{
>   return true;
>  }
> 		
> }
> 
> 
> //used for rapid random question filling in for QA purposes.  Will call the method QAfillInQuestionFields() that is written for each question type
> //fill in the mesage field and submit.
> 
> function fillInQA(){
> 
>    if(usingQAFillIn  != null){
>       QAfillInQuestionFields();
>    }
> 
> 	if(document.IMForm.newMessage != null){
> 		document.IMForm.newMessage.value = "THis is a QA comment for question 4";
> 	}
>     
> 	submitItem();
> }
> 
> 
> function getRandom(min,max)
> {
>    return (Math.round(Math.random()*(max-min)))+min;
> }
> 
> function flipDV(version) {
>   document.IMForm.FlipDV.value=version;
>   document.IMForm.submit();
> }
> 
> </script>
> 
> 
> 
> <body bgcolor="#FFFFFF"  onLoad="storeOriginalForm();" LINK="BLUE" VLINK="BLUE" ALINK="BLUE" >
> 
> <form name="IMForm" ACTION="/teamthink/rqa1/teamthink?SessionID=kWO2YEOgF1VQMRUkH2rRJK2eJ2CYGVhFWaZHZVji0mREQIA0WOmZMXXUScA" METHOD="POST"  ONSUBMIT="if (this.submitted) return true; else return false;">
> 	<input type=hidden name="SessionID" value="kWO2YEOgF1VQMRUkH2rRJK2eJ2CYGVhFWaZHZVji0mREQIA0WOmZMXXUScA"> <input type="hidden" name="PageHandler" value="Home.IMBrokers.EIMBroker">
> 
> 	<INPUT TYPE="HIDDEN" NAME="performAction" value="">
> 	<INPUT TYPE="HIDDEN" NAME="QuestionID" value="49">
> 	<INPUT TYPE="HIDDEN" NAME="origItemsStored" value="0">
> 	<INPUT TYPE="HIDDEN" NAME="IsProcessData" value="0">
> 	<INPUT TYPE="HIDDEN" NAME="Title" value="">
> 	<INPUT TYPE="HIDDEN" NAME="FlipDV" value="">
>    
>     
> 	<A href="javascript:fillInQA();"><IMG SRC="/teamthink/rqa1/images/clearpixel.gif" BORDER="0" WIDTH="10" HEIGHT="10"></A>
>     	 
> 	<center>
> 		<BR>
> 
> 		
> 
> 		<table border="0" width="650" cellspacing="0" cellpadding="0" >
> 			<tr>
> 				<td><script>
> 
> var windowReference;
> function openViewResponsePopup(){
>    windowReference = window.open('/teamthink/rqa1/teamthink?SessionID=kWO2YEOgF1VQMRUkH2rRJK2eJ2CYGVhFWaZHZVji0mREQIA0WOmZMXXUScA&PageHandler=Home.IMBrokers.UserResponsesQuestionBroker&QuestionID=49', 'ViewUserResponses', 'resizable=yes,scrollbars=yes,height=400,width=650');
>    if (!windowReference.opener){
>        windowReference.opener = self;
>    }
> }
> 
> 
> </script>
> <TABLE border="0" cellSpacing="0" width="100%" cellpadding="3">
>      <TR>
>         <td valign="middle" align="left" >
>             <font face="Arial"><b><font size="2">Question:</font></b>
>             <SELECT NAME="itemSelect" ONCHANGE="selectItem()"><option value="52" >1 *</option>
> <option value="51" >2</option>
> <option value="50" >3</option>
> <option value="49"  selected >4 *</option>
> <option value="48" >5 *</option>
> <option value="47" >6 *</option>
> <option value="46" >7 *</option>
> <option value="45" >8 *</option>
> <option value="44" >9 *</option>
> <option value="43" >10 *</option>
> <option value="42" >11 *</option>
> <option value="41" >12 *</option>
> <option value="40" >13 *</option>
> <option value="39" >14 *</option>
> <option value="38" >15 *</option>
> <option value="37" >16 *</option>
> <option value="36" >17 *</option>
> <option value="35" >18 *</option>
> <option value="34" >19 *</option>
> </SELECT>
>             </font>
>             </td>
>         <td align="right" >&nbsp;<FONT
>         face="Arial"><SMALL><STRONG>Type:</STRONG>
>         MC   </SMALL></FONT></td>
> <TD align="center"  WIDTH="33%" >
> 		
> 			
>             <font face="Arial"> <SMALL><A href="#" onClick="openViewResponsePopup()">Team Response</A> </SMALL></font>
> 			
> 			
> 			&nbsp;
> 			
> 
> 			</font></td>
> 			
>     </tr>
> </table>
> 
> </td>
> 			</tr>
> 			<TR>
> 				<td>
> 					<table border="0" cellSpacing="0" width="100%" cellpadding="3" >
> 
> 						<TR>
>     <TD>
>         <TABLE BORDER="0" CELLSPACING="0" WIDTH="100%">
>            
>             <TR>
>     <TD>
>         <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0">
>             <tr>
>                 <td width="21" bgcolor="#E1E0C2" >&nbsp;</td>
>                 <td  bgcolor="#E1E0C2" WIDTH="100%" ><font face="Arial" size="3">MC</font></td>
>             </tr>
>         </TABLE>
>     </TD>
> </TR>
> 
> 
>             <TR>
>   <TD> 
>          <INPUT TYPE="HIDDEN" NAME="foilToDelete" value="">
>        <table border="0" cellspacing="2" cellpadding="0"  width="100%" bgcolor="#FFFFFF">
>            
>            <TR bgcolor="#E1E0C2" >
>     <TD COLSPAN="3" >
>         <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
>             <TR>
>                 <TD align="LEFT">
> 					<font face="Arial" ><SMALL><STRONG>&nbsp; &nbsp; &nbsp; Select Answer </STRONG></font></TD>
>                           
> 						  </TR>
>         </TABLE>
> 		</TD>
> </TR>
> 
> 
> 
>              
> 		   <tr BGCOLOR="#E1E1E1">
>     <td width="21" ><font face="Arial" size="2">&nbsp;A)</font></td>
>     <td width="591"><font face="Arial" size="2">a</font></td>
>     <td width="22" align="middle"  height="18">
>         <INPUT VALUE="A" NAME="MCFoil" TYPE="radio" ONCLICK="clearNACheck(); setSomethingChanged()" >
>     </td>
> </tr>
> 
>   
> 
> <tr BGCOLOR="#FFFFFF">
>     <td width="21" ><font face="Arial" size="2">&nbsp;B)</font></td>
>     <td width="591"><font face="Arial" size="2">b</font></td>
>     <td width="22" align="middle"  height="18">
>         <INPUT VALUE="B" NAME="MCFoil" TYPE="radio" ONCLICK="clearNACheck(); setSomethingChanged()" >
>     </td>
> </tr>
> 
>   
> 
> <tr>
>     <td colspan="2" ALIGN="CENTER">
> 							 
> 	
> 	</td>
>     
>     <td   align="center" >
> 	
>         <font size="1" face="Arial"> <A href="javascript:clearAnswers(); ">clear</A></font>
>     
> 	
> 	
> 	</td>
> </tr>
> 
> 
> 						 
> 		 </table>
>    </TD>
> </TR>
> 
> 
>             
> <TR bgcolor="#E1E0C2" >
>     <TD><font face="Arial" ><SMALL><STRONG>&nbsp; &nbsp; &nbsp;  Enter Rationale: 
>     </STRONG> <small>(optional)</SMALL></SMALL></font></TD>
> 
> </TR>
> 
> <TR>
>     <TD vAlign="top" ALIGN="CENTER">
>         <table border="0" cellSpacing="0" width="100%" cellpadding="0" bgcolor="#FFFFFF">
>             <tr>
>                 <td width="100%" ALIGN="CENTER"><TEXTAREA NAME="rationaleText"cols="60" rows= "3" WRAP="VIRTUAL" ONCHANGE="setSomethingChanged()" style="width: 100%;"></TEXTAREA>
>                 <td>
>             </tr>
>         </table>
>     </TD>
> </TR>
> 
>             
> 			
> 			
> 
>         </TABLE>
> 
>     </TD>
> </TR>
> 
> 
> 						
> 											
> 						
> 
> 						
> 												   
> 						
> 						
> 						
> <TR>
> 	<TD>
> 
> 		<table width="100%">
> 			<script language="JavaScript">
>             <!--
>             var windowReference;
> 
>             function openPopup(messageID) {
>                windowReference = window.open('/teamthink/rqa1/teamthink?SessionID=kWO2YEOgF1VQMRUkH2rRJK2eJ2CYGVhFWaZHZVji0mREQIA0WOmZMXXUScA&PageHandler=MessageEditor&messageID='+ messageID, 'messageEditor', 'height=300,width=600,resizable=yes');
>                if (!windowReference.opener)
>                   windowReference.opener = self;
>             }
>             //-->
> 			</script>
> 
> 
> 			<INPUT TYPE="hidden" NAME="messageIDToDelete" value="">
> 
> 			
> 
> 			 
> 			
> 		</table>
> 
> 	</TD>
> </TR>
> <TR>
> 	<TD>
> 		<table width="100%">
> 			<tr width="100%">
> 				<td bgcolor="#E1E0C2" width="100%"><font face="arial"><STRONG><SMALL> &nbsp; &nbsp;&nbsp;  Add a Comment:</SMALL></STRONG> </FONT></td>
> 			</tr>
> 			<tr>
> 				<td ALIGN="CENTER"><textarea cols="60" rows="3" name="newMessage" WRAP="VIRTUAL" style="width: 100%;" ONCHANGE="setSomethingChanged();" TABINDEX="1000"></textarea></td>
> 			</tr>
> 		</table>
> 
> 	</TD>
> </TR>
> 
> 
> 						
> <tr>
>     <td  ALIGN="RIGHT">
> 		 
> 	    
> 		
> 		<input name="IMSubmitButton" type="button" value="Submit" onclick="submitItem();" TABINDEX="2000">
> 		 
> 		 
> 	  
> 	   
>   							
>        
> 	
> 
>  <br>
>     </td>
>    
> </tr>
> 
> 
> 
> 					</table>
> 				</td>																	 	
> 			</tr>
> 		</table>
> 	</CENTER>
> </form>
> </BODY>
> 
> **************************************************************************************
>  Thread #9
>  ID = kWO2...
>  R14
> 
> Query Data: PageHandler=Home.IMBrokers.EIMBroker&performAction=submitItem&QuestionID=49&origItemsStored=1&IsProcessData=1&Title=&submitMCMAAnswerAnyway=&itemSelect=49&foilToDelete=&MCFoil=A&rationaleText=r&messageIDToDelete=&newMessage=c&SessionID=kWO2YEOgF1VQMRUkH2rRJK2eJ2CYGVhFWaZHZVji0mREQIA0WOmZMXXUScA
> Cookie Data:
> null
> 
> 
> ------------------------------------------------------------------------
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Vladimir Tsygankov <Vl...@contera.sp.ru>.
Hello, colleagues,
I’m returning to the problem of “Regular expression problem for many
threads”.
Maybe that problem has been already fixed but we could not check that.
Unfortunately nightly builds don’t work for now (they even can’t perform
any request from my tests) – we tried 4 last builds (02/05/2004 –
02/08/2004).

Therefore we tried to clear out what was the problem under release of
JMeter 1.9.1 (08/17/2003). 
As we understand regular expression function is called from JMeter
program but doesn’t find necessary string on correct server page for
some threads. The most terrible is that happens occasionally (for any
thread. Sometimes it doesn’t happen at all).

Attached file contains more information about texts of requests and
answers for them which we copied from JMeter's "View Result Tree"
element. We saved it for “bad” and “good” thread.

Could you help us please?
Thanks in advance,
Vladimir

> -----Original Message-----
> From: Jordi Salvat i Alabart [mailto:jsalvata@atg.com]
> Sent: Thursday, February 05, 2004 1:05 PM
> To: JMeter Users List
> Subject: Re: JMeter from time to time doesn't calculate regular
> expressions for some threads
> 
> Hi Shawn.
> 
> There was a bug (long since fixed) that may cause this effect. Which
> version are you using? Could you try a nightly build?
> 
> --
> Salut,
> 
> Jordi.
> 
> En/na Shawn Elliott ha escrit:
> > I too have had problems with the regular expression not picking up
> > matches.  I have closely inspected the response page and it should
have
> > picked it up.  Though I have not logged it out to a file to see
exactly
> > what it is picking up. (Will do that today)
> >
> > Another piece of information is that the regular expression seems to
not
> > match correctly at a higher rate when I have a single thread that is
> > looping, opposed to multiple threads not looping.
> >
> > Furthermore I have 4 thread groups each running a regular
expression...
> >
> > Example
> > Thread Grp 1: NumofThreads=1, Loop=10
> > Thread Grp 2: NumofThreads=1, Loop=10
> > Thread Grp 3: NumofThreads=1, Loop=10
> > Thread Grp 4: NumofThreads=1, Loop=10
> >
> > Results in the regular expression not matching anything, more than
the
> > following scenario
> >
> > Thread Grp 1: NumofThreads=10, Loop=1
> > Thread Grp 2: NumofThreads=10, Loop=1
> > Thread Grp 3: NumofThreads=10, Loop=1
> > Thread Grp 4: NumofThreads=10, Loop=1
> >
> > ....  writing this email just made me think of something...
> > Each regular expression is saving its result to a variable defined
in
> > the 'User Parameters'  is this parameter shared between all the
> > threads??  There for the expression is just over writing the other
> > threads value??
> >
> >
> > -shawn
> >
> > -----Original Message-----
> > From: Craig Palmer [mailto:craigp@peace.com]
> > Sent: Wednesday, February 04, 2004 11:47 AM
> > To: JMeter Users List
> > Subject: Re: JMeter from time to time doesn't calculate regular
> > expressions for some threads
> >
> > It is very difficult to diagnose what appears to be a transient
issue,
> > let alone fix it. I think I can guarantee that Jmeter does NOT have
a
> > setting/configuration that introduces random problems to occur at
> > random times.
> >
> > In every case that I have found the regular expression not working,
I
> > have looked carefully at the content and found my mistake every
time.
> > I would bet that it isnt finding a match because there is no match.
> >
> > What you need to do is put a 'View Results Tree' on the http sampler
> > that you want to match the regular expression and run the test
cycle.
> > When the "mis-match" occurs (the listener will keep a full history
of
> > all the pages fetched"), copy the Result Data to a file and then run
> > the exact same regular expression over it using Perl 5.003. The same
> > thing should happen.
> >
> > If the regular expression works in Perl, then there is cause to
> > investigate to the next level. If it doesnt, then either the page
> > content is not what you are expecting, or you need to revise your
> > regular expression.
> >
> > BTW, I say Perl 5.003 becuase this is the equivalent regular
> > expression engine that Jmeter uses. If you are not too familiar with
> > Perl, then here is an example program to give you a jump start
> > assuming that you saved the page content as "page.html":
> >
> > #!/usr/bin/perl
> >
> > # open file for reading
> > open(IN, "page.html") || die "unable to open file";
> >
> > # Run through each line looking to match the regular expression
> > # Note that if you use brackets (), the the results will be found
> > # in $1, $2 etc. E.g. $Line =~ /contentId=(\d+)/ then you could
> > # write in the if statement $contentId = $1;
> > while($Line = <IN>) {
> >    if($Line =~ /<reg exp here>/) {
> >      print "Found Match!";
> > }
> >
> > close(IN);
> >
> >
> >
> > Vladimir Tsygankov wrote:
> >
> >>Hello, friends!
> >>We noticed that JMeter from time to time doesn't calculate regular
> >>expressions in requests for some threads (our test has 20 threads).
> >>As a result we receive Exceptions from the server instead of correct
> >>responses. We tried almost everything: increasing of Ramp-Up period,
> >>time delay between requests, priority of java etc. It doesn't help.
> >>We'd like to have a guarantee that a regular expression has been
> >>calculated before a request is sent.
> >> Is there any settings for JMeter or for script to fix the problem?
> >>Thanks in advance,
> >>Vladimir
> >>
> >>
>
>>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> >>For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> >>
> >>
> >
> >
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> 


Re: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Jordi Salvat i Alabart <js...@atg.com>.
Hi Shawn.

There was a bug (long since fixed) that may cause this effect. Which 
version are you using? Could you try a nightly build?

-- 
Salut,

Jordi.

En/na Shawn Elliott ha escrit:
> I too have had problems with the regular expression not picking up
> matches.  I have closely inspected the response page and it should have
> picked it up.  Though I have not logged it out to a file to see exactly
> what it is picking up. (Will do that today)
> 
> Another piece of information is that the regular expression seems to not
> match correctly at a higher rate when I have a single thread that is
> looping, opposed to multiple threads not looping.
> 
> Furthermore I have 4 thread groups each running a regular expression...
> 
> Example
> Thread Grp 1: NumofThreads=1, Loop=10
> Thread Grp 2: NumofThreads=1, Loop=10
> Thread Grp 3: NumofThreads=1, Loop=10
> Thread Grp 4: NumofThreads=1, Loop=10
> 
> Results in the regular expression not matching anything, more than the
> following scenario
> 
> Thread Grp 1: NumofThreads=10, Loop=1
> Thread Grp 2: NumofThreads=10, Loop=1
> Thread Grp 3: NumofThreads=10, Loop=1
> Thread Grp 4: NumofThreads=10, Loop=1
> 
> ....  writing this email just made me think of something...
> Each regular expression is saving its result to a variable defined in
> the 'User Parameters'  is this parameter shared between all the
> threads??  There for the expression is just over writing the other
> threads value??
> 
> 
> -shawn
> 
> -----Original Message-----
> From: Craig Palmer [mailto:craigp@peace.com] 
> Sent: Wednesday, February 04, 2004 11:47 AM
> To: JMeter Users List
> Subject: Re: JMeter from time to time doesn't calculate regular
> expressions for some threads
> 
> It is very difficult to diagnose what appears to be a transient issue, 
> let alone fix it. I think I can guarantee that Jmeter does NOT have a 
> setting/configuration that introduces random problems to occur at 
> random times.
> 
> In every case that I have found the regular expression not working, I 
> have looked carefully at the content and found my mistake every time. 
> I would bet that it isnt finding a match because there is no match.
> 
> What you need to do is put a 'View Results Tree' on the http sampler 
> that you want to match the regular expression and run the test cycle. 
> When the "mis-match" occurs (the listener will keep a full history of 
> all the pages fetched"), copy the Result Data to a file and then run 
> the exact same regular expression over it using Perl 5.003. The same 
> thing should happen.
> 
> If the regular expression works in Perl, then there is cause to 
> investigate to the next level. If it doesnt, then either the page 
> content is not what you are expecting, or you need to revise your 
> regular expression.
> 
> BTW, I say Perl 5.003 becuase this is the equivalent regular 
> expression engine that Jmeter uses. If you are not too familiar with 
> Perl, then here is an example program to give you a jump start 
> assuming that you saved the page content as "page.html":
> 
> #!/usr/bin/perl
> 
> # open file for reading
> open(IN, "page.html") || die "unable to open file";
> 
> # Run through each line looking to match the regular expression
> # Note that if you use brackets (), the the results will be found
> # in $1, $2 etc. E.g. $Line =~ /contentId=(\d+)/ then you could
> # write in the if statement $contentId = $1;
> while($Line = <IN>) {
>    if($Line =~ /<reg exp here>/) {
>      print "Found Match!";
> }
> 
> close(IN);
> 
> 
> 
> Vladimir Tsygankov wrote:
> 
>>Hello, friends!
>>We noticed that JMeter from time to time doesn't calculate regular
>>expressions in requests for some threads (our test has 20 threads). 
>>As a result we receive Exceptions from the server instead of correct
>>responses. We tried almost everything: increasing of Ramp-Up period,
>>time delay between requests, priority of java etc. It doesn't help.
>>We'd like to have a guarantee that a regular expression has been
>>calculated before a request is sent.
>> Is there any settings for JMeter or for script to fix the problem?
>>Thanks in advance,
>>Vladimir
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
>>
>>
> 
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


RE: JMeter from time to time doesn't calculate regular expressions for some threads

Posted by Shawn Elliott <sh...@gotocme.com>.
I too have had problems with the regular expression not picking up
matches.  I have closely inspected the response page and it should have
picked it up.  Though I have not logged it out to a file to see exactly
what it is picking up. (Will do that today)

Another piece of information is that the regular expression seems to not
match correctly at a higher rate when I have a single thread that is
looping, opposed to multiple threads not looping.

Furthermore I have 4 thread groups each running a regular expression...

Example
Thread Grp 1: NumofThreads=1, Loop=10
Thread Grp 2: NumofThreads=1, Loop=10
Thread Grp 3: NumofThreads=1, Loop=10
Thread Grp 4: NumofThreads=1, Loop=10

Results in the regular expression not matching anything, more than the
following scenario

Thread Grp 1: NumofThreads=10, Loop=1
Thread Grp 2: NumofThreads=10, Loop=1
Thread Grp 3: NumofThreads=10, Loop=1
Thread Grp 4: NumofThreads=10, Loop=1

....  writing this email just made me think of something...
Each regular expression is saving its result to a variable defined in
the 'User Parameters'  is this parameter shared between all the
threads??  There for the expression is just over writing the other
threads value??


-shawn

-----Original Message-----
From: Craig Palmer [mailto:craigp@peace.com] 
Sent: Wednesday, February 04, 2004 11:47 AM
To: JMeter Users List
Subject: Re: JMeter from time to time doesn't calculate regular
expressions for some threads

It is very difficult to diagnose what appears to be a transient issue, 
let alone fix it. I think I can guarantee that Jmeter does NOT have a 
setting/configuration that introduces random problems to occur at 
random times.

In every case that I have found the regular expression not working, I 
have looked carefully at the content and found my mistake every time. 
I would bet that it isnt finding a match because there is no match.

What you need to do is put a 'View Results Tree' on the http sampler 
that you want to match the regular expression and run the test cycle. 
When the "mis-match" occurs (the listener will keep a full history of 
all the pages fetched"), copy the Result Data to a file and then run 
the exact same regular expression over it using Perl 5.003. The same 
thing should happen.

If the regular expression works in Perl, then there is cause to 
investigate to the next level. If it doesnt, then either the page 
content is not what you are expecting, or you need to revise your 
regular expression.

BTW, I say Perl 5.003 becuase this is the equivalent regular 
expression engine that Jmeter uses. If you are not too familiar with 
Perl, then here is an example program to give you a jump start 
assuming that you saved the page content as "page.html":

#!/usr/bin/perl

# open file for reading
open(IN, "page.html") || die "unable to open file";

# Run through each line looking to match the regular expression
# Note that if you use brackets (), the the results will be found
# in $1, $2 etc. E.g. $Line =~ /contentId=(\d+)/ then you could
# write in the if statement $contentId = $1;
while($Line = <IN>) {
   if($Line =~ /<reg exp here>/) {
     print "Found Match!";
}

close(IN);



Vladimir Tsygankov wrote:
> Hello, friends!
> We noticed that JMeter from time to time doesn't calculate regular
> expressions in requests for some threads (our test has 20 threads). 
> As a result we receive Exceptions from the server instead of correct
> responses. We tried almost everything: increasing of Ramp-Up period,
> time delay between requests, priority of java etc. It doesn't help.
> We'd like to have a guarantee that a regular expression has been
> calculated before a request is sent.
>  Is there any settings for JMeter or for script to fix the problem?
> Thanks in advance,
> Vladimir
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jmeter-user-help@jakarta.apache.org
> 
> 


-- 
Craig Palmer                    Mobile NZ: +64 21 755 254
Peace Software                  URL: http://www.peace.com
                                 Email: craig.palmer@peace.com


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-user-help@jakarta.apache.org