This discussion is archived
10 Replies Latest reply: May 8, 2012 3:06 PM by user13500973 RSS

Solve variable problem with concurrent users - OLT

user13500973 Newbie
Currently Being Moderated
Hi,

Have a load test script that runs fine when there's a delay between ramping up the users but has problems and throwing solve variable errors while trying to run even 2 users concurrently. I even tested the variable through the Substitute and add variable process and open script correctly found the data when tested from that screen, but fails with 2 users running concurrently through OLT.

If the solve variable is due to data problem then my guess is the script should fail even when there's a delay between ramping up the users, but that's not the case. Script runs fine without any solve exceptions when there's a delay in ramping up the users.

Using OLT version 9.3 and the application under test is a simple web application with JBoss application server.

Any suggestions are welcome.

Thanks
  • 1. Re: Solve variable problem with concurrent users - OLT
    glenn.s Explorer
    Currently Being Moderated
    Even if the problem only appears to be occurring with concurrent users there is probably a request parameter or request cookie that has not been dynamically substituted. Does this happen before or after a user login?

    1. You should look at the response content of the failed vusers HTML. This is the first thing to look at since there may be some indication in that response from your server. This is the reason why the solve is failing, even it is not the root of the problem.
    2. After viewing the response page failure, work backwards to examine and compare the HTTP requests of the two virtual users. Compare all request cookies, and request parameters (query string and post data). Any parameter or cookie that is identical for both virtual users is a possible suspect.
    3. How many application servers are there? Is there a load balancer between the virtual users and the application server? If so, repeat your test with just one application server running.
  • 2. Re: Solve variable problem with concurrent users - OLT
    user13500973 Newbie
    Currently Being Moderated
    Glenn,

    Thanks for the helpful reply and sorry for my very late repsonse.

    I went through the error logs on the application server and found that only one user is logging in successfully and the second user login is failing and the credentials are being passed on as 'null' and that's the reason for failure. So the second user is even unable to log into the application and that is my next step to see why that's happening. As I mentioned before running with a time delay is fine with the logins but not concurrently, so, not sure where the disconnect is.

    As you suggested, I will go through the HTTP requests, response content and request parameters in a detailed way to see why the login is failing.

    Yes, there is a load balancer. And the tests are failing even if I hit just one application server after bypassing the load balancer. So, with or without load balancer the result is the same. I went through the script step by step and substituted the dynamic parameters, unable to figure out what I'm missing. Any additional help is appreciated

    Thank you
  • 3. Re: Solve variable problem with concurrent users - OLT
    glenn.s Explorer
    Currently Being Moderated
    Post the HTTP request text (cookies and request parameters) of both the login which fails and the one which works when you attempt two concurrent vusers. Either post here or somewhere temporary like http://pastebin.com which is a site for sharing code. Post as private or unlisted if you want, though you will still need to tell us the pastebin link.
  • 4. Re: Solve variable problem with concurrent users - OLT
    user13500973 Newbie
    Currently Being Moderated
    Glenn, here are the request headers and response headers for the successful login and failed login. I saved the virtual user display as an attachment but I don't see a way to attach that in these posts. There are few more requests and responses but these are session based ones, so posted only these, but if you want to see all of those I can do that too. Also, I blanked the hostname as I cannot publish it, hope that's ok.

    Thanks for the help

    Request headers and response headers for successful login

    Request Header

    GET /csl/ HTTP/1.1
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    Host: lxXXXX50.us.int:8080
    Accept: text/html, image/gif, image/jpeg, */*
    Accept-Language: en-us
    Connection: Keep-Alive
    Accept-Encoding: gzip

    Response Header

    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)/Tomcat-5.5
    Set-Cookie: JSESSIONID=73AB650CA2580A2950B75298291BECE0; Path=/
    Content-Type: text/html;charset=windows-1252
    Transfer-Encoding: chunked
    Date: Wed, 25 Apr 2012 20:54:46 GMT


    Request Header

    POST /csl/login.do;jsessionid=73AB650CA2580A2950B75298291BECE0?action=login HTTP/1.1
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    Host: lxXXXX50.us.int:8080
    Accept: text/html, image/gif, image/jpeg, */*
    Accept-Language: en-us
    Connection: Keep-Alive
    Accept-Encoding: gzip
    Content-Length: 94
    Content-Type: application/x-www-form-urlencoded
    Cookie: JSESSIONID=73AB650CA2580A2950B75298291BECE0
    Referer: http://lxXXXX50.us.int:8080/csl/

    Postdata:
    checkIfLogin=checkIfLogin&userId=USER2&loginPassword=user2&CURRENT_USER_SELECTED_PAGE=null


    Response Header

    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)/Tomcat-5.5
    Content-Type: text/html;charset=ISO-8859-1
    Content-Length: 400
    Date: Wed, 25 Apr 2012 20:54:46 GMT



    Request headers and response headers for the failed login
    Request Header

    GET /csl/ HTTP/1.1
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    Host: lxXXXX50.us.int:8080
    Accept: text/html, image/gif, image/jpeg, */*
    Accept-Language: en-us
    Connection: Keep-Alive
    Accept-Encoding: gzip


    Response Header

    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)/Tomcat-5.5
    Set-Cookie: JSESSIONID=3A5C9D2682999EA9357C5E1699A69551; Path=/
    Content-Type: text/html;charset=windows-1252
    Transfer-Encoding: chunked
    Date: Wed, 25 Apr 2012 20:54:46 GMT

    Request Header

    POST /csl/login.do;jsessionid=3A5C9D2682999EA9357C5E1699A69551?action=login HTTP/1.1
    User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
    Host: lxXXXX50.us.int:8080
    Accept: text/html, image/gif, image/jpeg, */*
    Accept-Language: en-us
    Connection: Keep-Alive
    Accept-Encoding: gzip
    Content-Length: 92
    Content-Type: application/x-www-form-urlencoded
    Cookie: JSESSIONID=3A5C9D2682999EA9357C5E1699A69551
    Referer: http://lxXXXX50.us.int:8080/csl/

    Postdata:
    checkIfLogin=checkIfLogin&userId=USER1&loginPassword=user1&CURRENT_USER_SELECTED_PAGE=null


    Response Header

    HTTP/1.1 200 OK
    Server: Apache-Coyote/1.1
    X-Powered-By: Servlet 2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 date=200510231054)/Tomcat-5.5
    Content-Type: text/html;charset=windows-1252
    Transfer-Encoding: chunked
    Date: Wed, 25 Apr 2012 20:54:46 GMT

    Edited by: user13500973 on Apr 26, 2012 9:10 AM

    Edited by: user13500973 on Apr 26, 2012 9:13 AM
  • 5. Re: Solve variable problem with concurrent users - OLT
    glenn.s Explorer
    Currently Being Moderated
    That is a fairly simple HTTP transaction with a small number of parameters and cookies, which makes it easy to debug. Both users appear to be properly sending unique data. Unfortunately there is no indication in these client logs for the reason of the failure. Only the final failed Response Header is different (no Content-Length), probably as it redirects to some failure page. The Response Content HTML did not show anything helpful?

    I know you said you configured your load balancer to use only one web/application server, but can you instead bypass the LB completely while still scripting to only one web server? It is possible that traffic from the same IP address is causing the problem, and the most likely place for that would be in the LB config. It's not common though to only have this type of IP problem with concurrently timed logins

    You say you have HTTP logs from the server side? Can you post those for this same pass/fail of two users?
  • 6. Re: Solve variable problem with concurrent users - OLT
    user13500973 Newbie
    Currently Being Moderated
    Glenn, I did not configure the LB, I completely bypassed it by directly hitting the app server. I was trying to edit the server log to show only relevant data but still it is around 1800 lines and not sure copying the whole thing here is a good idea. Is there a way to attach a file here or mail it to you?

    Thanks
  • 7. Re: Solve variable problem with concurrent users - OLT
    glenn.s Explorer
    Currently Being Moderated
    Can you find the webserver HTTP server side log entries for the two HTTP requests? They should be as the standard is described here: http://www.w3.org/TR/WD-logfile.html

    Not application level log files.

    /csl/login.do;jsessionid=73AB650CA2580A2950B75298291BECE0
    /csl/login.do;jsessionid=3A5C9D2682999EA9357C5E1699A69551
  • 8. Re: Solve variable problem with concurrent users - OLT
    user13500973 Newbie
    Currently Being Moderated
    Glenn, I copied the server log here: http://pastebin.com/7V68NaJP

    I was told by the development team that this is the only log that jboss is configured to create. Please see if this is useful in helping me out.

    Thank you
  • 9. Re: Solve variable problem with concurrent users - OLT
    glenn.s Explorer
    Currently Being Moderated
    Yes that is a JBOSS application server level log. JBOSS for web applications cannot be hosted without a HTTP web server, which is typically (by default) a Tomcat web server. We are interested in the HTTP log files from Tomcat.

    The log file you posted is a 2nd tier. You need to see the raw communication of the HTTP Client (which is IE, Firefox, OpenScript, OATS agents, etc..) as it is logged by the first tier (the Tomcat HTTP server)
  • 10. Re: Solve variable problem with concurrent users - OLT
    user13500973 Newbie
    Currently Being Moderated
    Sorry Glen, we were having a lot of application issues. And also, the Tomcat server was not configured to generate the access logs that have the info you were looking for. Now it is configured to save the access logs and once our application is in a stable state, I will re-run the test and post the data.

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points