0
votes

I have a simple jmeter plan, that uses Uniform Random Timer:

Random Delay Maximum (in milliseconds): 15000.0
Constant Delay Offset (in milliseconds): 5000

HTTP header data that I'm using:

Content-Type     application/x-www-form-urlencoded
Accept-Language  lt,en-us;q=0.7,en;q=0.3
Accept           text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent           Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
Referer          http://.../.../tao/Main/login
Accept-Encoding  gzip, deflate

Request Data:

POST http://.../.../tao/Main/login

POST data:
loginForm_sent=1&login=u509&password=demo&processUri=&activityUri=&connect=Log+in

Cookie Data:
tao_XK0R3qTp=uijd30hi0gls2i9l2i2ikr97b3

Request Headers:
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Accept-Language: lt,en-us;q=0.7,en;q=0.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
Referer: http://.../.../tao/Main/login
Accept-Encoding: gzip, deflate
Content-Length: 81
Host: ...

When I'm NOT using random timer, this works. But When I'm using random timer, this this HTTP request doesn't work.

Thread Name: ... 1-1
Sample Start: 2014-03-25 13:16:54 EET
Load time: 1
Latency: 0
Size in bytes: 1939
Headers size in bytes: 0
Body size in bytes: 1939
Sample Count: 1
Error Count: 1
Response code: Non HTTP response code: org.apache.http.NoHttpResponseException
Response message: Non HTTP response message: The target server failed to respond

Response headers:


HTTPSampleResult fields:
ContentType: 
DataEncoding: null

Faulty HTTP request response data:

org.apache.http.NoHttpResponseException: The target server failed to respond
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:95)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:61)
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:254)
    at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:289)
    at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:252)
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:191)
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:300)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:127)
    at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:715)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:520)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:481)
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:298)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1105)
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1094)
    at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:429)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:257)
    at java.lang.Thread.run(Unknown Source)

Varnish config: I haven't changed anything yet, so configs are default:

backend default {
     .host = "127.0.0.1";
     .port = "8080";
}

From this I can assume that for some reason apache server didn't get this request, or timed out? So to conclude my question: When I'm using Varnish and jmeter has random timer, this HTTP request is not working. When I remove random timer, there are no problems with varnish. Now when I'm not using varnish, this works with and without random timer. I guess it's more of a request for ideas/help than question. I can't seem to figure this problem out.

1

1 Answers

0
votes

It seems I had to add session timeout to /etc/default/varnish/:

 DAEMON_OPTS="-a :80 \
              -T localhost:6082 \
              -f /etc/varnish/default.vcl \
              -S /etc/varnish/secret \
              -s malloc,256m \
              -p sess_timeout=300"

Though I don't really like increasing session timeout, so if any of you know a better answer to this problem, please go ahead and answer.