Руководство по использованию Public API (устаревшее)

API используется для интеграции Test IT с внешними системами запуска автоматизированных тестов. API позволяет: связывать автоматизированные тесты с тест-кейсами в Test IT получать задания на запуск автоматизированных тестов управлять запусками автоматизированных тестов добавлять результаты автоматизированных тестов.

Начиная с версии 1.0.5 Cygnus в Test IT доступен swagger с открытыми API методами. Открыть swagger можно по прямой ссылке /swagger/index.html, либо по кнопке "Документация API" в разделе автотестов.

Описание

API работает по протоколу HTTP и представляет собой набор методов, с помощью которых совершаются запросы и возвращаются ответы для каждой операции. Все ответы приходят в виде JSON структур.

Авторизация

Авторизация возможна при наличии логина и секретного ключа пользователя, которые должны быть добавлены в заголовки каждого запроса к API. Секретный ключ может сгенерировать каждый пользователь в настройках своего профиля. Заголовки, необходимые для авторизации: Authorization: PrivateToken {secretKey} или secretKeyBase64 {secretKey}.Способ авторизации см. в описании метода.

Основной URL

Все ссылки на запросы к API в текущей документации включают базовый URL системы Test IT, например http://demo.testit.software/

Получение запусков для проекта

Для того, чтобы получить список автоматизированных запусков для проекта, необходимо отправить запрос:

GET /api/Public/GetTestRuns/{projectId} (Устаревший)

Где: {projectId} - идентификатор проекта. Способ авторизации: secretKeyBase64 {secretKey}

Пример cURL запроса в общем виде:

curl -X POST "http://192.168.88.140/api/Public/GetTestRuns/{projectId}" -H "accept:
application/json" -H "secretKeyBase64 {secretKey}" -H "UserName: {UserName}"

Пример cURL запроса:

curl -X POST "http://192.168.88.140/api/Public/GetTestRuns/3504" -H "accept: application
/json" -H "secretKeyBase64 QWFleE1hMWJHajNRVFZkdlRe" -H "UserName: admin"

Перевод запуска в статус InProgress (Выполняется)

Для того, чтобы перевести статус запуска в InProgress, необходимо отправить запрос:

POST /api/Public/StartTestRun/{testRunId} (Устаревший)

Где: {testRunId} - это валидный uuid запуска. Способ авторизации: secretKeyBase64 {secretKey}

При успешном выполнении запроса запуск переходит в состояние InProgress.

Пример cURL запроса в общем виде:

curl -X POST "http://192.168.88.140/api/Public/StartTestRun/{ID}" -H "accept: application
/json" -H "secretKeyBase64 {secretKey}" -H "UserName: {UserName}"

Пример cURL запроса:

curl -X POST "http://192.168.88.140/api/Public/StartTestRun/cd2a79db-00cf-4606-adbe00eb6fd0dc4a" -H "accept: application
/json" -H "secretKeyBase64 QWFleE1hMWJHajNRVFZkdlRe" -H "UserName: admin"

Перевод запуска в статус Stopped (Остановлен)

Для того, чтобы перевести статус запуска в Stopped, необходимо отправить запрос:

POST /api/Public/StopTestRun/{testRunId} (Устаревший)

Где: {testRunId} - это валидный uuid запуска. Способ авторизации: secretKeyBase64 {secretKey}

При успешном выполнении запроса запуск переходит в состояние Stopped. Всем тест-поинтам, по которым не был получен результат, проставляется результат Skipped.

Пример cURL запроса в общем виде:

curl -X POST "http://192.168.88.140/api/Public/StopTestRun/{ID}" -H "accept: application
/json" -H "secretKeyBase64 {secretKey}" -H "UserName: {UserName}"

Пример cURL запроса:

curl -X POST "http://192.168.88.140/api/Public/StopTestRun/cd2a79db-00cf-4606-adbe00eb6fd0dc4a" -H "accept: application
/json" -H "secretKeyBase64 QWFleE1hMWJHajNRVFZkdlRe" -H "UserName: admin"

