You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@jmeter.apache.org by SanderW <sa...@performancearchitecten.nl> on 2015/10/05 12:59:30 UTC

Missing samples in JMeter listener

Hi all,

I'm using JMeter 2.13 and ran a test from the GUI interface with 4 users.
I have a thread group which contains a counter config element which I'm
sending in the user-agent string.
During the test I have a Aggregate Report active which also sends the data
to a jtl-file.

After the test the aggregate report tells me that 6.824 samples were
executed, but if I look at access_log from the server I count 6.827 samples.
The access_log from the server looks correct (no duplicates). It seems
JMeter is not registering all samples.

I don't know if this is because of the aggregate report listener or because
I ran the test from the GUI.

The script contains a Constant Throughput Timer (30 samples per minute), so
with 4 users the load is 2 hits per second.

I expect JMeter to report the correct number of samples executed.
Any idea why I'm missing samples? 
Should I use a different listener which is capable of registering all
samples?






--
View this message in context: http://jmeter.512774.n5.nabble.com/Missing-samples-in-JMeter-listener-tp5723305.html
Sent from the JMeter - User mailing list archive at Nabble.com.

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


Re: Missing samples in JMeter listener

Posted by sebb <se...@gmail.com>.
Ah, now I can confirm the problem.
Looks like there is a bug in the Transaction Controller.
It seems it can drop samples when "Generate parent sample" is selected.

Please file a Bugzilla with the test case (but ideally use a log file
name that is not Windows-specific - thanks!)

On 9 October 2015 at 06:31, SanderW <sa...@performancearchitecten.nl> wrote:
> Hi Sebb,
>
> I did a clean install and built a very simple script which I attached.
> MissingSampleTest.zip
> <http://jmeter.512774.n5.nabble.com/file/n5723327/MissingSampleTest.zip>
>
> I used all default settings.
> The Thread Group is executed with 3 users with duration 15 seconds.
> User 1 always has Thread.sleep(5000);
> User 2 & 3 have a Thread.sleep(1000);
>
> <http://jmeter.512774.n5.nabble.com/file/n5723327/MissingSampleTest.png>
>
> In the jtl-file (added to the zip-file) I see BeanSample-31, but I'm missing
> BeanSample-23
>
>
>
>
>
> --
> View this message in context: http://jmeter.512774.n5.nabble.com/Missing-samples-in-JMeter-listener-tp5723305p5723327.html
> Sent from the JMeter - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> For additional commands, e-mail: user-help@jmeter.apache.org
>

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


Re: Missing samples in JMeter listener

Posted by SanderW <sa...@performancearchitecten.nl>.
Hi Sebb,

I did a clean install and built a very simple script which I attached.
MissingSampleTest.zip
<http://jmeter.512774.n5.nabble.com/file/n5723327/MissingSampleTest.zip>  

I used all default settings. 
The Thread Group is executed with 3 users with duration 15 seconds.
User 1 always has Thread.sleep(5000);
User 2 & 3 have a Thread.sleep(1000);

<http://jmeter.512774.n5.nabble.com/file/n5723327/MissingSampleTest.png> 

In the jtl-file (added to the zip-file) I see BeanSample-31, but I'm missing
BeanSample-23





--
View this message in context: http://jmeter.512774.n5.nabble.com/Missing-samples-in-JMeter-listener-tp5723305p5723327.html
Sent from the JMeter - User mailing list archive at Nabble.com.

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


Re: Missing samples in JMeter listener

Posted by SanderW <sa...@performancearchitecten.nl>.
sebb-2-2 wrote
> On 8 October 2015 at 08:55, SanderW 
> &lt;
> sander@performancearchitecten.nl
> &gt;
> wrote:
> In that case, try again with a vanilla JMeter.

I saw this answer coming ;-)


sebb-2-2 wrote
> Are you using CSV output or XML?
> Are there any errors in the jmeter log file?

I'm using XML as output. 
No errors in JMeter.log that refer to this issue


sebb-2-2 wrote
> Although it's possible that there is a JMeter bug, I think there would
> be more complaints if it was failing to record some samples.

I forgot to mention that the testplan contains 3 threadgroups which run
consecutively.
The first and third thread groups collect the number of hits registered by a
3rd party.
The 2nd TG which contains the actual load is the one with the missing
samples.

