vanessa-automation
vanessa-automation copied to clipboard
Отчет Allure при использовании сервера
Укажите:
- Версия Vanessa Automation 1.2.039.1
- Версия платформы 1С:Предприятие 8.3 (8.3.19.1467)
- Режим совместимости базы, где запускается Vanessa Automation - нет
- Операционная система Windows
В компании используется Allure сервер. Исходные результаты выполнения тестов при помощи команды allurectl upload загружаются в созданный проект на сервере allure.
В allure есть возможность автоматического создания тест-кейсов и отчета о запуске тестов. Описано тут Add an automated test case: https://docs.qameta.io/allure-testops/briefly/test-cases/manage/#generation-of-automated-test-cases-from-manual-upload-of-test-results
Пообщавшись с поддержкой Allure было выявлено, что в json файле с результатами тестов нет такого параметра как "fullName", он обязателен.
Пример результата из VA без FullName.txt Пример результата с FullName.txt
Объяснение поддержки allure

@beefree86 В поле fullname всегда одна и та же строка записывается?
Нет, это что-то вроде имяФичи+имяСценария.
Нет, это что-то вроде имяФичи+имяСценария.
Просто надо строку собрать вида ИмяФичи_ИмяСценария ?
Нет, это что-то вроде имяФичи+имяСценария.
Просто надо строку собрать вида ИмяФичи_ИмяСценария ?
Добрый день.
Я задала вопрос поддержке Allure по поводу сбора этого параметра. ответа пока нет, жду.
В телеграмм канале allure нашла такое упоминание: "у каждого теста есть fullName, это package + class + method"
Имя фичи же может повторяться. Можно словить неуникальные тесты в разных фичах. Есть какой-то условно постоянный идентификатор фичи, сохраняемый между запусками? Путь к файлу относительно каталога проекта как вариант.
А можно забить и идти интерактивно от простого к сложному)
В телеграмм канале allure нашла такое упоминание: "у каждого теста есть fullName, это package + class + method"
Это джава подход. У них тесты в методах, привязанных к классам, которые лежат в пакете. А у нас только файловая структура, имена фич и имена сценариев
в отчете, который мне предоставили для примера (он загружен сюда тоже) данные для fullName собираются из меток, может можно и нам в такие же метки какие-то данные передавать и собирать из них fullName

