Create a Gherkin test

You can use API resources to work with Gherkin test entities. 

Overview

The tests entity is a composite, resource collection that represents all subtypes of tests 

The subtype attribute distinguishes between the test types in the test resource collection.

Work with the tests resource collection to: 

  • See or query all tests, regardless of subtype

  • Add steps to manual tests

  • Add scripts to Gherkin tests

Work with the individual resource collections (manual tests, Gherkin tests, and test suites) to focus only on those subtypes.

Back to top

GET: Read Gherkin tests

To see all tests, regardless of test subtype:

  • GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/tests

To see only Gherkin tests, use one of the following:

  • GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/tests?query="subtype EQ ^gherkin_test^"

  • GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/gherkin_tests

Back to top

POST: Create a Gherkin test

Creating a Gherkin test is similar to POSTing any other entity. For general details, see POST: Create instances in a collection.

However, after creating the Gherkin test, you will want to add a script to it. For details, see PUT: Add a script to a Gherkin test.

To create a Gherkin test: 

We add Gherkin tests using the gherkin_tests resource collection.

This example creates a Gherkin test named My_Gherkin_Test with status (phase) 1014, which is the New phase.

POST .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/gherkin_tests
{
   "data":  [
       {
         "phase":
          {   "id":1014,
              "type":"phase"
          },
       "name":"My_Gherkin_Test"}]
}

Back to top

GET: See an existing Gherkin test script

Scripts are saved as separate resources in the internal repository. Access the script resource by specifying the script entity after the test ID in a REST API call.

To see an existing script for a Gherkin test: 

This example displays the script for the Gherkin test whose ID is 1014.

GET .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/tests/1014/script
{
  "creation_time": "2017-04-18T22:07:24Z",
  "last_modified": "2017-04-19T02:15:14Z",
  "script": "#Auto generated Octane revision tag\n@TID1025REV0.2.0\nFeature: Buying items in shopping cart for many users\nBackground:\n  Given: payment security system is up\n\nScenario Outline: Many users buy items in their carts\nGiven a customer named <customer>\nGiven I am logged in as <customer>\nGiven I have at least one item in cart\nWhen I try to buy items in my cart\nThen I confirm my payment method <payment> and proceed to checkout.\n\n  Examples:\n| customer | payment |\n| Jane Doe | Paypal |\n| Jorge Rodrigues | VISA |\n| Sally Dunn | VISA |\n| Pierre Bisset | American Express |\n| Masayoshi Horita | Cash |\n"
}

Back to top

PUT: Add a script to a Gherkin test

Scripts are saved as separate resources in the internal repository. Access the script resource by specifying the script entity after the test ID in a REST API call.

We add scripts using the tests resource collection. Adding scripts using the gherkin_tests resource collection is not supported.

When adding scripts to a Gherkin test, keep in mind that any existing script is replaced.

To add a script to the Gherkin test: 

This example adds a script to the Gherkin test whose ID is 1014, and labels the revision type as minor. Revision types can be Major or Minor.

PUT .../api/shared_spaces/<space_id>/workspaces/<workspace_id>/tests/1014/script
{
            "script": "Feature: Buying items in shopping cart, single user\n \n\tBackground: \n\t\tGiven payment security system is up\n \n\tScenario: Julio buys items in his cart\n\t\tGiven a customer named \"Julio Brown\" \n\t\tGiven I am logged in as Julio \n\t\tGiven I have at least one item in cart\n\t\tWhen I try to buy items in my cart\n\t\tThen I should be asked for my payment method",
            "comment": "Testing shopping cart functionality.",
            "revision_type": "Minor"
}

Back to top