You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

There are two endpoints regarding importing tests:

Import Tests

/api/v1/import/test/bulk

Check import job status

/api/v1/import/test/bulk/{jobId}/status

The first endpoint is an asynchronous call to import tests. Whenever this endpoint is called, a job is queued to import the tests in the input and its id is returned. The second endpoint can be used to check the status of this job.



Import Tests

When importing tests, you can use the following endpoint:

Create a job to import tests.

Request

PATH PARAMETERS

parameter

type

description

projectString

- key or id of the project where the tests without project information are to be imported into.


Apart from JIRA fields, in the test information in the input, the folowing fields can be used:

  • testtype (or xray_testtype): This field determines the test type of the corresponding test, this field can be filled with the option of any test field that is present in the project in which the test will be created. (this field is required)
  • steps (or xray_steps): It holds the steps information for a test with a test type of the Steps kind.
  • gherkin_def (or xray_gherkin_def): Gherkin definition for tests with a test type of the Gherkin kind.
  • unstructured_def (or xray_unstructured_def): Generic definition for tests with a test type of Unstructured kind.

If project information is ommited in a test, the project defined as a path parameter in the endpoint is used as the destination project, if no project is set as a path parameter, an error will occur importing the corresponding test and any other test without project information.

Example 1: Tests
Example Input
[
	{
		"testtype": "Cucumber",
		"summary": "This tests the addition of 2 numbers.",
		"project": { "key": "CALC" },
		"gherkin_def": "Given I have entered <input_1> into the calculator\nAnd I have entered <input_2> into the calculator\nWhen I press <button>\nThen the result should be <output> on the screen\n\n  Examples:\n    | input_1 | input_2 | button | output |\n    | 20      | 30      | add    | 50     |\n    | 2       | 5       | add    | 7      |\n    | 0       | 40      | add    | 40     |\n    | 1       | 40      | add    | 41     |"
	},
	{
		"testtype": "Manual",
		"summary": "This tests the Subtraction of two numbers.",
		"project": { "key": "CALC" },
		"steps": [
			{
				"action": "I choose the operation of the calculator *Subtraction*",
				"data": "",
				"result": "The operation must appear selected."
			},
			{
				"action": "I enter the input into the calculator",
				"data": "I1: 5\nI2: 2",
				"result": ""
			},
			{
				"action": "I press the *Calculate* button",
				"result": "The result *3* should be displayed in the screen, on the right of the \"=\" sign."
			}
		]
	},
	{
		"testtype": "Generic",
		"summary": "CanMultiply",
		"project": { "key": "CALC" },
		"unstructured_def": "x.CalculatorTests.CanMultiply"
	}
]


Example Request

curl -H "Content-Type: application/json" -X POST -H "Authorization: Bearer $token"  --data @"data.json" https://xray.cloud.xpand-it.com/api/v1/import/test/bulk

Responses

200 OK : application/json : Successful. The import job was created successfully and the Job Id is provided.

Example Output
{
	"jobId":"34a4106b1d0948d1aae1170cc8df3bb4"
}


400 BAD_REQUEST : application/json : No import test job was created. The content may be in the wrong format or a job might already be in progress. Each user can only have one import job running at each given time. So, if a job is running and the user tries to start another one, this will result in a 400 response, stating that a job is already running in the output.

Example Output
{
	"error":"A job to import tests is already in progress (id: 34a4106b1d0948d1aae1170cc8df3bb4)."
}



401 UNAUTHORIZED : application/json : The Xray license is not valid.

500  INTERNAL SERVER ERROR : application/json : An internal error occurred when importing execution results.


Check Import Job Status

When checking the status of an import test job, you can use the following endpoint:

Check an import test job status.

Request

PARAMETERS

parameter

type

description

jobIdString

- id of the import tests job.


Example Request

curl -H "Content-Type: application/json" -X GET -H "Authorization: Bearer $token" https://xray.cloud.xpand-it.com/api/v1/import/test/bulk/34a4106b1d0948d1aae1170cc8df3bb4/status

Responses

200 OK : application/json : Successful. The job status is available.

Example 1: Job is still working

Example Output
{
    "status": "working",
    "progress": [
        "[Tue, 03 Jul 2018 15:29:08 GMT] Preprocessing the information of the 3 tests to import.",
        "[Tue, 03 Jul 2018 15:29:08 GMT] Creating 3 issue(s) in JIRA."
    ]
}

Example 2: Job ended in partial success

Example Output 2
{
    "status": "partially_successful",
    "result": {
        "errors": [
            {
                "elementNumber": 1,
                "errors": {
                    "description": "Operation value must be a string"
                }
            }
        ],
        "issues": [
            {
                "elementNumber": 0,
                "id": "12603",
                "key": "CALC-1",
                "self": "https://xpandsdcv.atlassian.net/rest/api/2/issue/12603"
            },
            {
                "elementNumber": 2,
                "id": "12604",
                "key": "CALC-2",
                "self": "https://xpandsdcv.atlassian.net/rest/api/2/issue/12604"
            }
        ]
    }
}


404 NOT_FOUND : application/json : Job was not found.

Example Output
{
    "error": "job not found."
}


401 UNAUTHORIZED : application/json : The Xray license is not valid.

500  INTERNAL SERVER ERROR : application/json : An internal error occurred when importing execution results.

  • No labels