Можно просто полное имя файла записать туда плюс имя сценария. Получится уникальная строка.
Интересно, а по длине имени нет ограничений, если будет очень большое
Интересно, а по длине имени нет ограничений, если будет очень большое
Это наверное лучше у супорта Аллюра спросить.
Попробую узнать этот момент тоже
Можно просто полное имя файла записать туда плюс имя сценария. Получится уникальная строка.
Полное имя нельзя использовать, так как оно будет меняться при разных запусках тестов. А суть как раз к том, чтобы получить неизменяемый ид, к которому можно привязаться на стороне аллюр сервера.
полный путь должен обеспечивать уникальность для каждого теста.
формируется он в зависимости от фреймворка по-разному.
Например, для JUnit это будет полная сигнатура метода: комбинация packageName.ClassName.methodName
в рамках одного проекта это будет всегда уникальная строка вида:
"fullName": "io.qameta.allure.IssuesRestTest.shouldCreateUserNote", причем уникальной она должна быть на протяжении всей жизни теста.
мы можем устроить встречу с разработчиками аллюр фреймворка и обсудить этот вопрос и вопрос селективного запуска тестов, который было бы неплохо так же иметь для полной совместимости с Allure TestOps.
@cheshi-mantu Да, думаю можно обсудить на встрече.
@Pr-Mex привет, Леонид. кого из участников разработки с вашей стороны нужно будет позвать?
@Pr-Mex привет, Леонид. кого из участников разработки с вашей стороны нужно будет позвать?
Меня.
@Pr-Mex см. в почте со вчерашнего дня, пожалуйста.
@Pr-Mex см. в почте со вчерашнего дня, пожалуйста.
Ответил
@cheshi-mantu От вас пока ответа нет.
Добрый вечер! А встреча в итоге состоялась?
@beefree86 Да, созвонились. Детально именно этот issue не обсуждали. Я постараюсь на днях предложить свой вариант решения.
@beefree86 Да, созвонились. Детально именно этот issue не обсуждали. Я постараюсь на днях предложить свой вариант решения.
Спасибо!
варианты:
- служебный тег со значением. но куча проблем сразу: откуда брать значение, чтоб было уникальным; надо отслеживать наличие тега; отвалятся старые фичи, где тега нет; в VA сейчас вроде вовсе нет поддержки тегов со значениями. из плюсов: можно перемещать сценарий между файлами, переименовывать - если значение тега остается неизменным, то и в аллюре не меняется
- путь фича-файла относительно каталога проекта + имя сценария из минусов: переименование/перемещение фича-файла или смена имени сценария меняет значение. из плюсов: ничего нигде дополнительно указывать/заполнять/отслеживать не надо. значение можно собрать из того, что уже есть
я за 2
- путь фича-файла относительно каталога проекта + имя сценария из минусов: переименование/перемещение фича-файла или смена имени сценария меняет значение. из плюсов: ничего нигде дополнительно указывать/заполнять/отслеживать не надо. значение можно собрать из того, что уже есть Для случаев, когда меняется путь, у нас есть вариант жесткой привязки к AllureID (он для этого и нужен), чтобы не плодились новые сущности при изменениях. Параметр передается в лейблах (см. https://docs.qameta.io/allure-testops/faq/labels/) при помощи лейбла AS_ID
"labels": [
<snip>
{
"name": "AS_ID",
"value": "9999"
},
<snip>
}

при первой загрузке сгенерированному ТК назначается ИД системой, далее этот ИД уже можно добавить в код, чтобы изменения в путях/именах лепились к этому ИД.
при первой загрузке сгенерированному ТК назначается ИД системой, далее этот ИД уже можно добавить в код, чтобы изменения в путях/именах лепились к этому ИД.
@cheshi-mantu Получается, что пользователю надо как-то вручную отслеживать эти ID и прописывать их в тесты. Для тысяч тестов это видится непростой задачей.
- служебный тег со значением. но куча проблем сразу: откуда брать значение, чтоб было уникальным; надо отслеживать наличие тега; отвалятся старые фичи, где тега нет; в VA сейчас вроде вовсе нет поддержки тегов со значениями. из плюсов: можно перемещать сценарий между файлами, переименовывать - если значение тега остается неизменным, то и в аллюре не меняется
@1cgh Наверное, как написал @cheshi-mantu, тег AS_ID и будет тем уникальным ID. Его надо будет прописать для тех случаев, когда что-то планируют переименовать или перенести.
Думаю итого надо сделать следующее:
-
Сделать, чтобы теги вида @Name:Value записывались как label, как этого хочет аллюр. Сейчас такой тег тоже записывается как label, но это будет выглядеть так
а надо так

-
В fullName писать путь фича-файла относительно каталога проекта + имя сценария (возможно это надо делать транслитом). Если кому-то надо будет переименовать/перенести - то он будет добавлять тег с AS_ID. @1cgh @cheshi-mantu @nixel2007 @beefree86 Что думаете?
@Pr-Mex Меня такой вариант вполне устраивает, это лучше чем ничего ). С тегом as_id я экспериментировала, есть обработка, не помню у кого я в гитхаб стянула и немного под себя переделала. Шагами сценария она добавляет разные тэги и ссылки. Могу ее сюда приложить. (Если надо).
@cheshi-mantu А по поводу полного имени, два вопроса: 1. как вы написали, нужно ли транслитом писать имя? 2. Есть ли ограничение по длине имени (оно может получиться очень большим)
при первой загрузке сгенерированному ТК назначается ИД системой, далее этот ИД уже можно добавить в код, чтобы изменения в путях/именах лепились к этому ИД.
@cheshi-mantu Получается, что пользователю надо как-то вручную отслеживать эти ID и прописывать их в тесты. Для тысяч тестов это видится непростой задачей.
у нас есть IDE плагин для упрощения процесса, там автоматом проставляются ИД для ТК, которые уже сгенерированы. В общем случае ИД нужен только в том случае, если ты что-то меняешь в ТК (часть пути, набор параметров), так что это не является прям обязательным для каждого ТК. Но это надо держать в голове, что если решил менять пути или параметры, то нужен ИД.