Skip to content
You're viewing the v2 docs. Looking for v1?Go to v1 docs
Docs
Testsigma
Popular questions
↑↓ to navigate↵ to selectesc to close
Book a demo

Create test cases

A test case is a list of steps that tests one flow in your application. Write the steps as NLPs, record them with the Recorder extension or Copilot, or generate them with Atto.

How you create a test case depends on the application type you test. This page covers what is common to all of them. Each application type has its own page for creating a test case:

Application typeWhere to start
Web and mobile webCreate a web or mobile web test case
AndroidCreate an Android test case
iOSCreate an iOS test case
Unified mobile (Android and iOS)Create a Unified mobile test case
Windows desktopCreate a Windows test case
SalesforceCreate a Salesforce test case
REST and SOAP APIsCreate an API test case

Test cases live in folders and subfolders. A folder groups related subfolders, and each subfolder holds its test cases. In a shopping application, User Authentication is a folder, Login is a subfolder, and Login with invalid credentials is a test case.

This structure keeps a large library searchable, prevents duplicate test cases, and feeds the filters you use when you build test suites.

To create a folder, click +, select New Folder, name it, and click Add. To create a subfolder, click +, select New Subfolder, select the parent folder in Select Folder, click Next, name the subfolder, and click Create.

Test Case Explorer, with subfolders under a folder and the New Test Case control

For quick actions, click the ellipsis icon ⋮ on a folder or subfolder row:

ActionWhat it does
RenameChanges the name
CloneCreates a copy
MovePlaces it under a different folder
DeleteRemoves it from the project

  1. Click + Add new step.

  2. Enter the action in plain English. Suggestions appear as you type an action word.

  3. Click Create Step.

A test case's steps written as NLPs, with Add new step at the end

These action words have suggestions: Click, Tap, Verify, Scroll, Check, Clear, Close, Uncheck, Store, Double Click, Drag, Enter, Swipe, Switch, Execute, Select, Wait, and Mouseover.

Steps default to natural language. For loops, conditions, blocks, step groups, and API calls, see Step types.

Find test cases with filters and labels, delete and restore them, and import test cases from another project or from Postman.

Click List View to search, sort, and filter the whole library. Search by name from the search bar. Sort by Title, Created Date, or Updated Date. To filter, click Show Filters > Add Filter. Filters stack, and you can filter by Status, Priority, Last run result, Added to Test Suite, Assignee, Created By, Created Date, Updated Date, Reviewer, Test Case Type, Labels, Requirement, Requirement Type, and any custom field.

List View with Add Filter open, showing the filter fields

To keep a filter, click Save Filter > As New, name it, and select Mark as Public to share it. Replace Existing updates a filter you already saved. Saved filters live under Saved Filters, split into Custom and Predefined, and you can edit or delete each one. Click Reset or All to clear the active filter.

One label can be attached to test cases, step groups, elements, test suites, and test plans. To create a label, go to Settings > Labels and click Add New Label. To attach it to a test case, open the test case and use Manage Test Case > Labels. Step groups, elements, test suites, and test plans attach labels from their own panels.

To detach a label, go to Settings > Labels, click the label’s count, select the assets in Linked Entities, and click Remove Link.

Delete a test case 3 ways:

  • Open the test case, click the More options ⋮ menu, and click Delete.
  • Click the ellipsis icon ⋮ next to the test case in its subfolder, and click Delete.
  • Select one or more test cases in List View, and click the Delete icon in the menu bar.

In Delete Confirmation, click Delete to remove the test case from the project.

A deleted test case goes to the trash. To restore it, click Saved Filters in List View, select Trash (Deleted Test Cases), find the test case, click Restore next to it, then click Restore in the dialog.

The Trash filter in List View, with Restore and the permanent-delete icon on each row

To delete a test case permanently, click Delete next to it in the trash, enter DELETE, and click I Understand, delete this (test-case-name).

