In this Test type, users can manually design scripts from an API perspective using an interactive UI to compose HTTP requests with different methods. The screen is divided into two parts: the Left Pane, which provides options to manage the Test, request list, and configurations, and the Right Pane, which contains tabs for designing test cases and viewing test runs. A default Test name is auto-generated, which can be renamed from edit tag, and the kebab menu (⋮) offers options like managing Tests, version control, applying test profiles, adding notes, reset settings, and downloading the test. This setup allows users to easily create, organize, and manage API-based Tests.

## Left Pane

#### Edit Test Name

- Whenever a Test is created, its default name follows this format: "Test_Month_Day_HHMMSS" Example: "Test_Nov_08_011948"
- The user can rename the Test by clicking the (edit icon) next to the name.

## Kebab Menu (⋮)

The kebab menu provides multiple options for managing and configuring Tests.
Note: To use these options, the Test must be saved at least once.

- Manage
  - Copy Test
    - Copies the entire Test directory along with related files.
    - On clicking Copy, a dialog box opens where the user can provide the copy name, project, and sub-project.
    - By default, the Test name is prefixed with "Copy_".
    - After saving, a success message is displayed at the top right corner.
  - Move Test
    - Moves the Test to a different project.
    - Select the project and sub-project from the dialog box and click Save to complete the move.
  - Save as Test Profile
    - Allows saving the Test as a reusable test profile.
    - Select the project and sub-project, then click Save.
  - Delete Test
    - Permanently deletes the Test.
    - A confirmation pop-up appears before deletion.
- Version Control: Version Control helps maintain changes made in Tests. If GIT is configured, options for Version Logs and Version Commit are available; otherwise, Cavisson Version System options are shown.
  - Version Logs: Displays past versions of a Test with the following details:
    - Version: It will show a Test version.
    - Date time: Shows the date and time of the log.
    - Author: The owner of the file/logs.
    - Comments: Any comment made by the owner is mentioned here.
    - Update: It will be updating the Version logs.
    - Diff: Shows the changes between the new and old version of modified files/logs.
  - Version Commit
    - Commits changes to the local repository.
    - The user must provide comments and click Commit.
    - A success message confirms that the commit is completed.
- Select Test Profile: Allows the user to apply any available test profile in the current workspace to the current Test.
- Advance: Provides additional advanced settings (details to be documented if enabled in the system).
  - Add Notes
    - User can add descriptive notes about the current Test.
    - Notes are saved inside the Test itself.
  - Reset Setting
    - Syncs the Test with the server.
    - For a new Test, this resets values to defaults.
  - Download Test
    - Downloads the entire Test folder along with the Test.conf file as a .tar archive.
    - Download begins automatically once the option is selected.

## Tags

Tags are useful for users to uniquely identify Tests from test run UI. Users can filter Tests based on tags. Tags can be anything that the user wants to associate the current Test with. For example, SpikeTest, ProductionTest and DataGen, etc.

## Save Options

- Save & Debug
  - It will save the Test and execute a debug test with 1 iteration per Test group and apply below settings:
  - Tracing, Drill Down and Continue on page error enabled. Inline Resources Disabled. Use all HTTP headers as per the Test.

Note: The debug Test Run will open in a new tab from the top menu.

- Save and Run
  - It will save the Test and execute a test with applied load configuration settings. On test execution a new tab is added in the top menu where Test Run details are shown.
- Save
  - It will save the changes in Test.

## Schedule

The schedule refers to the process of setting up a predefined plan for when the report will be automatically generated and delivered. In schedule, you can automate the process of generating and delivering reports at specified times in which you will receive updated and relevant information regularly without manual intervention.

## Test Schedule Setting

- One Time: The One Time Test Schedule option allows the user to schedule a test run at a specific date, time, and time zone. The user needs to select the Start From date, set the exact At time, and choose the required Time Zone, after which a Schedule Preview displays the configured schedule details.
- Recurring: The Recurring Test Schedule feature lets users run tests automatically at set intervals. They can configure the Start Date, Time, and Time Zone, then choose the repeat frequency from options like Second(s), Minute(s), Hour(s), Day(s), Week(s), Month(s), or Year(s). For ending the schedule, a dropdown provides three choices: No End Date (runs indefinitely), Date (ends on a selected date), or After (stops after a specified number of runs). A Schedule Preview shows the upcoming execution times, and users can also add multiple recurrence rules as needed.
- Add New Recurrence Rule: Allowing flexibility in scheduling tests at different intervals. Once saved, the recurring schedule ensures that the test is executed automatically as per the defined frequency.
- Advance Setting: The Advanced Settings option allows users to define what happens if all controllers are busy. Here, the user can specify a wait time (in minutes) before the task is automatically canceled.

## Right Pane

The right pane consists of two tabs:

- Design
- Test Run

## Design

The Design tab is the landing page of the Test case. It facilitates test case creation.

## Test Case Configuration

