> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Test Console

> You can test SOAP and REST APIs without using external tools like Postman or SOAP UI, save test scenarios, define assertions, examine requests and responses, and manage environment variables.

<Frame caption="Test Console">
  <img src="https://mintcdn.com/apinizer/lhZQlOH1wI3EhPE4/images/develop/test-debug-araclari/test-console/test-console-1.png?fit=max&auto=format&n=lhZQlOH1wI3EhPE4&q=85&s=7f7f630b97410512416595df417cc578" alt="Test Console" width="800" height="600" data-path="images/develop/test-debug-araclari/test-console/test-console-1.png" />
</Frame>

Test Console consists of three main sections:

<CardGroup cols={3}>
  <Card title="Request" icon="arrow-right">
    Manages request preparation operations
  </Card>

  <Card title="Response" icon="arrow-left">
    Manages result operations related to response
  </Card>

  <Card title="Test Records" icon="bookmark">
    Displays test history and tests saved as groups
  </Card>
</CardGroup>

## Request

### Creating Request Address

There are two ways to create a request address:

* The endpoint to be tested can be written manually
* An API Proxy on Apinizer can be tested from the **Test Helper** interface or a request address can be created from an API definition file

#### Creating Request Address with Test Helper

When the selected button in the following image is clicked, the Test Helper dialog opens.

<Frame caption="Test Helper Button">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-2.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=faa5452ac0d900b70508c49876ae9203" alt="Test Helper button" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-2.png" />
</Frame>

<Frame caption="Test Helper Settings">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-3.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=f1633c86c96d516696f0d6d3fde8643d" alt="Test Helper settings" width="600" height="500" data-path="images/develop/test-debug-araclari/test-console/test-console-3.png" />
</Frame>

The fields used for Test Helper configuration are shown in the table below.

| Field                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Request Type**     | The API type to be tested is determined by selecting one of Proxy, Proxy Group, Swagger, OpenApi, WADL, WSDL options. These types:<br /><br />**Proxy, Proxy Group**<br /><br />These types are selected when API Proxies in your selected project on Apinizer are desired to be tested.<br /><br />Also, it is tested from the environments where the selected API Proxy is deployed.<br /><br />**Swagger, OpenApi, WADL, WSDL**<br /><br />These types are selected when testing is desired to be performed from an API definition file. |
| **Proxy Group List** | API Proxy groups that can be tested within the same project are listed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| **Proxy List**       | API Proxies that can be tested within the same project are listed.<br /><br />The Proxy must be deployed to be tested.                                                                                                                                                                                                                                                                                                                                                                                                                      |
| **Service URL**      | The service URL of the API to be tested. Parse operation is performed via URL and endpoints of the API are created.                                                                                                                                                                                                                                                                                                                                                                                                                         |
| **Endpoints**        | The endpoint to be tested is selected from the endpoints in the API.                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| **Environment List** | The environment where the Proxy will be tested is selected.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

<Info>
  If the created endpoint has a parameter list and example request body, they are also created by Apinizer.
</Info>

### Adding Query Parameter

Query parameters of the request are managed from the Parameters tab. Each edited value is automatically updated on the URL information.

<Frame caption="Adding Query Parameter">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-4.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=7ada72f012d1ec16d2d3f71e169d7111" alt="Adding Query Parameter" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-4.png" />
</Frame>

### Adding Header

Request headers are managed from the Headers tab.

<Frame caption="Adding Header">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-5.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=d40b182559faf1eba29ae1a462cba2c9" alt="Adding Header" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-5.png" />
</Frame>

### Adding Body

Data to be added to the request body can be created in two different ways: raw, x-www-form-urlencoded

<Frame caption="Adding Body">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-6.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=7e293041ee3461736d18e42dcf176ce2" alt="Adding Body" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-6.png" />
</Frame>

#### Format XML

Format XML operation can be performed with the data to be added to the request body.

<Frame caption="Format XML">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-7.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=9549bb41ac8f24bfca106cbb498f0c2b" alt="Format XML" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-7.png" />
</Frame>

#### Format JSON

Format JSON operation can be performed with the data to be added to the request body.

<Frame caption="Format JSON">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-8.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=14e07b5b42eada0065619c32a344c6c1" alt="Format JSON" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-8.png" />
</Frame>

#### WS Security Sign

WS Security Sign operation can be performed when the data to be added to the request body is selected as raw.

<Frame caption="WS Security Sign">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-9.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=03e5b4dea784d576ea3c9b333f68bc00" alt="WS Security Sign" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-9.png" />
</Frame>

When the WS Security Signing button is pressed, the data in the test console is signed with the following configuration.