Test cases import into the same application type only. Test cases from a web application import into a web application in the target project, and cannot move to a different application type.

  1. Go to Create Tests > Test Cases.

  2. In Test Case Explorer, click the ellipsis icon ⋮ and click Import.

  3. On the Select Source tab of Import Artefacts, select the source Project, Application Name, and Version.

  4. Click Next.

  5. On the Select Artefacts tab, select the test cases, step groups, elements, test data profiles, environment variables, and uploads to import.

  6. Click Proceed to Import.

  7. On the Start Import tab, review the artefacts and click Confirm.

  8. In Create a Save Point?, enter a name and click Start Importing.

  9. Click Done.

The Select artefacts step of Import Artefacts, with the artefact tabs and their counts

On the Start Import tab, each test case carries a status: New if it does not exist in the target project, No Change if it exists and matches, or Override if it exists and has been modified.

Testsigma creates a save point before the import, so you can revert the project to its state before the import. See Save points.

To check an import afterwards, go to Settings > Imports, click the import’s status, and review the details in Import Summary.

  1. Go to Settings > Imports > Import.

  2. Select the exported JSON or ZIP file.

  3. Select the project, application, and version.

  4. Review the mapping preview.

  5. Click Start Importing.

Testsigma emails you when the import finishes. You can download the imported files to check them.

PostmanTestsigma
CollectionTest suite
SubfolderTest case
API inside a subfolderTest steps
Folder inside a subfolderA block inside the test case
Collection variablesTest data profiles
Global and environment variablesEnvironments
Parent folderTest case label

A step is a natural language action by default. Change its type to reuse a sequence, repeat steps over test data, branch on a condition, group steps under a label, or call an API.

Click the option on the left side of a step to open the step type panel. Six types are available.

The step type panel open on a step, listing the available types

Loops, conditions, and blocks hold child steps, added with the Step Inside control. Child steps are numbered under their parent, such as 2.1 and 2.2.

Step typeWhat it doesHow to add itLimits and behavior
Natural languageRuns one action or assertion, written in plain EnglishEnter the action in the stepThe default type
Step groupCalls a reusable sequence of steps from the test caseSelect Step Group, select the group, then click Create Step. To build a group from steps you already have, select the steps and click Create Step GroupGroups nest up to 3 levels. Create copies the selected steps into a new group. Create and Replace also swaps them for the group call, and is offered only for consecutive steps. Reuse Step Group pulls a group from another project, application, or version; check its element locators against the target application first. Inside a test case you can edit a group step’s test data and elements, but not its NLP. Click Update Step to save. These edits stay local to that test case
For loopRepeats its child steps once per data set of a test data profileSelect the NLP variant for the data sets you want: the whole profile from start to end, an index range, sets filtered by name (contains, starts with, ends with, or IN), or sets filtered by a parameter valueEnds at the last data set, or at a break
While loopRepeats its child steps while a condition holds, then moves onSelect the type, then add child steps with Step Inside LoopWorks in the recorder on web, mobile web, Android, and iOS
If conditionRuns its child steps only when the condition is trueSelect Conditional Step Types > If Natural Language, then add child steps with Step Inside IF. Hover over the IF step to add Else If and ElseAlso works while recording
BlockLabels consecutive steps as a named group, without making them reusableSelect Create a Block, or select consecutive steps and click Create Block. Click > to expand it, then add steps with Step Inside Block or Step After BlockA block can be reordered or moved within the test case. Deleting a block keeps its steps. Blocks cannot nest, cannot contain another block step at creation, and cannot be converted back to a plain step

Inside a for loop, a while loop, or a step group, the Store NLP saves the current iteration count into a variable. The String Compare addon compares iterated values inside an if condition.

The panel also offers the REST API step type. See REST API steps.

The mysql_queries addon runs MySQL from NLP steps over a JDBC URL. Install it from the addons page.

