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.
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 
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"}]
}
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"
}
                                                        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"
}
                                                        
                                                        
                                                        
                                                        
                                                        
                                                        
 
                                                                    
                                                                    
                                        
                                        