POST/projects/{ProjectId}/tests

Applies to QAComplete 12.93 SaaS, last modified on November 01, 2021

Creates a new test in QAComplete.

Use the operation to add a new test to the Test Library in your QAComplete project.

To replace the entire requirement (to redefine all the field values), use the …/tests/{Id} (PUT) operation. To update individual fields of a test, use the …/tests/{Id} (PATCH) operation.

Authentication

Basic authentication using a user’s login and password. See Authentication for details.

Security Rights

The authenticating user must belong to a security group that has the Add privilege for Test Library.

Request Format

To create a test, send a POST request to the following URL:

http://{server}/rest-api/service/api/v2/projects/{ProjectId}/tests
URL parameters

ProjectId  :  integer, required

The ID of the project, to which you want to add a test.

Body parameters

In the request body, pass the RequestTestPost object that describes the test to create.

{
  "Title": "string",
  "Status": "string",
  "Active": "boolean",
  "AssigneeUserId": "int",
  "CustomFields": [
    {
      "Id": "string",
      "Name": "string",
      "Value": "string"
    }
  ],
  "Description": "string",
  "ExecutionType": "string",
  "FolderId": "int",
  "OwnerUserId": "int",
  "Priority": "string",
  "TestSteps": [
    {
      "Id": "int",
      "Seq": "int",
      "IsStoppedOnFail": "boolean",
      "Step": "string",
      "ExpectedResult": "string",
      "ScriptSourceId": "int"
    }
  ],
  "TestType": "string"
}

Some string property values (for example, Status) are based on the choice lists defined in your QAComplete project. You can find these values in the Test Management > Test Library >  Tools >  Manage Choice Lists panel in QAComplete.

Title  :  string, required

The title of the test.

Status  :  string, required

The status of the test. Possible values are based on the choice list.

Active  :  boolean

Specifies whether the test is enabled (active).

AssigneeUserId  :  integer

The ID of the user to whom the test is assigned. 0 if the test is not assigned to anyone.

CustomFields  :  array of objects

An array of CustomFields objects that describe custom fields and their values:


{
  "Id": "string",
  "Name": "string",
  "Value": "string"
}

Id  :  string, required

The unique identifier of the custom field. Must be in the CustomN format, where N is the custom field’s number (index).

Name  :  string

The field name.

Value  :  string

The field value.

Description  :  string

The test description. Can include an HTML markup. If no description is specified, empty string.

ExecutionType  :  string

Specifies how the test will run. Possible values are based on the choice list. If no execution type is assigned, empty string.

FolderId  :  integer

The ID of the folder to which the test belongs.

OwnerUserId  :  integer

The ID of the user who owns the test.

Priority  :  string

Specifies the test priority. Possible values are based on the choice list. If no priority is assigned, empty string.

TestSteps  :  array of objects

An array of RequestTestStep objects that describe the test steps.

{
  "Id": "int",
  "Seq": "int",
  "IsStoppedOnFail": "boolean",
  "Step": "string",
  "ExpectedResult": "string",
  "ScriptSourceId": "int"
}

Id  :  integer, required

The unique identifier of the step among other test steps in the Test Library.

ExpectedResult  :  string

Describes the expected outcome of the actions a tester performs during the step. Can contain an HTML markup.

IsStoppedOnFail  :  boolean

Specifies whether the test will stop if the step fails. Default value: False.

ScriptSourceId  :  integer

Reserved.

Seq  :  integer, required

The ordinal number of the step in the test. Default value: 0.

Step  :  string, required

Describes instructions for a tester to follow during the step. Can contain an HTML markup.

TestType  :  string

Type of the test. Possible values are based on the choice list. If no type is assigned, empty string.

A sample request:

POST http://yourserver.com/rest-api/service/api/v2/projects/11873/tests HTTP/1.1
Host: yourserver.com
Connection: keep-alive
Content-Type: application/json
Accept: application/json
Authorization: Basic am9obkBleGFtcGxlLmNvbTpwQHNzd29yZA==
Content-Length: 375

{
  "Title": "New Manual Test",
  "Status": "New",
  "TestSteps": [
    {
      "Seq": 1,
      "Step": "Select Tools from the application's main menu.",
      "ExpectedResult": "The Tools dialog opens."
    },
    {
      "Seq": 2,
      "Step": "Switch to the Java tab.",
      "ExpectedResult": "The Java tab shows the path to the Java Virtual machine module."
    }
  ]
}

A sample request made by using cURL:

curl -u john@example.com:p@ssword -d @test.txt -H "Content-Type: application/json" -H "Accept: application/json" http://yourserver.com/rest-api/service/api/v2/projects/11873/tests

Response Format

On success, the operation responds with HTTP status code 200. The response is a JSON object with information on the added test.

A sample response:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 1642


{
  "id": 10,
  "title": "New Manual Test",
  "active": false,
  "project_id": 11873,
  "__permissions": {
    "acl": 7
  },
  "assignee_user_id": 0,
  "avg_run_time": 0,
  "create_user_id": 25264,
  "custom_fields": [],
  "date_created": "2015-09-09T11:39:02.3130000",
  "date_last_escalated": "0001-01-01T00:00:00.0000000",
  "date_updated": "2015-09-09T11:39:02.3130000",
  "execution_type": "",
  "folder_id": 0,
  "import_id": 0,
  "last_escalation_rule_id": 0,
  "last_run_by_name": "",
  "last_run_by_user_id": 0,
  "last_run_date": "0001-01-01T00:00:00.0000000",
  "last_run_test_set": 0,
  "nbr_escalations": 0,
  "nbr_events": 0,
  "nbr_fail_status": 0,
  "nbr_files": 0,
  "nbr_files_not_secured": 0,
  "nbr_notes": 0,
  "nbr_pass_status": 0,
  "nbr_steps": 0,
  "nbr_times_run": 0,
  "original_id": 0,
  "owner_user_id": 0,
  "script_name": "",
  "script_source_id": 0,
  "test_steps": [
    {
      "id": 5,
      "permissions": {
        "acl": 7
      },
      "create_user_id": 25264,
      "date_created": "2015-09-09T11:39:02.3130000",
      "date_updated": "2015-09-09T11:39:02.3130000",
      "expected_result": "The Tools dialog opens",
      "is_stopped_on_fail": false,
      "nbr_files": 0,
      "script_name": "",
      "script_source_id": 0,
      "seq": 1,
      "step": "Select Tools from the application's main menu.",
      "title": "New Manual Test",
      "update_user_id": 25264
    },
    {
      "id": 6,
      "permissions": {
        "acl": 7
      },
      "create_user_id": 25264,
      "date_created": "2015-09-09T11:39:02.3130000",
      "date_updated": "2015-09-09T11:39:02.3130000",
      "expected_result": "The Java tab shows the path to the Java Virtual machine module.",
      "is_stopped_on_fail": false,
      "nbr_files": 0,
      "script_name": "",
      "script_source_id": 0,
      "seq": 2,
      "step": "Switch to the Java tab.",
      "title": "New Manual Test",
      "update_user_id": 25264
    }
  ],
  "update_user_id": 25264,
  "user_name": "Smith, John",
  "version": 1
}

Error responses

If the operation fails, it returns the appropriate status code and (optionally) the error description in the response body.

If the project with the specified ProjectId does not exist or the authenticating user does not have rights to access the project, the operation returns the Access is denied error.

See Also

Tests Resources

Highlight search results