Parallel Execution of Requests


For better emulation of real work of web browser, WAPT Pro supports the parallel execution of profile requests. It means that new requests to the same or another server can be sent while the previous requests are being executed.

Restriction on the number of concurrent connections is specified in profile properties. There are 2 options responsible for this: "Number of connections for HTTP/1.x" and "Number of connections for HTTP/2". You can select the necessary number in these combo-boxes.

The order of requests execution is regulated by the timeline, dependencies between requests, synchronization points and delays between requests (user think time). As a result, initiation of virtual users' requests in WAPT Pro is very similar to the real work of web browser, its timelines. If requests have no dependencies, they are sent together in a batch according to the number of free connections. As new connections get free, new requests are sent.

Timeline


The timeline of requests execution depends on the order of requests in a profile and delays between requests (user think time).

Any request can be started only after all its previous requests have been started.

If a request does not use any data from the previous requests, it can be executed in parallel with the previous requests.

If a request depends on one of the previous requests, it can be started only after completion of that request. Parallel execution of such requests is impossible.

Dependencies between Requests


There are several types of dependencies between requests in WAPT Pro.

  1. Dependence from the previous request
    Each request in the test sequence depends on the previous requests. It means that execution of any request can begin only after the start of all its previous requests.

  2. Dependence from variables
    If a request uses variables, it cannot be started until all its variables are calculated in the corresponding requests. WAPT Pro automatically detects this type of dependencies at the beginning of test execution.

  3. Manual dependencies
    WAPT Pro allows you to add dependencies between requests manually if you know exactly that some request is initiated only after receiving some data from one of the previous requests. For example, if request B uses a link (a cookie value or something else) which is received in the response to request A, then B depends on A. Request B cannot be initiated until it gets all the necessary data from request A. You can add a new dependence for the request B in its properties in the special Dependencies dialog.

    During recording WAPT Pro automatically detects if some request uses a cookie which is set in one of the previous responses, and creates dependencies. Such dependencies based on cookies are shown for each request in its properties in the same "Dependencies" dialog.

Synchronization Points


WAPT Pro has several types of synchronization points of test execution.

  1. Requests
    Requests which use variables or functions depending on the data received from responses to the previous requests are synchronization points. When a virtual user reaches such request, its execution (and execution of subsequent requests) is started only after receiving all the necessary data.

  2. Operators Loop and While
    The beginning of loop iteration is a synchronization point. A new iteration cannot be started until all requests of the previous iteration are completed.
    Check of condition in the While operator can also be a synchronization point if it depends on the data received in responses to the previous requests.

  3. If Then Else operator
    Check of condition in the If Then Else operator can be a synchronization point if it depends on the data received in responses to the previous requests.

  4. JavaScript operator
    The JavaScript operator is a synchronization point. No new requests can be started until the end of JavaScript execution.

  5. Completion Point operator
    This operator forbids execution of all subsequent requests until all previous requests are completed (which are on the same nesting level). It is also a synchronization point.

Next page