Перейти к содержимому

API

Все маршруты — под /api, отвечают JSON. Вход — cookie сессии (POST /api/auth/login) или API-токен проекта в заголовке Authorization: Bearer tsmc_…: токен действует как редактор и только в своём проекте. Изменяющие запросы из браузера обязаны нести заголовок X-Requested-With: tsmc. Роли включают друг друга: наблюдатель < тестировщик < редактор < администратор. Списки с limit отдают общее число в заголовке X-Total-Count.

Жив ли сервер, версия API и приложения. Без входа.

Роль: без входа.

Кто вошёл, нужна ли первичная настройка, демо-режим и стенд.

Роль: без входа.

Создать первого администратора — только пока нет ни одного пользователя.

Роль: без входа.

Тело (SetupRequest):

Поле Тип Обязательно
email string да
name string да
password string да

Войти: ставит cookie сессии.

Роль: без входа.

Тело (LoginRequest):

Поле Тип Обязательно
email string да
password string да

Выйти: завершает текущую сессию.

Роль: без входа.

Изменить своё имя или пароль.

Роль: наблюдатель.

Тело (ProfilePatch):

Поле Тип Обязательно
name string
currentPassword string
newPassword string

Все пользователи с ролями.

Роль: администратор.

Имена активных пользователей — для выбора исполнителя.

Роль: наблюдатель.

Создать пользователя.

Роль: администратор.

Тело (UserCreate):

Поле Тип Обязательно
email string да
name string да
role viewer | tester | editor | admin
password string да

Изменить роль, имя, пароль; отключить или включить.

Роль: администратор.

Тело (UserPatch):

Поле Тип Обязательно
name string
role viewer | tester | editor | admin
password string
disabled boolean

Журнал действий: фильтр по действию или группе, проекту, пользователю; постранично.

Роль: администратор.

Параметры запроса (AuditQuery):

Поле Тип Обязательно
action string
project string
user integer
before integer
limit integer

Все проекты.

Роль: наблюдатель.

Создать проект с ключом.

Роль: администратор.

Тело (ProjectCreate):

Поле Тип Обязательно
key string да
name string да
description string

Проект по ключу.

Роль: наблюдатель.

Переименовать проект или изменить описание.

Роль: администратор.

Тело (ProjectPatch):

Поле Тип Обязательно
name string
description string

Удалить проект со всем содержимым.

Роль: администратор.

Дерево сьютов проекта.

Роль: наблюдатель.

Число кейсов в каждом сьюте — для выбора кейсов в прогон.

Роль: наблюдатель.

Создать сьют.

Роль: редактор.

Тело (SuiteCreate):

Поле Тип Обязательно
name string да
description string
parentId integer | null
codePaths string[]

Сьют.

Роль: наблюдатель.

Скопировать сьют со всеми вложенными сьютами и кейсами.

Роль: редактор.

Тело (SuiteCopy):

Поле Тип Обязательно
parentId integer | null
name string

Переименовать, перенести, поменять место среди соседей, задать шаблоны путей кода.

Роль: редактор.

Тело (SuitePatch):

Поле Тип Обязательно
name string
description string
parentId integer | null
position integer
codePaths string[]

Удалить сьют с вложенными сьютами и кейсами.

Роль: редактор.

Кейсы проекта: полнотекстовый поиск, фильтры, постранично (всего — в X-Total-Count).

Роль: наблюдатель.

Параметры запроса (CaseListQuery):

Поле Тип Обязательно
suiteId integer
recursive true | false
q string
tag string
status draft | active | deprecated
priority low | medium | high | critical
limit integer
offset integer

Массовое действие над выбранными кейсами: перенос, теги, статус, приоритет, удаление.

Роль: редактор.

Копия кейса без ключа автотеста, результатов и вложений.

Роль: редактор.

Тело (CaseCopy):

Поле Тип Обязательно
suiteId integer
title string

Перенести кейс в сьют и/или поставить перед другим кейсом.

Роль: редактор.

Тело (CasePlace):

Поле Тип Обязательно
suiteId integer да
before integer | null

Создать кейс.

Роль: редактор.

Тело (CaseCreate):

Поле Тип Обязательно
suiteId integer да
title string да
description string
preconditions string
priority low | medium | high | critical
type functional | smoke | regression | acceptance | performance | security | usability | other
status draft | active | deprecated
automationKey string | null
tags string[]
steps object[]
codePaths string[]
dataset object | null

Кейс по ключу, например SHOP-12.

Роль: наблюдатель.

Кейс.

Роль: наблюдатель.

Изменить кейс — новая версия; expectedVersion ловит одновременную правку.

Роль: редактор.

Тело (CasePatch):

