HTTP Request Test Step
About HTTP Request test step
An HTTP Request test step is a standalone HTTP request that can be used to call any HTTP service. This means you can use it to send an HTTP request through HTTP, HTTPS or JMS.
Using the test step’s properties, you can specify the request type (GET, POST or other), target URL, parameters, attachments and other values. You can also define specific assertions for checking the server response.
Create HTTP Request test step
To create an HTTP request, you do not need to have a service added to your project. When you add the test step, you will see the New HTTP Request Step dialog:

Test Step name – Specifies the name of a new test step.
Endpoint – Specifies the endpoint, to which the request will be sent.
Extract Params – Allows you to obtain parameters and their values from the URL specified in the Endpoint field.
Parameters – The list of request parameters. To modify them, use the toolbar buttons:
or Add Parameter– adds a new parameter.
or Delete Parameter– removes the selected parameter.
– extracts parameters from an endpoint specified in the ensuing dialog.
and
– Move the selected parameter down and up correspondingly.
For each parameter, you can modify its Name, Value and Type (Query, Template and so on). To learn more, see REST Parameter Types.
Method – specifies the type of the request (GET, POST, PUT, and so on).
Edit HTTP Request test step
You can modify test step settings in its editor:
![]() |
Here is a brief description of available panels in the request editor:
Name | Description |
---|---|
Displays a table of request parameters. ImportantYou can use the project, test suite or other properties to specify parameter values. See the Modify Request Parameters example. | |
Displays the header and body of the request in a text format. ImportantReadyAPI fills in this tab after you run the test step. | |
Works for the requests that pass data in the XML format. The tab displays the request body content as a tree. You can change elements’ and attributes’ values in place. Just double-click the cell with the needed value. | |
On this panel, you select the (Basic, NTLM, or SPNEGO/Kerberos) authorization type for your request. You can also specify authorization parameters here. | |
On this panel, create and modify custom header fields. | |
On this panel, you specify the files to be attached to the request. | |
Displays the document schema (if available). | |
Displays the contents of the node selected in the Outline panel, and the contents of its sibling nodes, if any. If needed, you can modify data directly in the table cells. ImportantThis panel is shown only if the request body contains XML data. | |
Displays the XML code of the node that you selected in the Outline panel. | |
Displays the Java Message Service headers and properties. This panel is available if you specified a JMS endpoint for the request. |
Work with the response
Once you run the test step, the server response is available in the response editor. ReadyAPI shows the response in the number of representations: JSON, XML, HTML, RAW, Outline, and Overview. Besides that, when the response contains additional data (attachments, SSL certificates, and so on) it shows it in the bottom tabs. To learn more about them, see Response tabs.
Property list
Besides editors and inspectors, you can adjust the test step’s behavior by using its properties in the HTTP Request Properties and Custom HTTP Request Test Step Properties panels in the Navigator.
HTTP Request Properties
Name | Description |
---|---|
Name | The test step’s name. |
Description | Text describing the test step. |
Encoding |
|
Endpoint | The target URL (same as the Request URL in the test step editor). Do not forget to specify the port number, if your web service uses it. |
Timeout | Specifies the number of milliseconds to wait for the server response. If no data arrives within the specified time period, the test step is considered to be failed. If the property value is 0 or is not specified, the wait time is infinite. |
Bind Address | Specifies the network interface (IP address), through which ReadyAPI will send the request. You may need to use this property if your computer has several network interfaces (several network cards). |
Follow Redirects | Specifies how ReadyAPI handles redirects. If the property is |
Follow 302 Redirect with GET | If set to ImportantWorks only when the |
Username | The username used for authorization (if the request requires authorization). You can also change this property on the Auth page of the test step editor. |
Password | The password used for authorization (if the request requires authorization). You can also change this property on the Auth page of the test step editor. |
Domain | The domain name used for authorization (if the request requires authorization). You can also change this property on the Auth page of the test step editor. |
Authentication Type | Specifies the authorization type to be used for the connection. This property is read-only in the Properties panel. To change it, switch to the Auth tab in the test step editor, and choose the desired authorization type and credentials there. |
SSL Keystore | Specifies the file storing private keys that are used for sending the request. Works for HTTPS requests only. |
Strip whitespaces | Works for request contents in the XML format. Specifies whether ReadyAPI removes comments and unneeded whitespaces from elements and attributes (required by some servers). |
Remove Empty Content | Works for request contents in the XML format. Specifies whether ReadyAPI removes empty elements from the request. You may find this property useful for data-driven tests: in some cases, you may have no data, so it is preferable not to include them into a request at all rather than to send an empty element). |
Entitize Properties | If |
Multi-Value Delimiter | A URL can include several parameters having the same name. This property specifies the delimiter that will be used for the values in the editor. See below. |
Pretty Print |
|
Dump File | The fully qualified name of the file, to which the test step will save the server's response. If the property is empty, the test step will not save the response to a file. |
Max Size | The maximum number of leading bytes of the response that will be saved in the memory and visible in the editor. 0 (default) indicates that ReadyAPI will save the entire response. You can use this property to save to the memory, if the response is large. If you need the entire response, you can save it to a file specified by the Dump File property. ImportantIf Max Size is not 0, assertions that you create in the test step will not work as there may be no data to verify. To check the server response in this case, use the Assertion test step. |
Discard Response | Specifies whether the test step saves the response data ( |
Send Empty Parameters | Specifies whether ReadyAPI will send empty values in the URL parameters of the request. |
Custom HTTP Request Test Step Properties
Values on the Custom HTTP Request Test Step Properties tab are available to other test steps in your project. For instance, you can verify these property values with the Assertion test step, or check them and change the execution flow with the Conditional GoTo test step.
You can load values of custom properties from a file, or save them to a file. To learn more, see About Properties.
This tab contains:
Properties that correspond to the request’s URL and body parameters.
Properties that provide access to the request and response data.
Name | Description |
---|---|
Response | The response data without headers. You can see the same content in the response XML panel. To get response data without headers, use the |
RawRequest | The body content of the sent request. You can see the same content in the request Raw panel. Property expansions are converted to the expected values. To get data with unconverted property expansions, use the |
Endpoint | Duplicates the |
Username | Duplicates the |
Request | The request body without headers. Property expansions are represented as they are without conversion to expected values. To get the sent request with converted property expansions, use the |
HarResponse | The response in the .har format. |
Domain | Duplicates the |
ResponseAsXml | The response data as an XML DOM document (if possible). |
Password | Duplicates the |
RawResponse | The response data with headers. You can see the same content in the Raw panel of the response editor. To get response data without headers, use the |
Test step toolbar
The test step toolbar contains commands that allow you to modify a test step or appearance of the test step editor.
![]() |
Here is a brief description of some commands:
Method – Specifies the request type. ReadyAPI supports all the standard HTTP request types: GET (default), POST, PUT, DELETE and others. For more information on available types, see Method Definitions in the HTTP specification.
URL – Specifies the URL, to which the test step will send the request. You can enter the URL with parameters here. For more information on specifying parameters, see below. If needed, specify the port number.
Download Resources – This property has effect only for HTTP requests that return web pages. Web pages typically refer to additional resources like files and images. The property specifies whether the request will return these resources as attachments. You can see these resources in the response Attachments section.
Verify response
To add, change or modify the assertions, use the Assertion panel. Use the following assertions:
Name | Description |
---|---|
Property Content: | |
Verifies that the response contains the specified string. | |
Verifies that the value of a property is equal to the specified value. | |
Checks whether the binary response is equal to a file. | |
Verifies that the message contains expected contents. | |
Verifies that the response does not contain the specified value. | |
Verifies the message content and metadata such as headers and the status code. | |
Checks whether the result of the specified XPath expression is equal to the specified value. | |
Verifies that the result of the specified XQuery expression is equal to the specified value. | |
Compliance, Status and Standards | |
Checks whether all resources are available and downloadable. | |
Verifies that the response contains the expected value of an HTTP header. | |
Verifies that the response contains the specified HTTP header. | |
Checks whether the HTTP status code is not on the specified list. | |
Verifies that a request and response are compliant with the specified JSON schema. | |
Verifies that a request and response are compliant with an OpenAPI or Swagger definition. | |
Checks whether the HTTP status code is in the specified list. | |
Script | |
Executes a script to perform a custom assertion. | |
SLA | |
Checks whether the response was returned within the specified timeout. | |
Security | |
Checks whether the response does not contain any valuable information. |
Logging
While the test step editor is open, brief information on sent requests is listed in the Log tab. If the test step is run as part of a test case, you can see a more detailed log in the Transaction Log panel.
Working with
Below, you can find information on common tasks that you can perform with the HTTP Request test step.
Change endpoint
Specify a new endpoint in the test step toolbar.
Change method
To change the method of the HTTP request, use the method drop-down list on the test step toolbar.
Modify request parameters
You can modify request parameters on the Request panel. Toolbar buttons allow you to add, remove parameters, extract parameters from the specified URL, and change their order.
You can specify URL parameters for the request. You specify the URL when creating the test step. ReadyAPI automatically extracts parameter values from this URL string and displays them on the Request tabbed page. Use the page's toolbar to add more and delete the existing parameters, and to change their order.
If you need to specify multiple values for the same parameter, do this in the following way:

Do not forget to specify the delimiter character in the Multi-Value Delimiter property in the Properties panel.
Load parameter from file
To load the content of any parameter from a file:
Add the file to the Attachments panel in the request editor.
Get the data by using the property expansion with the following syntax:
file:myFileName.log
:
Use property expansion in properties
To specify values in text boxes and cells in the test step editor, you can use the project, test suite, and other property types. To refer to a property, use the following syntax:
${#Project#MyPropertyName}
– Project properties.${#TestSuite#MyPropertyName}
– Test suite properties.${#Env#MyPropertyName}
– Environment properties.
For more information, see Property Expansion.
Add custom headers
To add a custom header:
Open the Headers panel of the request editor.
Click
and specify the desired header and its value.
Remove the “Content-Length: 0” header
To remove the Content-Length: 0
header from your request, add the -Dsoapui.send.zero.content.length=false
parameter to the vmoptions file located in the <ReadyAPI>/bin
directory and restart ReadyAPI.
Specify authorization
To add authorization:
Open the Auth panel of the request editor.
Select the desired Authorization profile.
To learn more about authorization, see Authentication.
Verify response
To verify that the server returns the expected response, use assertions:
Click Add Assertion on the request editor toolbar.
In the Add Assertion dialog, specify the desired assertion.
Set up a new assertion according to your needs and click OK.
Download resources
Web pages typically refer to additional resources like scripts, images, css-files and other resources. To make sure the request retrieves all required resources, enable the Download Resources option.
![]() |
Important
This property has effect only for HTTP requests that return HTML web pages.
The resources referenced by the page will be returned as attachments.
The Response will display the downloaded page. You can view the downloaded resources in the Attachments panel:
![]() |
To verify that all the resources are downloaded, use the HTTP Download Resources assertion.
Important
You need to enable the Download Resources option. Otherwise, the assertion fails.
![]() |