Forum Discussion

kalli's avatar
kalli
Occasional Contributor
15 years ago

Run concurrently does not seem equal to threading

Hi.



I have a HTTP load testing project with 50 virtual users, each of whom is calling the same task. Each task contains 10 connections and each connection contains 2 web requests.

To make the load test more realistic and less aggressive on the web server, I tried setting a few seconds delay in the HTTP response event handler, to make each user wait a bit before continuing on to the next request.

However, that seems to result in all the other users waiting for the currently running user.

I would have thought that if "Run concurrently" is checked, I would get a kind of a threading effect, i.e. the other users would continue with their HTTP calls regardless of the dealying user.



Is this not possible? And if so, how should I do this?



Best regards,



Karl.

3 Replies


  • Hello Karl,





    The issue here is that the event handler you have configured is a script that needs to be executed by the scripting engine. At that, the scripting engine cannot execute several scripts in parallel. As a result, when an event needs to be handled for several users at the same time, the users organize into a queue waiting for access to the scripting engine.

    Currently, the only way to simulate think times without having the described effect is to set the start delays for connections.

    You can also consider converting the virtual users without think times to the approximate number of real users that have a certain think time. The following MSDN article will help you with this:

    http://msdn2.microsoft.com/en-us/magazine/cc188783.aspx#S3





    We have a request to implement the built-in think times feature in TestComplete, and your request has increased its rating. Thanks!
  • kalli's avatar
    kalli
    Occasional Contributor
    Thank you, this solved my problem partly.

    I hadn't spotted the possibility to set a start delay on the connections.



    However, I'd like to keep this request alive, since my original thought was to put a random delay time on each http request, and thereby having a different start delay on each call instead of each connection.





    Best regards,



    Karl.

  • Hello Karl,





    Sure, having the random think times feature is quite a reasonable requirement. We will certainly consider implementing it.