vanessa-automation icon indicating copy to clipboard operation
vanessa-automation copied to clipboard

Отчет Allure при использовании сервера

Open beefree86 opened this issue 3 years ago • 41 comments

Укажите:

  1. Версия Vanessa Automation 1.2.039.1
  2. Версия платформы 1С:Предприятие 8.3 (8.3.19.1467)
  3. Режим совместимости базы, где запускается Vanessa Automation - нет
  4. Операционная система 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 image

beefree86 avatar Jul 14 '22 12:07 beefree86

@beefree86 В поле fullname всегда одна и та же строка записывается?

Pr-Mex avatar Jul 15 '22 16:07 Pr-Mex

Нет, это что-то вроде имяФичи+имяСценария.

nixel2007 avatar Jul 15 '22 16:07 nixel2007

Нет, это что-то вроде имяФичи+имяСценария.

Просто надо строку собрать вида ИмяФичи_ИмяСценария ?

Pr-Mex avatar Jul 15 '22 17:07 Pr-Mex

Нет, это что-то вроде имяФичи+имяСценария.

Просто надо строку собрать вида ИмяФичи_ИмяСценария ?

Добрый день.

Я задала вопрос поддержке Allure по поводу сбора этого параметра. ответа пока нет, жду.

В телеграмм канале allure нашла такое упоминание: "у каждого теста есть fullName, это package + class + method"

beefree86 avatar Jul 15 '22 17:07 beefree86

Имя фичи же может повторяться. Можно словить неуникальные тесты в разных фичах. Есть какой-то условно постоянный идентификатор фичи, сохраняемый между запусками? Путь к файлу относительно каталога проекта как вариант.

А можно забить и идти интерактивно от простого к сложному)

nixel2007 avatar Jul 15 '22 17:07 nixel2007

В телеграмм канале allure нашла такое упоминание: "у каждого теста есть fullName, это package + class + method"

Это джава подход. У них тесты в методах, привязанных к классам, которые лежат в пакете. А у нас только файловая структура, имена фич и имена сценариев

nixel2007 avatar Jul 15 '22 17:07 nixel2007

в отчете, который мне предоставили для примера (он загружен сюда тоже) данные для fullName собираются из меток, может можно и нам в такие же метки какие-то данные передавать и собирать из них fullName image

beefree86 avatar Jul 15 '22 17:07 beefree86

Можно просто полное имя файла записать туда плюс имя сценария. Получится уникальная строка.

Pr-Mex avatar Jul 15 '22 17:07 Pr-Mex

Интересно, а по длине имени нет ограничений, если будет очень большое

beefree86 avatar Jul 15 '22 17:07 beefree86

Интересно, а по длине имени нет ограничений, если будет очень большое

Это наверное лучше у супорта Аллюра спросить.

Pr-Mex avatar Jul 15 '22 17:07 Pr-Mex

Попробую узнать этот момент тоже

beefree86 avatar Jul 15 '22 18:07 beefree86

Можно просто полное имя файла записать туда плюс имя сценария. Получится уникальная строка.

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

nixel2007 avatar Jul 15 '22 18:07 nixel2007

полный путь должен обеспечивать уникальность для каждого теста. формируется он в зависимости от фреймворка по-разному. Например, для JUnit это будет полная сигнатура метода: комбинация packageName.ClassName.methodName в рамках одного проекта это будет всегда уникальная строка вида: "fullName": "io.qameta.allure.IssuesRestTest.shouldCreateUserNote", причем уникальной она должна быть на протяжении всей жизни теста. мы можем устроить встречу с разработчиками аллюр фреймворка и обсудить этот вопрос и вопрос селективного запуска тестов, который было бы неплохо так же иметь для полной совместимости с Allure TestOps.

cheshi-mantu avatar Jul 15 '22 19:07 cheshi-mantu

@cheshi-mantu Да, думаю можно обсудить на встрече.

Pr-Mex avatar Jul 16 '22 08:07 Pr-Mex

@Pr-Mex привет, Леонид. кого из участников разработки с вашей стороны нужно будет позвать?

cheshi-mantu avatar Jul 18 '22 07:07 cheshi-mantu

@Pr-Mex привет, Леонид. кого из участников разработки с вашей стороны нужно будет позвать?

Меня.

Pr-Mex avatar Jul 18 '22 12:07 Pr-Mex

@Pr-Mex см. в почте со вчерашнего дня, пожалуйста.

cheshi-mantu avatar Jul 19 '22 10:07 cheshi-mantu

@Pr-Mex см. в почте со вчерашнего дня, пожалуйста.

Ответил

Pr-Mex avatar Jul 19 '22 13:07 Pr-Mex

@cheshi-mantu От вас пока ответа нет.

Pr-Mex avatar Jul 20 '22 16:07 Pr-Mex

Добрый вечер! А встреча в итоге состоялась?

beefree86 avatar Jul 28 '22 15:07 beefree86

@beefree86 Да, созвонились. Детально именно этот issue не обсуждали. Я постараюсь на днях предложить свой вариант решения.

