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:
|
Working with these test subtypes are described in this topic:
|
To work with automated tests, see Automated tests and pipelines. |
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"
}