Поле Тип Обязательно
suiteId integer
title string
description string
preconditions string
priority low | medium | high | critical
type functional | smoke | regression | acceptance | performance | security | usability | other
status draft | active | deprecated
automationKey string | null
tags string[]
steps object[]
codePaths string[]
dataset object | null
expectedVersion integer

Удалить кейс. В прогонах остаётся его копия.

Роль: редактор.

История версий кейса: автор, канал, что изменилось.

Роль: наблюдатель.

Версия кейса целиком.

Роль: наблюдатель.

Результаты кейса во всех прогонах.

Роль: наблюдатель.

Общие шаги проекта.

Роль: наблюдатель.

Создать общий шаг.

Роль: редактор.

Тело (SharedStepCreate):

Поле Тип Обязательно
name string да
steps object[] да

Общий шаг и кейсы, где он используется.

Роль: наблюдатель.

Изменить общий шаг: все кейсы с ним получают новую версию; ответ — сколько кейсов обновлено.

Роль: редактор.

Тело (SharedStepPatch):

Поле Тип Обязательно
name string
steps object[]
expectedVersion integer

Удалить общий шаг: в кейсах его шаги остаются обычными.

Роль: редактор.

Прогоны: закреплённые первыми, фильтр по статусу, архиву и вехе, постранично.

Роль: наблюдатель.

Параметры запроса (RunListQuery):

Поле Тип Обязательно
status open | closed
milestone integer
archived 0 | 1 | true | false
limit integer
offset integer

Создать прогон из выбранных кейсов.

Роль: тестировщик.

Тело (RunCreate):

Поле Тип Обязательно
name string да
description string
build string
environment string
milestoneId integer | null
icon computer | ps | x | android | apple | smoke | alert | null
selection object

Сколько кейсов попадёт в прогон при таком выборе — ничего не создаёт.

Роль: наблюдатель.

Тело (RunSelection):

Поле Тип Обязательно
caseIds integer[]
suiteIds integer[]
tags string[]
priorities low | medium | high | critical[]
pick object
statuses draft | active | deprecated[]
keepOrder boolean

Прогон с кейсами и результатами.

Роль: наблюдатель.

Изменить название, описание, сборку, окружение, веху, иконку.

Роль: тестировщик.

Тело (RunPatch):

Поле Тип Обязательно
name string
description string
build string
environment string
milestoneId integer | null
icon computer | ps | x | android | apple | smoke | alert | null

Закрыть прогон.

Роль: тестировщик.

Закрыть прогон с проверкой проекта — для CI с токеном проекта.

Роль: тестировщик.

Переоткрыть прогон (и вернуть из архива).

Роль: тестировщик.

Отправить в архив: прогон закрывается и уходит из списка, в отчётах остаётся.

Роль: тестировщик.

Вернуть из архива.

Роль: тестировщик.

Закрепить наверху списка прогонов для всех.

Роль: тестировщик.

Открепить.

Роль: тестировщик.

Новый прогон тех же кейсов в текущих версиях, без результатов.

Роль: тестировщик.

Тело (RunRerun):

Поле Тип Обязательно
name string да
description string
build string
environment string
milestoneId integer | null
icon computer | ps | x | android | apple | smoke | alert | null

Удалить прогон с результатами.

Роль: редактор.

Добавить кейсы в открытый прогон.

Роль: тестировщик.

Тело (RunAddCases):

Поле Тип Обязательно
caseIds integer[] да

Кейс в прогоне: зафиксированная версия, результат, шаги, вложения, баги.

Роль: наблюдатель.

Поставить результат, статусы шагов, комментарий, время, исполнителя.

Роль: тестировщик.

Тело (ResultPatch):

Поле Тип Обязательно
status untested | passed | failed | blocked | skipped | retest
comment string
durationMs integer | null
stepResults passed | failed | blocked | skipped | null[]
assigneeId integer | null

Убрать кейс из прогона.

Роль: тестировщик.

Обновить кейс в прогоне до текущей версии кейса.

Роль: тестировщик.

История результата: кто и когда что ставил.

Роль: наблюдатель.

Вехи и спринты проекта, свежие первыми, с числом прогонов.

Роль: наблюдатель.

Создать веху или спринт с периодом дат.

Роль: администратор.

Тело (MilestoneCreate):

Поле Тип Обязательно
kind milestone | sprint
name string да
description string
startDate string да
endDate string да

Веха или спринт.

Роль: наблюдатель.

Отчёт по вехе: каждый кейс по последнему результату, доля успешных, что падает, прогоны.

Роль: наблюдатель.

Изменить тип, название, описание или период.

Роль: администратор.

Тело (MilestonePatch):