I don't have tearDown enabled.



--
View this message in context: http://jmeter.512774.n5.nabble.com/Missing-samples-in-JMeter-listener-tp5723305p5723322.html
Sent from the JMeter - User mailing list archive at Nabble.com.

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


Re: Missing samples in JMeter listener

Posted by sebb <se...@gmail.com>.
On 8 October 2015 at 08:55, SanderW <sa...@performancearchitecten.nl> wrote:
> Hi Sebb,
>
> JMeter is started with some 3rd party jars, but none of which I'm using in
> that script.

In that case, try again with a vanilla JMeter.

> If I load the results in the View Results in Table listener I see sample #1
> with Start Time 10:31:03.849.

Are you using CSV output or XML?
Are there any errors in the jmeter log file?

Might be worth checking the result file in a plain text viewer just in
case the Listener is not showing some entries.

Although it's possible that there is a JMeter bug, I think there would
be more complaints if it was failing to record some samples.

> The last sample #6824 has start time 11:31:03.157.
>
> The SYSlog from NGINX shows me these last 5 lines (I anonymised some parts):
> /2015-10-01T11:31:01+02:00 <SERVERNAME> nginx1: <IP> - -
> [01/Oct/2015:11:31:01 +0200] "GET /api/v1/<URL1> HTTP/1.1" 200 1223 "-"
> "Loadtest1-6825"
> 2015-10-01T11:31:03+02:00 <SERVERNAME> nginx1: <IP> - -
> [01/Oct/2015:11:31:03 +0200] "GET /api/v1/<URL2> HTTP/1.1" 200 10556 "-"
> "Loadtest3-6826"
> 2015-10-01T11:31:03+02:00 <SERVERNAME> nginx1: <IP> - -
> [01/Oct/2015:11:31:03 +0200] "GET /api/v1/<URL3> HTTP/1.1" 200 10628 "-"
> "Loadtest1-6827"
> 2015-10-01T11:31:05+02:00 <SERVERNAME> nginx1: <IP> - -
> [01/Oct/2015:11:31:05 +0200] "GET /api/v1/<URL4> HTTP/1.1" 200 10635 "-"
> "Loadtest4-6794"
> 2015-10-01T11:31:15+02:00 <SERVERNAME> nginx1: <IP> - -
> [01/Oct/2015:11:31:15 +0200] "GET /api/v1/<URL5> HTTP/1.1" 200 2136 "-"
> "Loadtest2-6773"/
>
> Loadtest1-6825 is the one I see at #6823 in the View Results in Table
> listener.
> Loadtest3-6826 is the one I see at #6824.
>
> The loadtest was executed with 4 concurrent threads (users). The user which
> executed 6825 also started 6827, but I don't see that one in the jtl-file.
>
>
>
>
>
> --
> View this message in context: http://jmeter.512774.n5.nabble.com/Missing-samples-in-JMeter-listener-tp5723305p5723320.html
> Sent from the JMeter - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> For additional commands, e-mail: user-help@jmeter.apache.org
>

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


Re: Missing samples in JMeter listener

Posted by SanderW <sa...@performancearchitecten.nl>.
Hi Sebb,

JMeter is started with some 3rd party jars, but none of which I'm using in
that script.

If I load the results in the View Results in Table listener I see sample #1
with Start Time 10:31:03.849.
The last sample #6824 has start time 11:31:03.157.

The SYSlog from NGINX shows me these last 5 lines (I anonymised some parts):
/2015-10-01T11:31:01+02:00 <SERVERNAME> nginx1: <IP> - -
[01/Oct/2015:11:31:01 +0200] "GET /api/v1/<URL1> HTTP/1.1" 200 1223 "-"
"Loadtest1-6825"
2015-10-01T11:31:03+02:00 <SERVERNAME> nginx1: <IP> - -
[01/Oct/2015:11:31:03 +0200] "GET /api/v1/<URL2> HTTP/1.1" 200 10556 "-"
"Loadtest3-6826"
2015-10-01T11:31:03+02:00 <SERVERNAME> nginx1: <IP> - -
[01/Oct/2015:11:31:03 +0200] "GET /api/v1/<URL3> HTTP/1.1" 200 10628 "-"
"Loadtest1-6827"
2015-10-01T11:31:05+02:00 <SERVERNAME> nginx1: <IP> - -
[01/Oct/2015:11:31:05 +0200] "GET /api/v1/<URL4> HTTP/1.1" 200 10635 "-"
"Loadtest4-6794"
2015-10-01T11:31:15+02:00 <SERVERNAME> nginx1: <IP> - -
[01/Oct/2015:11:31:15 +0200] "GET /api/v1/<URL5> HTTP/1.1" 200 2136 "-"
"Loadtest2-6773"/