In the Test Case Configuration section, the user can add a URL and its type like GET, PUT, POST, DELETE, PATCH, OPTION, HEAD, CONNECT, and TRACE and add it to the request list table. If a user wants to add additional information like Headers, Parameters, etc. then they can click on Additional Information and can add it. They can also add think time between pages by clicking on add Think Time. Users can add multiple requests in a group and a minimum of 1 group is mandatory.

## Design

When design is selected then the user can use UI to create/modify API groups.

Design have following fields:

- Left Pane/Request List
- Right Pane

Manage inline: This feature helps in managing small or dependent requests directly within the main request sequence.

## Add Request

Users can add requests by clicking the add request icon.

## Test Case Creation

- Visual: Allows users to add requests and build test cases through a simple UI, without requiring prior coding experience.
- Code: Enables users to create test case configurations using programming languages such as C, Java, or JavaScript.

## Left Pane/Request List

In the request list, users can add Thinktime, Requests, and Groups. Thinktime can only be added between two requests. Requests can also only be added inside a group. Users can also change the order of groups and requests. Requests can only be moved inside a group.

By default, group name will be as follows:

Group_{number_of_groups}

Users can edit the group, and the group name will be unique.

## Request Kebab Menu

In a group, Users can perform Clone and delete actions from the kebab menu icon.

- Clone will duplicate the group. This group name is preceded by "Copy_". For e.g. If the group name is "Group_1" then the cloned group will be "Copy_Group_1".
- Delete will delete the group from the request list.

## Show/Hide Additional Info

Show/Hide Info: By clicking this option, users can view additional details of a request, including the header and body. The body can be viewed in two formats: Key-Value or Text.

## Functional Settings

To access group setting user need to click group setting icon next to test case configuration

## Repetition Parameters

The Repetition Parameters feature allows users to manage a sequence of test cases for repeated execution. Users can control the execution flow by switching the order of test cases, removing any test case from the sequence, or cloning a test case to include it multiple times. Additionally, test cases can be activated or deactivated as needed, enabling temporary exclusion without deleting them. Following are the repetition parameter columns available in the table:

- Status: Allows the user to enable or disable a test case.
- TC Name: Displays the name of the test case.
- Actions: Users can perform the following options on a test case:
  - Delete: User can delete the individual selected row.
  - Clone Row: Creates a duplicate row of the selected test case.

## Global Action Icon

- Search: Users can search for a specific test case.
- Delete: User can delete multiple selected rows at once.
- Add Row: Users can add a new row by providing a test case name.
- Add Parameter: The user can add a parameter by specifying its name and value.
- Column Filter: Users can filter records based on selected column values.
- Manage Columns: This option opens a pop-up where the user can customize the table view. From here, the user can view or hide columns, drag and rearrange them as needed, reset columns to their default state, and check column details for better organization.
- Download: Users can download records in Word, PDF, Excel, or CSV format.
- Actions (⋮): User can import data or perform additional actions.
- Save changes: This option is available above the global action icons. By clicking it, the user can save all the applied changes.

## Pre Post

- Prescript
  - PRE TEST SCRIPT: The Pre-Test Script tab allows users to define and manage actions that should be executed before running a test case. This is useful for preparing the environment, starting required services, or performing any prerequisite tasks.
  - Command: The specific command or script to be executed.
  - Tier: The tier or layer of the system where the script should run.
  - Server Mode: The mode in which the server should operate while executing the script.
  - Server: The target server on which the action will be performed.
  - Description: A brief explanation of the script or action.
  - Source File Name: The name of the source file used in the script, if applicable.
  - Destination File Name: The target file name or location for script output or copy operations.
  - Run as sudo: Option to execute the command with elevated privileges, if required.

## Pre Test Script Summary

Displays a summary of all added pre-test actions, providing a quick overview.

- Added actions for service: Lists the services or tasks associated with the added actions.
- Action: Options to edit, remove, or clone the pre-test script entry.

## Test Run

This tab will show all the test runs executed for the current Test.

Test Run (TR) table consists of the following columns:

- Checkbox (☑): Allows selection of multiple test runs to perform bulk actions like delete, archive, lock/unlock, or compare.
- Status: Indicates the current state of a test run (e.g., running, completed, failed)
- Test Run: A unique identifier automatically assigned to each test run by the system.
- Test Name: The name of the test provided by the user.
- Start Time: The date and time when the test execution began.
- Run Time: The total duration for which the test was executed.
- Users: The number of virtual users defined in the Test, representing how many were simulated during the test.
- Tags: Labels defined in the Test to help filter and organize test runs.
- Actions: Following are the actions performed in the test run:
  - Search and Filter: Quickly locate specific test runs using search or filter options.
  - Delete Test Run: Permanently remove a test run.
  - (Un)Archive Test Run: Archive a test run to hide it from the active list or unarchive to restore it.
  - Unlock Test Run: Remove restrictions to allow modifications.
  - Download Table: Export the test run details in a downloadable format.