Перевод запуска в статус Completed (Завершен)

Для того, чтобы перевести статус запуска в Completed, необходимо отправить запрос:

POST /api/Public/CompleteTestRun/{testRunId} (Устаревший)

Где: {testRunId} - это валидный uuid запуска. Способ авторизации: secretKeyBase64 {secretKey}

При успешном выполнении запроса Test Run переходит в состояние Completed. Всем тест-поинтам, по которым не был получен результат, проставляется результат Skipped.

Пример cURL запроса в общем виде:

curl -X POST "http://192.168.88.140/api/Public/CompleteTestRun/{testRunId}" -H "accept:
application/json" -H "secretKeyBase64 {secretKey}" -H "UserName: {UserName}"

Пример cURL запроса:

curl -X POST "http://192.168.88.140/api/Public/CompleteTestRun/cd2a79db-00cf-4606-adbe00eb6fd0dc4a" -H "accept:
application/json" -H "secretKeyBase64 QWFleE1hMWJHajNRVFZkdlRe" -H "UserName: admin"

Добавление результата автотеста

Для того, чтобы добавить результат автотеста в систему, необходимо отправить запрос:

POST /api/v2/testResults (доступен в swagger) (Устаревший)

Тело запроса:

{
"testRunId": "string",
"testPlanGlobalId": 0,
"autoTestExternalId": "string",
"configurationGlobalId": 0,
"outcome": "string",
"message": "string",
"stackTrace": "string",
"duration": 0,
"stepResults": [
{
"action": "string",
"duration": 0,
"outcome": "string"
}
]
}

Где:

testRunId - валидный uuid запуска, в котором получен результат;

testPlanGlobalId - идентификатор тест-плана;

autoTestExternalId - строка, идентифицирующая внешний автоматизированный тест;

configurationGlobalId - идентификатор конфигурации, на которой получен результат;

outcome - исход теста (принимает значения Passed, Skipped, Blocked, Failed);

message - сопровождающее сообщение (необязательное поле);

stackTrace - сопровождающая трассировка стека (*необязательное поле);

duration - целочисленное положительное значение, характеризующее время прохождения теста в миллисекундах;

stepResults - список шагов, которые были пройдены;

stepResults.action - название метода/шага, который был вызван;

stepResults.duration - время, за которое был выполнен метод/шаг;

stepResults.outcome - результат выполнения метода/шага.

Test case может иметь много автотестов. При проставлении результатов автотестам в тест-плане, итоговый результат тестпоинта составляется согласно следующим весам:

Status

Status weight

Passed

1

Skipped

2

Blocked

3

In progress

4

Failed

5

Пример cURL запроса в общем виде:

curl -X POST "http://192.168.88.140/api/Public/SetAutoTestResult" -H "accept: application
/json" -H "Authorization: PrivateToken {secretKey}" -H "UserName: {UserName}" -H "Content-Type:
application/json-patch+json" -d "{ \"testRunId\": \"{testRunId}\", \"testPlanGlobalId\": 0, \"
autoTestExternalId\": \"{autoTestExternalId}\", \"configurationGlobalId\": 0, \"status\": \"
{Ready/NotReady}\", \"outcome\": \"{Passed/NotPassed/Skipped}\", \"message\": \"string\", \"
stackTrace\": \"string\"}"

Пример cURL запроса:

curl -X POST "http://192.168.88.140/api/v2/testResults" -H "accept: application/json" -H
"Authorization: PrivateToken a3RxVjJtQlV4RFFOamF5Ng==" -H "Content-Type: application/jsonpatch+json" -d "{ \"testRunId\": \"a547fe79-a441-4d3c-a365-fe639b97a677\", \"
testPlanGlobalId\": 16308, \"autoTestExternalId\": \"autotest1\", \"configurationGlobalId\":
16250, \"outcome\": \"Passed\", \"message\": \"Test message\", \"stackTrace\": \"Test
stackTrace\", \"duration\": 15920, \"stepResults\": [ { \"action\": \"step1\", \"duration\":
15920, \"outcome\": \"Passed\" } ]}"

Создание нового test run

Для того, чтобы создать новый test run, необходимо отправить запрос:

POST /api/Public/CreateTestRun (Устаревший)

Данный метод создаёт новый test run в существующем тест-плане.

При успешном выполнении запроса возвращается GUID нового Test Run'a и он отображается в тест-плане состоянии Pending.

Тело запроса:

{
"projectGlobalId": 0,
"testPlanGlobalId": 0,
"testPoints": [
{
"configurationGlobalId": 0,
"testCaseGlobalId": 0
}
]
}

Где:

projectGlobalId - это целое положительное число, показывающее глобальный идентификатор проекта;

testPlanGlobalId - это положительное число, показывающее глобальный идентификатор тест-плана;

testPoints - сущность, описывающая тестовую проверку. Содержит идентификатор тест-кейса и конфигурации.

Пример cURL запроса в общем виде:

curl -X POST "http://192.168.88.140/api/Public/CreateTestRun" -H "accept: application/json" -
H "secretKeyBase64 {secretKey}" -H "UserName: admin" -H "Content-Type: application/json-patch+json" -d "{ \"
projectGlobalId\": 0, \"testPlanGlobalId\": 0, \"testPoints\": [ { \"configurationGlobalId\":
0, \"testCaseGlobalId\": 0 } ]}"

Пример cURL запроса:

curl -X POST "http://192.168.88.140/api/Public/CreateTestRun" -H "accept: application/json" -
H "secretKeyBase64 a3RxVjJtQlV4RFFOamF5Ng==" -H "UserName: admin" -H "Content-Type:
application/json-patch+json" -d "{ \"projectGlobalId\": 10844, \"testPlanGlobalId\": 10856, \"
testPoints\": [ { \"configurationGlobalId\": 10846, \"testCaseGlobalId\": 10852 }, { \"
configurationGlobalId\": 10846, \"testCaseGlobalId\": 10850 }, { \"configurationGlobalId\":
10846, \"testCaseGlobalId\": 10848 } ]}"

POST /api/Public/testresults/{testResultId}/attachments (Устаревший)

Добавление документа в систему

POST /api/Public/attachment Способ авторизации: secretKeyBase64 {secretKey}

Пример cURL запроса в общем виде:

curl -X POST "http://192.168.88.140/api/Public/attachment" -H "accept: application/json" -H
"secretKeyBase64 {secretKey}" -H "Content-Type: multipart/form-data" -F "file=@
{file_path};type=image/jpeg"

Пример cURL запроса:

curl -X POST "http://192.168.88.140/api/Public/attachment" -H "accept: application/json" -H
"secretKeyBase64 {secretKey}" -H "Content-Type: multipart/form-data" -F "file=@file.
png;type=image/jpeg"

Сценарий использования методов в этой статье:

  1. Авторизоваться

  2. Генерировать секретный ключ

  3. Создать проект

  4. Создать test case

  5. Создать auto test

  6. Прикрепляем auto test к test case. Метод /api/v2/autoTests/{autoTestId}/workItems доступен в swagger. Результат: test case помечен как автоматизированный

  7. Создаём test plan

  8. Создаём test suite

  9. Добавляем конфигурацию в test suite

  10. Добавляем автоматизированный test case в test suite Результат: в разделе Результаты 1 test point, помеченный как автоматизированный

  11. Создаём Test Run, т.е. выбираем автоматизированный test point и нажимаем на кнопку создания test run

  12. Получаем список Test Run по проекту с помощью GET /api/Public/GetTestRuns/{projectGlobalId}

  13. Запускаем Test Run через POST /api/Public/StartTestRun/{testRunId}

  14. Назначаем результат автотесту через POST /api/v2/testResults

  15. Завершаем Test Run

    1. Если проставлены все результату в автотестах, Test Run переходит в статус completed

    2. Для явного завершения Test Run, т.е. перевод в статус completed необходимо отправить POST /api/Public /CompleteTestRun/{testRunId}

    3. Для остановки Test Run необходимо отправить POST /api/Public/StopTestRun/{testRunId}