The connection string takes this form:

jdbc:mysql://<hostname>:<port>/<database>?user=<user>&password=<password>

Its NLPs cover:

  • Executing a query, a create-procedure statement, a stored procedure call, an update, or a .sql script file
  • Storing a select result into a variable
  • Verifying a select result, or the affected-row count of a query
  • Comparing two queries on one connection, or the same query across two connections

A REST API step calls an API inside any test case. Configure the request, verify the response, and store values for the steps that follow. For API-only testing, create the project with the Rest API application type.

  1. Select Rest API from the step type panel.

  2. Enter a Title for the step.

  3. Enter the endpoint URL.

  4. Select the method: GET to retrieve, POST to add, PUT to replace, PATCH to update fields, or DELETE to remove. The default is GET.

  5. Fill in what the API needs:

    • Parameters: the URL field and the Parameters tab stay in sync. Enter ?name=Joel&type=new in the URL, or enter key-value pairs in the tab. Path parameters use placeholders such as /customer/:id.
    • Headers: key-value pairs, such as Accept: application/json.
    • Authorization: No Auth by default. Select a type and fill in its fields.
    • Body: see the body types below.
    • Settings: request-specific options.
  6. (Optional) Click Send to try the request live.

  7. Click Create.

A REST API step, with the method, endpoint, request tabs, and the response pane

Global Objects links stored objects and other predefined project objects into the request for reuse.

SOAP APIs use the same step. Send the XML envelope as the raw body with a content-type: text/xml; charset=utf-8 header, using the POST method.

  • None: requests without a body. This is the default
  • form-data: key-value pairs with a content type. A key holds text or a file
  • x-www-form-url-encoded: key-value pairs encoded like URL parameters
  • Raw: JSON, text, or XML, with syntax highlighting and automatic headers
  • Binary: a single non-text file, such as an image or a video
  • GraphQL: a query and optional variables, in JSON or table form

Form-data file paths persist across repeated calls. Uploading multiple files that each carry their own content type is not supported.

Files sent as form-data or Binary also appear on the Attachments tab after you click Create.

Verifications live on the response Body, Headers, and Status. Add them any of 4 ways:

  • Send the request, click Outline on the response, and select Add verification
  • Hover over an HTML response line and capture an attribute
  • Add fields on the Verification tab, with a JSON or XPath path, an expected value, and a verification type. The Status tab takes a key name instead of a path
  • Click Copy Response, paste the copied path into the path field, then set the type and the expected value

The response Outline, with Store Variable and Add Verification on a field

Verify Response Body compares the whole body instead. Set Comparison Type and Verification Type. Before the API is invoked, it also asks for Response Body Type and an expected value.

Each verification type passes under a different condition:

  • Strict: every condition matches exactly as specified
  • Strict Order: the conditions match in the specified order
  • Lenient: the essential conditions match, and the rest may be relaxed
  • Non-extensible: only the pre-defined rules apply, with no extension
  • Schema: the response satisfies a structural schema

Stored variables capture parts of the response for use later in the test case or the session.

  • Body fields: click Outline > Store Variable, or add them on the Stored Variables tab
  • HTML attributes: hover over the response line and select the attribute
  • Headers: click Store Variable on the Headers tab, or hover over a response header

Save Response > As an Object stores the whole response as a stored object instead. Stored objects have global scope, work across test cases, and can be downloaded.

Any request field takes test data instead of a literal value.

  1. Select the value to parameterize.

  2. Click Insert Test Data.

  3. Select a Parameter, Runtime, Environment, Random, Data Generator, Phone Number, or Mail Box value.

  4. (Optional) Enter trial values under Add Request Values, click Apply, then click Send.

Insert Test Data offered on a selected value in the request URL

Inside a raw body, reference a profile parameter as @|ParameterName| and a data generator as !|Number.digits(int:3)|. Unicode values work in every field. Paste them in.

