Сопоставление результатов с тест-кейсами
Когда вы загружаете результаты тестов, для каждого результата ТестОпс выполняет одно из трех действий:
- Создает новый автоматизированный тест-кейс, если это первая загрузка результатов для этого тест-кейса.
- Обновляет существующий тест-кейс, если вы уже загружали для него результаты.
- Отмечает результат как «Несвязанный», если он содержит неверные данные для сопоставления.
После первичной загрузки все последующие результаты должны быть корректно связаны с созданным тест-кейсом. Для этого адаптеры Allure дополнительно записывают в результат уникальный идентификатор теста (testCaseId), который отличается от ID тест-кейса, отображающегося в интерфейсе ТестОпс. Чтобы создать этот идентификатор, адаптеры хэшируют данные, предоставляемые тестовым фреймворком, включая селектор тест-кейса (полный путь теста).
Если тестовый фреймворк не предоставляет готовый идентификатор для теста, адаптер создает хэш на основе сигнатуры тестовой функции и дополнительной информации, которая может помочь сделать идентификатор более уникальным (например, названия пакета).
Этот процесс можно представить следующим образом:
testCaseId = md5(fullName + sort(params))где:
fullName— селектор теста (полное имя теста, сигнатура тестовой функции), которое может включать: имя пакета, имя класса, имя файла, имя метода/функции;sort(params)— отсортированный список параметров теста.
От полученной строки вычисляется MD5-хэш, который дает фиксированную строку (уникальный идентификатор), например:
"testCaseId": "43f8868a337ff70177a77838d39c5b55"Примечание
Если вы не используете официальный адаптер и в ваших результатах нет этого идентификатора, ТестОпс сгенерирует его автоматически при загрузке результатов. Этот идентификатор может отличаться от идентификаторов, создаваемых адаптерами.
Возможная проблема идентификаторов, созданных таким образом, — их чувствительность к изменениям в вашем коде. Например, если для создания идентификатора была использована сигнатура тестовой функции и вы в будущем измените имя функции или ее параметры, это приведет к изменению идентификатора и к созданию в ТестОпс нового тест-кейса вместо обновления существующего.
Чтобы этого избежать, после первичной загрузки результатов тестов вы можете указать в вашем коде ID связанных тест-кейсов из ТестОпс. Значения ID можно найти в интерфейсе ТестОпс: в карточках тест-кейсов, в общем списке тест-кейсов и в их URL-адресах.
Важно
Вы не можете указать в коде ID тест-кейса, который еще не существует в ТестОпс. В таком случае загруженные результаты получат статус «Несвязанный» и тест-кейсы не будут созданы или обновлены.
В зависимости от используемого тестового фреймворка и адаптера Allure, ID тест-кейса задается разными аннотациями, например:
java
@Test
@AllureId("123")
public void myTest() {
step("Step 1", () -> {});
}После запуска теста из примеров выше адаптер создаст файл с результатами, в котором будут указаны следующие поля:
json
"testCaseId": "db57b9d129d73c4b4d9a1d1023774f53",
"labels": [
{
"name": "as_id",
"value": "123"
}
]где:
testCaseId— уникальный идентификатор теста, созданный адаптером (хэш данных, предоставленных тестовым фреймворком);as_id(илиallure_idв некоторых адаптерах) — имя ключа, который хранит ID тест-кейса;123— ID тест-кейса из базы данных ТестОпс.
Если ТестОпс обнаружит ID тест-кейса в результате теста, он будет игнорировать всю информацию, связанную с testCaseId, и свяжет результат теста с соответствующим тест-кейсом через указанный ID.