<Frame caption="WS Security Sign Settings">
  <img src="https://mintcdn.com/apinizer/lhZQlOH1wI3EhPE4/images/develop/test-debug-araclari/test-console/test-console-10.png?fit=max&auto=format&n=lhZQlOH1wI3EhPE4&q=85&s=aaafa631fdac815877ee9c63073331f9" alt="WS Security Sign settings" width="600" height="500" data-path="images/develop/test-debug-araclari/test-console/test-console-10.png" />
</Frame>

The fields used for WS Security Sign configuration are shown in the table below.

| Field                          | Description                                                                                                                                                                                                                                          |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Private Key**                | The textual form in PKCS#8 PEM format of the Private Key value to be used for signing.                                                                                                                                                               |
| **Certificate**                | The textual form in PKCS#8 PEM format of the certificate to be used for signing.                                                                                                                                                                     |
| **Signature Algorithm**        | Signature algorithm information.                                                                                                                                                                                                                     |
| **Signature Canonicalization** | Signature canonicalization information.                                                                                                                                                                                                              |
| **Digest Algorithm**           | Digest algorithm to be used in the signature.                                                                                                                                                                                                        |
| **Key Identifier Type**        | Information about where and how the signature key will be placed in the message.                                                                                                                                                                     |
| **Use Single Certificate**     | Information about whether signing will be done with a single certificate.                                                                                                                                                                            |
| **Must Understand**            | Specifies what the "Must Understand" value should be in the WS-Security header.                                                                                                                                                                      |
| **WS Encryption Part**         | Information about which parts of the data will be signed. Multiple values can be entered.<br /><br />XML element name to be signed, namespace information of the XML element, and information about whether it will be signed as Element or Content. |

#### Sign JSON

Sign JSON operation can be performed when the data to be added to the request body is selected as raw.

<Frame caption="Sign JSON">
  <img src="https://mintcdn.com/apinizer/lhZQlOH1wI3EhPE4/images/develop/test-debug-araclari/test-console/test-console-12.png?fit=max&auto=format&n=lhZQlOH1wI3EhPE4&q=85&s=0bb57b3fb959ed06f6c67b844cf81547" alt="Sign JSON" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-12.png" />
</Frame>

When the JSON signing button is pressed, the data in the test console is signed with the following configuration.

<Frame caption="Sign JSON Settings">
  <img src="https://mintcdn.com/apinizer/lhZQlOH1wI3EhPE4/images/develop/test-debug-araclari/test-console/test-console-11.png?fit=max&auto=format&n=lhZQlOH1wI3EhPE4&q=85&s=64c3d1fb86ca7a0f530b6c715f7fc2bc" alt="Sign JSON settings" width="600" height="500" data-path="images/develop/test-debug-araclari/test-console/test-console-11.png" />
</Frame>

The fields used for Sign JSON configuration are shown in the table below.

| Field                     | Description                                                                                                                                   |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| **Algorithm**             | Algorithm information for signing                                                                                                             |
| **Private Key**           | The textual form in PKCS#8 PEM or JWK format of the Private Key value to be used for signing.                                                 |
| **Add Issue Time**        | This option should be activated if the creation time is to be added to the signature to be created.                                           |
| **Add Expiration Time**   | This option should be activated if the expiration time is to be added to the signature to be created.                                         |
| **Expiration Time Value** | Information about how long the signature will be valid                                                                                        |
| **Expiration Time Unit**  | Time unit of the validity period of the signature.                                                                                            |
| **JWT Headers**           | If extra header information is desired to be added to the header part of the data to be signed, it can be added in JSON format to this field. |
| **Payload**               | If extra information is desired to be added to the body part of the data to be signed, it can be added in JSON format to this field.          |

### Creating Assertion

The Assertion tab allows verification of the response related to the request by querying values in the body with timeout, HTTP status code, body, JsonPath/XPath and comparing with expected values.

<Frame caption="Creating Assertion">
  <img src="https://mintcdn.com/apinizer/lhZQlOH1wI3EhPE4/images/develop/test-debug-araclari/test-console/test-console-13.png?fit=max&auto=format&n=lhZQlOH1wI3EhPE4&q=85&s=6a23fc4f8c765ffb5bac1a0a4e982bcb" alt="Creating Assertion" width="600" height="500" data-path="images/develop/test-debug-araclari/test-console/test-console-13.png" />
</Frame>

The fields used for Assertion configuration are shown in the table below.

