Documentation Index
Introduction
The system tasks supplied with the applications enables out of
the box testing of the major Internet protocols. The node System Tasks in the Task Types tab of the scenario
editor lists all tasks that are supplied. Using the Task Types tab
you can see overall (short information) about tasks using the
bottom Task Information tab as well as information about the
parameters using the Task Parameters tab:

The set of system tasks in PureLoad depends on the license being
used. If Enterprise Edition is used the following task groups are
included:

and if Web Edition is used:

The following will give an overview of the task groups provided.
For details on parameters, use the tool tip help in the scenario
editor (move the mouse to the parameter you want information on
and hold it for a second).
System Tasks -
Basic and Web
The system tasks supplied with PureTest and PureLoad Web enables
out of the box testing of web applications as well as various
utility tasks.
The following will give an overview of the tasks groups provided
with PureTest and PureLoad Web Edition. For details on parameters,
use the tool tip help in the scenario editor (move the mouse to
the parameter you want information on and hold it for a second).
Basic Tasks
This task group includes various useful utility tasks:
- DescriptionTask
Used for documentation purposes to place
description/documentation text as a task in a Scenario.
- SleepTask
Sleeps for specified time and can be used to add a delay.
Typically used to simulate "think times".
- RandomSleepTask
Similar to SleepTask, but sleeps for a random amount of time.
- SetVariableTask
Sets/initializes a list of scenario variables.
- CheckValueTask
Performs a check to assert that two values are equal
(deprecated).
- VerifyTask
Verify data and/or variable values. Using this task is preferred
over the CheckValueTask this it allows combination of
conditions.
- ScriptTask
Write custom tasks on the fly using Java (Beanshell).
- RuntimeSettingsTask
Sets/updates runtime settings.
- CommandTask
Executes an OS command.
- NullTask
Does not do anything. Normally used for test purposes.
- ErrorTask
Generates an error and does nothing else. Normally used for test
purposes.
Web (HTTP) Tasks
The HTTP tasks are used to test a web application using the HTTP
protocol. (The group is labeled newhttp
for historical reasons.)
- HttpInitTask
Initializes common HTTP parameters used by subsequent HTTP
tasks.
- HttpGetTask
Sends an HTTP GET request.
- HttpPostTask
Sends an HTTP POST request.
- HttpPostFileTask
Sends HTTP POST request with multipart/form-data
- HttpPostContentTask
Sends HTTP POST with specified MIME type content, for example
XML.
- HttpPostBinaryContentTask
Sends HTTP POST with binary coded text.
- HttpHeaderTask
Sets HTTP header values used by subsequent tasks.
- HttpVerifyResponseTask
Verifies previous HTTP response.
- HttpExtractTask
Extracts values from previous HTTP response.
- HttpCookieTask
Sets an HTTP cookie.
- GetHTMLPageTask
Sends an HTTP GET requests for all resources on previous HTML
page.
- HttpGetAndWaitTask
Sends an HTTP GET request repeatedly until the desired
result is found.
- HttpPostSOAPTask
Sends an HTTP POST request with SOAP message.
- HttpPutTask
Sends an HTTP PUT request.
- HttpPutFileTask
Sends an HTTP PUT request where content is read from a
file.
- HttpDeleteTask
Sends an HTTP DELETE request.
- HttpSSLClientCertificateTask
Defines an SSL Client Certificate used by subsequent tasks.
- HttpSetLocalAddress
Sets the local IP address/host to use for subsequent HTTP tasks.
- HttpProgressiveDownloadTask
Used to send HTTP GET requests to download a resource using
progressive download. Typically used to download video files.
- HttpUserAgentProfileTask
Set HTTP headers based on device to be simulated.
- HttpPostChunkedTask
Used to send HTTP POST/PUT/DELETE requests to a HTTP server
using chunked transfer encoding.
- HttpCloseTask
Used to close existing HTTP connections.
Detailed examples on how to use the HTTP tasks are found in the Testing Web Applications
document.
Extract Tasks
Extract tasks operate on textual results from previous tasks. The
extracted value is stored in a variable which can be used in
subsequent tasks. Most of the HTTP tasks (and many of the other
tasks as well) store text data so that it can be extracted from. A
good approach is to execute the text producing task in the
debugger and analyze the result there.
- ExtractTask
Extracts from any text using start and end patterns and
(optionally) regluar expressions.
- XmlXPathExtractTask
Extracts from XML using XPATH expressions.
- PropertyExtractTask
Extracts a property from text interpreted as Java
properties.
- HTMLExtractLinkTask
Extracts HREF link from HTML by the name of the link.
- HtmlXpathExtractTask
Extract from HTML, using XPath. Uses a "relaxed" XML parser to
allow extract using XPath even if XML/HTML isn't well formed.
- RegexTask
Matches a regular expression against the current string data in
the scenario. Each capturing group can be stored in a variable.
- JsonExtractTask
Extract variables from JSON (JavaScript Object Notation) using
an XPath like syntax.
Read more about how to use Regular Expressions and Xpath in the Extract Reference document.
System Tasks -
Enterprise
Note: The Enterprise tasks are only available in the
Enterprise Edition of PureLoad.
Asynchronous
HTTP
Tasks
The Asynchronous
HTTP Tasks may be used to simulate browsers sending
asynchronous HTTP requests using AJAX (Asynchronous JavaScript
and XML) technologies. Examples are long
polling and HTTP streaming.
All
asynchronous
HTTP Tasks that send a request creates an HTTP Exchange that
represents the HTTP request and corresponding response. The
exchange information is returned as task result by all tasks,
including the AsynchHttpGetResponseTask.
The
task
blocks until the request is sent to a web server. The response
must then be checked by using the AsynchHttpGetResponseTask.
A
common HTTP client is used internally by all tasks and threads
(when used by PureLoad). This means that:
- the client uses it's own threads to
process the exchange. I.e Worker threads are not used for the
internal sending requests or receiving responses
- Many connections can be handled by a
few threads (by using PureLoad multi threading feature)
- the client must use the same Proxy
and authentication information (if defined by AsynchHttpInitTask) for all scenarios
used
The following Asynchronous HTTP tasks are available:
- AsynchHttpInitTask
Task used to
initiate the Asynchronous HTTP client and common parameters
used by other Asynchronous HTTP tasks in the same scenario.
- AsynchHttpHeaderTask
Task used to set
HTTP headers used by other Asynchronous HTTP tasks in the
same scenario.
- AsynchHttpGetTask
Task used to send an Asynchronous HTTP GET Request. The task
will not block until full response has been returned, instead a
request is sent ssynchronously and response must be retreived
using AsynchHttpGetResponseTask.
- AsynchHttpPostTask
Task used to send an Asynchronous HTTP POST Request. The task
will not block until full response has been returned, instead a
request is sent ssynchronously and response must be retreived
using
AsynchHttpGetResponseTask.
- AsynchHttpPostContentTask
Task used to send an Asynchronous HTTP POST Request with
specified content. The task will not block until full response
has been returned, instead a request is sent ssynchronously and
response must be retreived using AsynchHttpGetResponseTask.
- AsynchHttpGetResponseTask
Task used to get response from the last executed Asynchrounous
HTTP task. HTTP Request and response data is reported and in
addition a variable is used to report the state for the current
asynchronous HTTP exchange. The reported exchange state can be
one of:
- if no response received
- if response status and
respnse headers received
- if received any content data
- if received complete response
Database (JDBC)
Tasks
The JDBC (Java Database
Connectivity) tasks are used to access a relational
database. These tasks require a JDBC driver for the database. Sun
hosts a list of JDBC drivers at
http://industry.java.sun.com/products/jdbc/drivers. The JDBC
driver must be placed in the INSTALL_HOME/extensions directory.
- JDBCConnectTask
Connects to a database and stores connection for
subsequent tasks.
- JDBCSelectTask
Executes an SQL SELECT query.
- JDBCExecuteTask
Executes an SQL INSERT or UPDATE.
- JDBCDisconnectTask
Disconnects from database and removes connection scenario
attribute.
Mail Tasks
The mail tasks are used to access mail servers using the IMAP or
POP3 protocols and to send mail messages using SMTP protocol.
- MailConnectTask
Connects to a mail server and stores connection for subsequent
tasks.
- MailSendTask
Sends a mail message using SMTP.
- MailReadTask
Reads a mail message using IMAP or POP3 protocol.
- MailDeleteTask
Deletes a mail message.
- MailListTask
Lists mails in a mail box/folder.
- SMTPCheckTask
Connects to an SMTP server and checks that it is
functional.
File Transfer
Program (FTP) Tasks
The ftp tasks are used to test FTP servers.
- FtpConnectTask
Connects to an FTP server and store connection for subsequent
tasks.
- FtpChangeDirTask
Changes FTP remote directory.
- FtpListTask
Lists content of current FTP remote directory.
- FtpGetFileTask
Gets a file from a remote system to local file system.
- FtpPutFileTask
Puts a file from local file system to remote system.
- FtpDisconnectTask
Disconnects from FTP server and removes connection scenario
attribute.
Network Utility
Tasks
A collection of network utility tasks for various protocols.
- EchoTask
Sends and receives an echo request using Echo protocol
(RFC 862) to the specified host. Can use either TCP (default) or
UDP protocol.
- TimeTask
Sends and receives a time request using the Time protocol
(RFC 868) to the specified host. Can use either TCP (default) or
UDP protocol.
- PingTask
Uses an OS command to send ICMP ECHO_REQUEST datagram
packages (pings) to a
server. Reported execution time is average time per ping.
- CheckTcpServiceTask
Checks that a connection can be made to a TCP port and
then closes the connection. Optionally, it can also check for an
expected string of text to be returned.
- DNSLookupTask
Performs a DNS lookup on the specified name.
Directory Server (LDAP) Tasks
The LDAP (Lightweight Directory
Access Protocol) tasks are used to access directory
servers.
- LDAPConnectTask
Connects to a directory server using LDAP and stores the
connection for subsequent tasks.
- LDAPAddTask
Adds an entry specified in LDIF format.
- LDAPReadTask
Performs a directory read operation.
- LDAPSearchTask
Performs a directory search operation.
- LDAPModifyTask
Modifies an entry according to LDIF format.
- LDAPRenameTask
Renames an entry in a directory.
- LDAPDeleteTask
Deletes an entry in a directory.
- LDAPDisconnectTask
Disconnects from directory server and removes connection
scenario attribute.
LDAP tasks (LDAPAddTask and LDAPModifyTask) use the LDAP Data Interchange Format
(LDIF) to represent LDAP entries in text form. Read more about the version of LDIF used.
Telnet Tasks
Telnet tasks are used to access remote hosts using the telnet
protocol.
- TelnetConnectTask
Connects to a remote hosts on a specified port and stores
the connection for subsequenet tasks.
- TelnetLoginTask
Performs a login on the remote host.
- TelnetOperationTask
Sends/receives strings to/from a remote host.
- TelnetDisconnectTask
Disconnects from remote host and removes connection scenario
attribute.
SSH Tasks
Secure shell (SSH) tasks are used to access remote hosts over a
secure connection.
- SSHConnectTask
Connects to a remote host on a specified port and stores the
connection for subsequent tasks.
- SSHExecTask
Execute a remote command over SSH.
- SCPGetTask
Download a file from the remote server to a local directory.
- SCPPutTask
Upload a file to the remote server and directory.
- SSHShellTask
Sends/receives strings to/from a remote host over SSH.
Functionality similar to TelnetOperationTask
- SSHDisconnectTask
Disconnects from remote host and removes connection scenario
attribute.
IP Pool Tasks
Tasks used to manage a pool of IP-addresses. This is typically
use when you want to simulate access from many different client
ip-addresses.
Note that the pool tasks only manage a set IP-addresses, per
worker, that must already exist on the worker machines.
- IPPoolInitTask
Init/define pool of IP addresses for a worker.
- PoolGetTask
Get next available value from pool and assign to a variable.
- PoolReturnTask
Return value to pool.
- PoolInitTask
To initialize a new (empty) pool.
- PoolPutTask
To add new value(s) to a pool.
- SnatInitTask
Task to initialize SNAT (Source Network Address Translation)
kernel module.
See the PureSNAT Linux
SNAT Kernel Module document for details.
Read more about virtual IP addresses and IP Pool tasks the Virtual IP Address Reference
document.
Custom Tasks
Custom tasks are tasks that are designed and implemented
specifically for a protocol or application. Custom task may be
implemented by a customer or by PureLoad Software Group. See Task Programmers Guide
for detailes.
Note: Custom Tasks support is only available in the
Enterprise Edition of PureLoad.
Copyright � 2015 Minq
Software AB. All rights reserved.