Pr-Mex avatar Jul 29 '22 06:07 Pr-Mex

@beefree86 Да, созвонились. Детально именно этот issue не обсуждали. Я постараюсь на днях предложить свой вариант решения.

Спасибо!

beefree86 avatar Jul 29 '22 07:07 beefree86

варианты:

  1. служебный тег со значением. но куча проблем сразу: откуда брать значение, чтоб было уникальным; надо отслеживать наличие тега; отвалятся старые фичи, где тега нет; в VA сейчас вроде вовсе нет поддержки тегов со значениями. из плюсов: можно перемещать сценарий между файлами, переименовывать - если значение тега остается неизменным, то и в аллюре не меняется
  2. путь фича-файла относительно каталога проекта + имя сценария из минусов: переименование/перемещение фича-файла или смена имени сценария меняет значение. из плюсов: ничего нигде дополнительно указывать/заполнять/отслеживать не надо. значение можно собрать из того, что уже есть

я за 2

1cgh avatar Aug 01 '22 15:08 1cgh

  1. путь фича-файла относительно каталога проекта + имя сценария из минусов: переименование/перемещение фича-файла или смена имени сценария меняет значение. из плюсов: ничего нигде дополнительно указывать/заполнять/отслеживать не надо. значение можно собрать из того, что уже есть Для случаев, когда меняется путь, у нас есть вариант жесткой привязки к AllureID (он для этого и нужен), чтобы не плодились новые сущности при изменениях. Параметр передается в лейблах (см. https://docs.qameta.io/allure-testops/faq/labels/) при помощи лейбла AS_ID
"labels": [
   <snip>
 {
      "name": "AS_ID",
      "value": "9999"
    },
   <snip>
}

image

cheshi-mantu avatar Aug 02 '22 11:08 cheshi-mantu

при первой загрузке сгенерированному ТК назначается ИД системой, далее этот ИД уже можно добавить в код, чтобы изменения в путях/именах лепились к этому ИД.

cheshi-mantu avatar Aug 02 '22 11:08 cheshi-mantu

при первой загрузке сгенерированному ТК назначается ИД системой, далее этот ИД уже можно добавить в код, чтобы изменения в путях/именах лепились к этому ИД.

@cheshi-mantu Получается, что пользователю надо как-то вручную отслеживать эти ID и прописывать их в тесты. Для тысяч тестов это видится непростой задачей.

Pr-Mex avatar Aug 08 '22 19:08 Pr-Mex

  1. служебный тег со значением. но куча проблем сразу: откуда брать значение, чтоб было уникальным; надо отслеживать наличие тега; отвалятся старые фичи, где тега нет; в VA сейчас вроде вовсе нет поддержки тегов со значениями. из плюсов: можно перемещать сценарий между файлами, переименовывать - если значение тега остается неизменным, то и в аллюре не меняется

@1cgh Наверное, как написал @cheshi-mantu, тег AS_ID и будет тем уникальным ID. Его надо будет прописать для тех случаев, когда что-то планируют переименовать или перенести.

Pr-Mex avatar Aug 08 '22 20:08 Pr-Mex

Думаю итого надо сделать следующее:

  1. Сделать, чтобы теги вида @Name:Value записывались как label, как этого хочет аллюр. Сейчас такой тег тоже записывается как label, но это будет выглядеть так image а надо так image

  2. В fullName писать путь фича-файла относительно каталога проекта + имя сценария (возможно это надо делать транслитом). Если кому-то надо будет переименовать/перенести - то он будет добавлять тег с AS_ID. @1cgh @cheshi-mantu @nixel2007 @beefree86 Что думаете?

Pr-Mex avatar Aug 08 '22 20:08 Pr-Mex

@Pr-Mex Меня такой вариант вполне устраивает, это лучше чем ничего ). С тегом as_id я экспериментировала, есть обработка, не помню у кого я в гитхаб стянула и немного под себя переделала. Шагами сценария она добавляет разные тэги и ссылки. Могу ее сюда приложить. (Если надо).

@cheshi-mantu А по поводу полного имени, два вопроса: 1. как вы написали, нужно ли транслитом писать имя? 2. Есть ли ограничение по длине имени (оно может получиться очень большим)

beefree86 avatar Aug 08 '22 21:08 beefree86

при первой загрузке сгенерированному ТК назначается ИД системой, далее этот ИД уже можно добавить в код, чтобы изменения в путях/именах лепились к этому ИД.

@cheshi-mantu Получается, что пользователю надо как-то вручную отслеживать эти ID и прописывать их в тесты. Для тысяч тестов это видится непростой задачей.

у нас есть IDE плагин для упрощения процесса, там автоматом проставляются ИД для ТК, которые уже сгенерированы. В общем случае ИД нужен только в том случае, если ты что-то меняешь в ТК (часть пути, набор параметров), так что это не является прям обязательным для каждого ТК. Но это надо держать в голове, что если решил менять пути или параметры, то нужен ИД.

cheshi-mantu avatar Aug 09 '22 12:08 cheshi-mantu