| Field                         | Description                                                                                                                          |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| **Use Timeout for Assertion** | If activated, verification is performed using the timeout value of the request.                                                      |
| **Result Status Code**        | Activated to perform verification based on status code.                                                                              |
| **Expected Status Code**      | The value of the expected status code is written.                                                                                    |
| **Result Body**               | Activated to verify the body of the response.                                                                                        |
| **Expected Result Body**      | The value of the expected response body is written.                                                                                  |
| **XPath Result**              | Activated to verify a value within the body of the response. The data type of the body value of the response must be in XML format.  |
| **Expected XPath**            | An XPath query is written for the key information containing the value to be verified in the response body.                          |
| **Expected XPath Result**     | The expected result is written for the XPath information to be verified in the response body.                                        |
| **JsonPath Result**           | Activated to verify a value within the body of the response. The data type of the body value of the response must be in JSON format. |
| **Expected JsonPath**         | A JsonPath query is written for the key information containing the value to be verified in the response body.                        |
| **Expected JsonPath Result**  | The expected result is written for the JsonPath information to be verified in the response body.                                     |

### Settings

Timeout and secure connection (SSL/TLS/mTLS) settings are managed in the Settings tab.

<Frame caption="Secure Connection Settings">
  <img src="https://mintcdn.com/apinizer/XRJWxSFfZRpuzRE6/images/develop/test-debug-araclari/test-console/test-console-secure-connection-settings.png?fit=max&auto=format&n=XRJWxSFfZRpuzRE6&q=85&s=038c8b338fbb339e88a940202db61a93" alt="Test Console Settings tab - Secure Connection Settings" width="1000" height="700" data-path="images/develop/test-debug-araclari/test-console/test-console-secure-connection-settings.png" />
</Frame>

#### Top fields

| Field                     | Description                                                                                                                                                                                          |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Connection Timeout**    | Maximum time in seconds to wait for the connection. Helper text: maximum time to wait for the connection.                                                                                            |
| **Skip SSL Verification** | When on, server certificate verification is skipped; useful for self-signed environments. When enabled, TrustStore, certificate, and client certificate panels are typically not used or are hidden. |

#### Expandable sections

Use **+** on the right to expand each panel and configure TrustStore, PEM certificate, client KeyStore, and protocol/hostname verification:

* **TrustStore (JKS/PKCS12)**
* **Certificate (PEM)**
* **KeyStore (Client Certificate)** — for mTLS when the backend requires a client certificate
* **Protocol & Verification Settings** — supported TLS versions and hostname verifier

#### TrustStore (JKS/PKCS12)

Used to verify the server certificate:

| Option                | Description                                                                                         |
| --------------------- | --------------------------------------------------------------------------------------------------- |
| **Select Existing**   | Choose a TrustStore from the existing KeyStore pool. Click the plus (+) button to create a new one. |
| **Upload TrustStore** | Upload a .jks, .p12, or .pfx file. Enter the password; use **Try It** to verify the password.       |

#### Certificate (PEM)

PEM format certificate usage:

| Option              | Description                                                                                             |
| ------------------- | ------------------------------------------------------------------------------------------------------- |
| **Select Existing** | Choose a certificate from the existing certificate pool. Click the plus (+) button to create a new one. |
| **Upload PEM Cert** | Upload a .pem, .crt, or .cer file.                                                                      |

#### KeyStore (Client Certificate)

Client certificate for mTLS when the target server requires it:

| Option              | Description                                                                                       |
| ------------------- | ------------------------------------------------------------------------------------------------- |
| **Select Existing** | Choose a KeyStore from the existing KeyStore pool. Click the plus (+) button to create a new one. |
| **Upload KeyStore** | Upload a .jks, .p12, or .pfx file. Enter the password; use **Try It** to verify the password.     |

#### Protocol and Verification Settings

| Field                   | Description                                                                                  |
| ----------------------- | -------------------------------------------------------------------------------------------- |
| **Supported Protocols** | TLS/SSL protocol versions can be selected (TLSv1.3, TLSv1.2, etc.).                          |
| **Hostname Verifier**   | Server hostname verification method can be selected (Default, Strict, Browser Compat, Noop). |

<Tip>
  To reuse uploaded TrustStore, Certificate, or KeyStore files on other screens later, check **Save to Keystore Pool** or **Save to Certificate Pool** and provide a name.
</Tip>

<Info>
  For detailed information about the KeyStore and TrustStore pool, see the [Key Stores](/en/admin/secrets-management/keystore-management) page.
</Info>

### Code Snippet

The Code Snippet tab enables generating the code necessary to send the request via cURL.

<Frame caption="Code Snippet">
  <img src="https://mintcdn.com/apinizer/lhZQlOH1wI3EhPE4/images/develop/test-debug-araclari/test-console/test-console-15.png?fit=max&auto=format&n=lhZQlOH1wI3EhPE4&q=85&s=39a5ae339b84776c478c7aee2b619420" alt="Code Snippet" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-15.png" />
</Frame>

### Creating New Test

