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

  • Non-idempotent methods like POST and PUT should not be pipelined, which is why only the GET method is supported by the PureLoad tasks.
  • All HttpPipeliningGetTasks in a pipelined request must be sent to the same host (i.e. the same origin server). If not, there will be an error and the scenario will fail.

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.

About Emblasoft

From innovation, to validation and smooth operation, our solutions help operators and equipment vendors deliver outstanding services and performance to their customers.

Emblasoft Test & Measurement AB
Hammarby allé 29
120 32 Stockholm, Sweden

Send us an email: contact@emblasoft.com

  • Linkedin
  • Twitter
Ready to talk to us?