Поле Тип Обязательно
kind milestone | sprint
name string
description string
startDate string
endDate string

Удалить веху: прогоны остаются без вехи.

Роль: администратор.

Загрузить отчёт JUnit XML в новый или открытый прогон (тело — XML; параметры — в запросе).

Роль: тестировщик.

Параметры запроса (JUnitImportQuery):

Поле Тип Обязательно
runId integer
runName string
build string
environment string
createMissing 0 | 1 | true | false
suite string
close 0 | 1 | true | false

Кейсы проекта для tsmc pull.

Роль: наблюдатель.

Тело (ExportRequest):

Поле Тип Обязательно
bases object[]

tsmc push: изменения из файлов одной атомарной операцией; dryRun — только показать.

Роль: редактор.

Тело (SyncRequest):

Поле Тип Обязательно
suites object[]
cases object[] да
dryRun boolean
deleteMissing boolean

API-токены проекта (без самих токенов).

Роль: администратор.

Выпустить API-токен: показывается один раз.

Роль: администратор.

Тело (TokenCreate):

Поле Тип Обязательно
name string да

Отозвать API-токен.

Роль: администратор.

Какие кейсы прогнать по списку изменённых файлов — с причинами и весами.

Роль: наблюдатель.

Тело (ImpactRequest):

Поле Тип Обязательно
files string[] да
includeDrafts boolean
createRun object

Импорт кейсов из TestRail, Qase или CSV; dryRun — предпросмотр.

Роль: редактор.

Тело (CaseImportRequest):

Поле Тип Обязательно
format csv | testrail-xml | qase-json да
content string да
mapping object
suiteSeparator string
rootSuite string
dryRun boolean

Кейсы проекта или сьюта в CSV или Excel.

Роль: наблюдатель.

Результаты прогона в CSV или Excel.

Роль: наблюдатель.

Параметры запроса (ExportFormat):

Поле Тип Обязательно
format csv | xlsx

Находки гигиены: дубли, давно не запускавшиеся, никогда не падающие, нестабильные.

Роль: наблюдатель.

Параметры запроса (HygieneQuery):

Поле Тип Обязательно
threshold number
staleDays integer
minRuns integer
window integer

Скрыть находку («всё в порядке»).

Роль: редактор.

Тело (HygieneIgnore):

Поле Тип Обязательно
kind duplicate | stale | never_failing | flaky да
caseIds integer[] да

Вернуть скрытые находки.

Роль: редактор.

Загрузить файл к кейсу или к результату в прогоне (тело — сам файл).

Роль: тестировщик.

Параметры запроса (AttachmentUploadQuery):

Поле Тип Обязательно
caseId integer
runCaseId integer
name string да

Вложения кейса.

Роль: наблюдатель.

Скачать вложение.

Роль: наблюдатель.

Удалить вложение.

Роль: тестировщик.

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

Роль: наблюдатель.

Параметры запроса (DashboardQuery):

Поле Тип Обязательно
days integer

Отчёт по прогону: сводка, провалы, сравнение с предыдущим прогоном.

Роль: наблюдатель.

Ссылки на отчёт без входа.

Роль: администратор.

Создать ссылку на отчёт без входа: показывается один раз.

Роль: администратор.

Закрыть ссылку на отчёт.

Роль: администратор.

Отчёт по ссылке — без входа и без вложений.

Роль: без входа.

Подключение трекера задач (без токена).

Роль: наблюдатель.

Подключить GitHub Issues, Jira или YouTrack.

Роль: администратор.

Тело (IntegrationInput):

Поле Тип Обязательно
kind github | jira | youtrack да
baseUrl string да
projectRef string да
username string
issueType string
token string

Отключить трекер задач.

Роль: администратор.

Проверить подключение к трекеру.

Роль: администратор.

Баги, связанные с кейсом.

Роль: наблюдатель.

Связать задачу с кейсом по ключу или ссылке.

Роль: редактор.

Тело (IssueLinkCreate):

Поле Тип Обязательно
ref string да

Связать задачу с результатом в прогоне.

Роль: тестировщик.

Тело (IssueLinkCreate):

Поле Тип Обязательно
ref string да

Убрать связь с задачей.

Роль: тестировщик.

Черновик бага по упавшему кейсу: заголовок и описание из шагов и комментария.

Роль: тестировщик.

Завести баг в трекере и связать с результатом.

Роль: тестировщик.

Тело (IssueCreate):

Поле Тип Обязательно
title string да
body string да
attachFiles boolean

Обновить статусы багов прогона (не чаще раза в 10 минут).

Роль: наблюдатель.

Обновить статус одной задачи.

Роль: наблюдатель.