Every setting that changes how a test case runs, at the step level and at the test case level: timeouts, retries, screenshots, prerequisites, data-driven runs, and the workflow fields.

Click a step to reach its inline controls, or the ellipsis icon ⋮ for the rest. The options behave the same across application types.

  • Clear Step: empties the step’s action and data. The eraser icon does the same
  • Clone Step: duplicates the step
  • Delete Step: removes the step
  • Step Above and Step Below: insert a neighbor. + Add new step appends at the end
  • Disable Step: skips the step at run time without deleting it
  • Ignore Step Result: keeps the step’s outcome out of the test case result
  • Enable Visual Testing: adds a visual comparison on the step

To reorder steps, drag the ⋮⋮ handle, then click Save New Order. In the recorder the button reads Save Order.

In the recorder, clicking an element in a step offers Edit, Change, and Create Element. Pause and Stop control the session.

Click the ellipsis icon ⋮ and select Step Settings for the full per-step configuration.

  • Max. wait time: fails the step past the limit. The maximum is 120 seconds
  • Retries on step failure: re-attempts a failing step, up to 10 times
  • Screenshot capture: Always, Only on step failure, No screenshot required, or Use step level settings. This applies to execution only
  • Pre-Requisite: a step in the same test case that must pass first
  • Stop Test Case execution on Test Step: stops the test case when this step fails. On by default
  • Ignore this step result in Test Case Result: excludes the step from the test case result
  • Disable Step: skips the step. Off by default
  • Enable Visual Testing for the Step: captures and compares the UI on this step
  • Enable Accessibility Testing for the step: validates the step against accessibility standards
  • Highlight element in screenshot: marks the acted-on element in captures

The Step Settings panel, with the timeout, retries, screenshot, and per-step toggles

Global Step Timeout, under Additional settings in the Ad-hoc Run overlay, can override these values. With the toggle off, the global value applies only to steps without a custom timeout. With it on, the global value overrides every step.

  1. Hover over a step number to turn it into a checkbox, then select the steps. Select All selects every step.

  2. Select Update Settings, Create Block, Create Step Group, or Delete from the menu bar.

  3. Click Exit Bulk Action to leave the mode.

Bulk action mode, with Select All, Update Settings, Create Block, Create Step Group, and Delete

The right-side utility panel holds everything that belongs to the test case rather than to a step.

  • Test Case Info: rename the test case, edit the description, and read the created and updated timestamps
  • Ad-Hoc Runs: the test case’s ad-hoc run history
  • Activity: history and comments
  • Help: examples, the action list, and get-started guides

Test Case Settings configures how the test case runs.

  • Pre-Requisites: another test case that must run first. Always run Pre-requisite executes it on every run. Only execute failed Pre-requisite iteration(s) reruns only the failed iterations of a data-driven prerequisite
  • Test Data Profile and Test Data Set: bind the test case to a profile and select the set
  • Data-Driven: runs the test case once per data set, filtered by Iteration (greater than, less than, between), Set Name (equals, contains, starts with, ends with, between), or Parameter
  • Fail Test Case if Visual Testing Fails: a visual mismatch fails the test case
  • After Test Case: cleanup steps that run after the test case, with Fail the Test Case or Show Test Case Result when they fail. Mark this for AfterTest Suite runs the test case in a suite’s cleanup phase

The Test Case Settings panel, with prerequisites, test data profile, and the data-driven filters

Manage Test Case carries the workflow fields.

  • Status: Draft, Review, Ready, Obsolete, or Rework
  • Priority: Critical, Major, Medium, or Minor
  • Assignee: notified when the test case fails during a review
  • Reviewer: the reviewer for the test case
  • Test Type: Unit Test, Integration, Functional, Non-functional, or User Experience
  • Requirement: the linked requirement, for traceability
  • Labels: the labels attached to the test case

Custom workflow fields are defined under Custom fields.

Was this page helpful?