Loadtest1-6825 is the one I see at #6823 in the View Results in Table
listener.
Loadtest3-6826 is the one I see at #6824.

The loadtest was executed with 4 concurrent threads (users). The user which
executed 6825 also started 6827, but I don't see that one in the jtl-file.





--
View this message in context: http://jmeter.512774.n5.nabble.com/Missing-samples-in-JMeter-listener-tp5723305p5723320.html
Sent from the JMeter - User mailing list archive at Nabble.com.

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


Re: Missing samples in JMeter listener

Posted by sebb <se...@gmail.com>.
On 8 October 2015 at 06:29, SanderW <sa...@performancearchitecten.nl> wrote:
> You are right about the 3xx case. It depends if you redirect automatically in
> JMeter.
> The application I'm testing does not make use of re-directs. It is an API
> application which is called upon with just HTTP GET requests.
>
> I think I have an idea why I'm missing the requests. The ones missing are at
> the end of the test.
> In the thread group I'm using scheduler duration set to 1 hour. In the
> SYSlog from NGINX the missing ones are the last ones.
>
> I think JMeter already stopped and did not wait for the requests it did.

JMeter always waits for a response, unless you force to stop it
abruptly using ^C or the "stop" command.

> Is there a setting which avoids this when using duration?
>

Are you using any 3rd party add-ons?

>
>
> --
> View this message in context: http://jmeter.512774.n5.nabble.com/Missing-samples-in-JMeter-listener-tp5723305p5723317.html
> Sent from the JMeter - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> For additional commands, e-mail: user-help@jmeter.apache.org
>

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


Re: Missing samples in JMeter listener

Posted by SanderW <sa...@performancearchitecten.nl>.
You are right about the 3xx case. It depends if you redirect automatically in
JMeter.
The application I'm testing does not make use of re-directs. It is an API
application which is called upon with just HTTP GET requests.

I think I have an idea why I'm missing the requests. The ones missing are at
the end of the test.
In the thread group I'm using scheduler duration set to 1 hour. In the
SYSlog from NGINX the missing ones are the last ones.

I think JMeter already stopped and did not wait for the requests it did.
Is there a setting which avoids this when using duration?  





--
View this message in context: http://jmeter.512774.n5.nabble.com/Missing-samples-in-JMeter-listener-tp5723305p5723317.html
Sent from the JMeter - User mailing list archive at Nabble.com.

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


Re: Missing samples in JMeter listener

Posted by Deepak Shetty <sh...@gmail.com>.
>It should never happen that the access_log contains more samples than
JMeter.
I'd think this is the way around . The access_log  on the server will have
atleast as many , if not more than JMeter.
Take the 3xx case - If Jmeter is setup to follow redirects then if you make
1 request in JMeter (with 1 child - but listeners like Aggregate/Summary
will count it as 1)  but there will be 2 requests in access log as
URL1 302 -- this request tracked in Jmeter
URL2 200 --> This will show up as achild in View Results tree and not at
all in Aggregate report

>The three missing samples have status code 200 in the access_log
You actually need to check that no other sample has a status code 3xx - not
just the missing ones.
Also is this repeatable ? if the same 3 samples get missed every single run
then I would think it is not a Jmeter issue - if this behavior is random ,
then its possibly a Jmeter issue


On Tue, Oct 6, 2015 at 12:24 AM, SanderW <sa...@performancearchitecten.nl>
wrote:

> Hi deepak,
>
> Always great to receive an answer from you :-)
>
> I've checked all of those. The three missing samples have status code 200
> in
> the access_log from the first server it is .
> In all cases I would expect JMeter to at least register it as a sample,
> also
> if the response would be a 3xx.
> It should never happen that the access_log contains more samples than
> JMeter.
> Because of the Counter variable I'm absolutely sure they are unique
> samples.
>
> To go a little deeper into the script:
> * User Parameters
> * Thread Group
> ** Counter
> ** Aggregated Report with filename
> ..\\runs\\${__time(yyyy-MM-dd_HHmm,TIMESTAMP)}_Application.jtl
> ** Response Assertion (check for disclaimer message in all responses
> ** Test action with Constant Throughput Timer as child (for pacing purpose
> set to 30 samples per minute)
> ** Random Controller
> *** HTTTP Header Manager with User-Agent = ${ApplicationName}-${Counter}
> *** 15 different transaction controllers with 1 HTTP Request as child
>
> All HTTP requests are method Get and have 2 or more parameters send in the
> path.
> Some of the HTTP Requests have a BeanShell PreProcessor as child because
> there is a functional issue where the response contains is a 404, while it
> shouldn't.
>
>
>
>
> --
> View this message in context:
> http://jmeter.512774.n5.nabble.com/Missing-samples-in-JMeter-listener-tp5723305p5723310.html
> Sent from the JMeter - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> For additional commands, e-mail: user-help@jmeter.apache.org
>
>

Re: Missing samples in JMeter listener

Posted by SanderW <sa...@performancearchitecten.nl>.
Hi deepak,

Always great to receive an answer from you :-)

I've checked all of those. The three missing samples have status code 200 in
the access_log from the first server it is .
In all cases I would expect JMeter to at least register it as a sample, also
if the response would be a 3xx.
It should never happen that the access_log contains more samples than
JMeter.
Because of the Counter variable I'm absolutely sure they are unique samples.

To go a little deeper into the script:
* User Parameters
* Thread Group
** Counter
** Aggregated Report with filename
..\\runs\\${__time(yyyy-MM-dd_HHmm,TIMESTAMP)}_Application.jtl
** Response Assertion (check for disclaimer message in all responses
** Test action with Constant Throughput Timer as child (for pacing purpose
set to 30 samples per minute)
** Random Controller
*** HTTTP Header Manager with User-Agent = ${ApplicationName}-${Counter}
*** 15 different transaction controllers with 1 HTTP Request as child

All HTTP requests are method Get and have 2 or more parameters send in the
path.
Some of the HTTP Requests have a BeanShell PreProcessor as child because
there is a functional issue where the response contains is a 404, while it
shouldn't.




--
View this message in context: http://jmeter.512774.n5.nabble.com/Missing-samples-in-JMeter-listener-tp5723305p5723310.html
Sent from the JMeter - User mailing list archive at Nabble.com.

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


Re: Missing samples in JMeter listener

Posted by Deepak Shetty <sh...@gmail.com>.
Hi
Did you check status codes in your access log ? are any of them 3xx i.e.
redirects ? Im assuming you dont have transaction controllers or embedded
resources or things like that in your plan
Other reasons is something (like a load balancer) in between retried a
request (some do based on configured timeouts)
Its still possible its a JMeter bug - but that would need you'd have to
identify the missing samples and see if this behavior repeats exactly or
random

regards
deepak


On Mon, Oct 5, 2015 at 3:59 AM, SanderW <sa...@performancearchitecten.nl>
wrote:

> Hi all,
>
> I'm using JMeter 2.13 and ran a test from the GUI interface with 4 users.
> I have a thread group which contains a counter config element which I'm
> sending in the user-agent string.
> During the test I have a Aggregate Report active which also sends the data
> to a jtl-file.
>
> After the test the aggregate report tells me that 6.824 samples were
> executed, but if I look at access_log from the server I count 6.827
> samples.
> The access_log from the server looks correct (no duplicates). It seems
> JMeter is not registering all samples.
>
> I don't know if this is because of the aggregate report listener or because
> I ran the test from the GUI.
>
> The script contains a Constant Throughput Timer (30 samples per minute), so
> with 4 users the load is 2 hits per second.
>
> I expect JMeter to report the correct number of samples executed.
> Any idea why I'm missing samples?
> Should I use a different listener which is capable of registering all
> samples?
>
>
>
>
>
>
> --
> View this message in context:
> http://jmeter.512774.n5.nabble.com/Missing-samples-in-JMeter-listener-tp5723305.html
> Sent from the JMeter - User mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@jmeter.apache.org
> For additional commands, e-mail: user-help@jmeter.apache.org
>
>