Little Chicken
Little Chicken

Reputation: 265

How to know the endtime of each request for each of user in Jmeter

I'm using Jmeter and would like to identify the endtime of each request for each user.

Please take a look my testplan:

Thread group: 2 users loop:1

2 HTTP request (request_1, request_2)


Start testing Web performance, the View Result tree shows: 4 results (2 for request_1, 2 for request_2)

request_2: 1 passed and 1 failed. Look in request table of result tree, I see:

Thread Name: jp@gc - Stepping Thread Group 1-1
Sample Start: 2014-04-18 09:28:06 ICT
Load time: 1100554
Latency: 550450
Size in bytes: 408190
Headers size in bytes: 4774
Body size in bytes: 403416
Sample Count: 1
Error Count: 0
Response code: 200
Response message: OK

Response headers:
HTTP/1.1 200 OK
Date: Fri, 18 Apr 2014 02:28:15 GMT
Server: Apache
X-Powered-By: PHP/5.3.3
Set-Cookie: ls23166422738597439695-runtime-publicportal=h4knpfldt76e3kvmunrn5i4u16; path=/limesurvey/
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Last-Modified: Fri, 18 Apr 2014 02:36:09 GMT
Cache-Control: post-check=0, pre-check=0
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8


HTTPSampleResult fields:
ContentType: text/html; charset=utf-8
DataEncoding: utf-8

The questions are:

  1. How to identify the time which cause request_2 is fail ? and how to display the endtime of each request for each user ?

  2. How to displays information in the log panel of Jmeter (enable DEbug log mode on GUI), like "This is error....due to..."

  3. Besides, as in the log panel (active log debug in GUI), some time the log entries stop at Thread 1-n (n=1,2...), after that 30s, the log is continue showing. So, I wonder about this time, web server has error, and in this time, Jmeter still send request or waiting Web server response ?

Thanks.

Upvotes: 1

Views: 1013

Answers (1)

Dmitri T
Dmitri T

Reputation: 168122

  1. It can be done via Beanshell Pre Processor which you can add as a child of any "interesting" request.Example code would look like:

       import java.util.Date;
    
       long end_time_ms = prev.getEndTime(); // obtain sampler end time (in milliseconds from 1st Jan 1970)
       Date end_time_date = new Date(end_time_ms); //convert it to human-readable date if you prefer 
    
       String response_message = prev.getResponseMessage(); // get initial response message
    
       StringBuilder response = new StringBuilder(); // initialize StringBuilder to construct new response
       response.append(response_message); // add initial response message
       response.append(System.getProperty("line.separator")); // add new line
       response.append("Thread finished at: ").append(end_time_date); // add thread finish date
       prev.setResponseMessage(response.toString()); // set new response message
               log.info("Thread finished at:" + end_time_date"); // to print it to the log
    
  2. See above for Beanshell code and image below for UI impact

Beanshell Post Processor Response Message Change Demo

Never use GUI for anything apart from developing or debugging tests. If you want to add something to the log use log.info("something"); as above or JMeter __log() function

Upvotes: 2

Related Questions