HTTP Pipelining Tasks - Version 2.1

This document describes the HTTP Pipelining Tasks, provided as custom tasks that must be installed with PureLoad/PureTest for each installation using these tasks.

Before you use the tasks, read more about installing and how to load custom tasks.

Task overview

HTTP Pipelining

HTTP pipelining is a technique in which multiple HTTP requests are sent on a single TCP connection without waiting for the corresponding responses. However, the server must send its responses in the same order that the requests were received. HTTP/1.1 conforming servers are required to support pipelining. This does not mean that servers are required to pipeline responses, but that they are required not to fail if a client chooses to pipeline requests.

The purpose of the Http Pipelining Tasks is to test HTTP/1.1 pipelining. The Http Pipelining Tasks have very limited features compared to the regular PureLoad Http Tasks.

 More about http-pipelining:

Important notes

Provided tasks

Http pipelining scenarios are created using the following:


HttpPipeliningInitTask

This task sets parameters and creates a client to be used by all subsequent tasks.

Parameters

Local Host
Local address to be used when creating connections (empty means default local host).
User Agent
Browser identity sent using request header. Default is "PureLoad".
MaxConnections
The maximum number of connections that will kept alive for reuse between requests. -1 means unlimited (default).
Read Timeout
Timeout for socket read operations in milliseconds (i.e socket connect timeout and socket SO_TIMEOUT).
Save Content Types
Comma separated list of content types to be saved (e.g text/,application/xml). If the returned "Content-Type" response header doesn't match, response content is not saved in memory.

HttpPipeliningHeaderTask

This task is optional. It sets requests headers to be used as defaults for all subsequent GET requests.

Parameters

HTTP Headers
A list of header Keys and Values. The Key is the name of the header and the Value is the value of the header. If the value is left empty the header will be removed.

HttpPipeliningGetTask

This task defines a request that will later be sent in a HttpPipeliningSendAndReceiveTask. All GET requests that are issued in the same pipelining connection must have the same host. If two or more HttpPipeliningTasks corresponding to the same HttpPipeliningSendAndReceiveTask have different hosts the task will fail.

Each task must use a unique transaction id to be used later by HttpPipeliningResponseTask to retreive a specific response.

Parameters

URL
The URL used by the HTTP GET request.
Transaction ID
A unique id within the scenario identifying a request-response transaction.
Expected Response Codes
Comma separated list of valid response codes. An empty value means accept all response codes < 400.

HttpPipeliningSendAndReceiveTask

This task sends all the requests that have been prepared using HttpPipeliningGetTasks since the last issued HttpPipeliningSendAndReceiveTask. The requests must have the same host (i.e. origin server). Several requests may be sent before any response has been received.

Executeinon time, Read and written bytes, as well as number of transactions are reported. To extract information about responses and response content HttpPipeliningResponseTask must be used.


HttpPipeliningResponseTask

This task is used display result from a HTTP pipeline transaction, executed using HttpPipeliningSendAndReceiveTask.

A unique transaction id must be specified to indentify the transaction corresponding to the request enqueued by HttpPipeliningGetTask.

Parameters

Transaction ID
A unique id within the scenario identifying a request-response transaction.

HttpPipeliningCloseTask

This task is used to close the client initiated by HttpPipeliningInitTask and any current connection(s) used.