If a new test is desired after a test operation is performed, the test field information can be refreshed by clicking the button marked in the following image.

<Frame caption="Creating New Test">
  <img src="https://mintcdn.com/apinizer/lhZQlOH1wI3EhPE4/images/develop/test-debug-araclari/test-console/test-console-16.png?fit=max&auto=format&n=lhZQlOH1wI3EhPE4&q=85&s=28abaf69a74880eb4ae05a5796474b58" alt="Creating New Test" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-16.png" />
</Frame>

## Response

### Response Body

The body of the response is shown in this section.

<Frame caption="Response Body">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-17.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=345f9fe1dff57b9e864a1f0fc5ba1f6d" alt="Response Body" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-17.png" />
</Frame>

Format XML and Format JSON operations can be performed with the response body data.

### Request Response Headers

The headers of the response are shown in this section.

<Frame caption="Request Response Headers">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-18.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=4882aad1649ed94c38cac3e503bd1ebe" alt="Request Response Headers" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-18.png" />
</Frame>

### Assertion Results

Results about whether assertions added to the request were successful are shown in this tab.

<Frame caption="Assertion Results">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-19.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=2e9736ae70cc37b3b93ab82d864dbd0e" alt="Assertion Results" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-19.png" />
</Frame>

### Response Logs

The log of the response information is seen in this section.

<Frame caption="Response Logs">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-20.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=5c3299bf93adf46c44729adaef63534b" alt="Response Logs" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-20.png" />
</Frame>

## History

The history of each request tested in the Test Console is stored. Test history is categorized by the days they were tested.

When the link to the test's log is clicked, the request can be tested again.

<Frame caption="Test History">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-21.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=75befaa1876f5cf0146b97dd42872b18" alt="Test History" width="400" height="500" data-path="images/develop/test-debug-araclari/test-console/test-console-21.png" />
</Frame>

### Test History Deletion Operations

* Click the **Clear All** link to delete all history information
* Delete day-based history from the detail menu of the relevant day information
* Delete only history from the detail menu of the relevant history information

## Collection

Collection is the creation of test records configured under a group structure so that tests can be reused.

Multiple collections can be found within each collection.

### Saving Test to a Collection

After completing your test, click the **Save** button marked in the image to save it.

<Frame caption="Saving Test to Collection">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-22.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=d9cae275ed2a47fef7cd54ea194ac369" alt="Saving Test to Collection" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-22.png" />
</Frame>

Then, click the link of the collection to which the test will be assigned in the dialog named **Collection List** that opens.

Apinizer creates a collection named 'Default Collection' for startup.

After selecting your collection, the test is saved by giving it a name. The name of the default test record is determined as the endpoint URL information you tested.

<Frame caption="Collection List">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-23.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=6db628f2cba69f8c1c98b37563059c7c" alt="Collection List" width="400" height="500" data-path="images/develop/test-debug-araclari/test-console/test-console-23.png" />
</Frame>

### Collection-Based Operations

Operations that can be performed on a collection are done through the detail menu of the collection in the following image.

<Frame caption="Collection-Based Operations">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-24.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=fe9aa16a9e4c81150ab6872506d9aa26" alt="Collection-Based Operations" width="300" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-24.png" />
</Frame>

**Rename:** Used to change the name of the relevant collection. When clicked, a new name is given to the screen that appears and saved.

**Add New Collection:** Used to add a new collection inside the relevant collection.

**Delete Collection:** Used to delete the relevant collection. If a collection is deleted, all records connected to that collection will be deleted.

### Record-Based Operations

Many operations that can be performed on a record are accessed through the detail menu in the following image.

<Frame caption="Record-Based Operations">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-25.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=aaf7cb5c45705b0b8cdec4969a637ef2" alt="Record-Based Operations" width="300" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-25.png" />
</Frame>

**Rename:** Used to change the name of the relevant test. When clicked, a new name is given to the screen that appears and saved.

**Duplicate:** Used to create a copy of the relevant test.

**Create Monitor:** Used to create an Uptime Monitor using the relevant test. Click the [Uptime Monitor](/en/monitor/api-health-check) page for detailed information.

**Delete Test:** Used to delete the relevant test.

**Save As:** Click the button marked in the image to save a saved test to another collection.

<Frame caption="Save As">
  <img src="https://mintcdn.com/apinizer/RRMb-IlNV4OGXuzC/images/develop/test-debug-araclari/test-console/test-console-26.png?fit=max&auto=format&n=RRMb-IlNV4OGXuzC&q=85&s=1e26c53ee86cfd7bc8be17ed4d721ace" alt="Save As" width="600" height="400" data-path="images/develop/test-debug-araclari/test-console/test-console-26.png" />
</Frame>
