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

Фотография

Проблема создания дублей тест-кейсов в отчете Allure TestOps

Allure Allure testops отчет Allure

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 Oleg1987

Oleg1987

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Олег Бобриков

Отправлено 08 апреля 2023 - 07:06

Всем привет. Помогите разобраться.

 

Allure формирует отчет и некоторые тесты добавляет в него повторно, таким образом при прогоне тестрана количество тестов в отчете стабильно растет заполняя его дублями, чем делает полноценный анализ тестового покрытия невозможным.

 

Часть проблемы решена так - в проекте были тесты с динамическими параметрами типа date = Datetime.Now() из-за этого каждый такой тест после прогона считался уникальным. В самом отчете Allure в поле params каждый раз были уникальные данные. Пофиксал тем, что указал статичную дату - на сам тест это никак не влияло, но дубли создаваться перестали.

 

Сейчас нашел еще один тест, у которого также каждый раз генерятся уникальные данные в setup - произвольный id (не участвует в параметрах самого тест-кейса, но нужен для теста), и понимаю, что подход замены динамических параметров на статические - какой-то неправильный и костыльный. Система должна быть умнее.

 

Подскажите как правильно научить Allure (в каком блоке настроек allure проекта или в самом коде проекта) какие тесты считать уникальными, а какие надо заменять новой версией из прогона. Например, можно ли смотреть только на description и params или еще как-то?

 

Заранее спасибо


  • 0

#2 max08041993

max08041993

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Козлов Максим Андреевич

Отправлено 15 апреля 2023 - 11:10

Похожая проблема, связка Cucumber7 JUnit5 Selenide Spring Gradle После прогонов io.qameta.allure:allure-cucumber7-jvm формирует в отчете х2 количества тестов. Что бы не делал, все форумы перерыл, подскажите люди добрые! 

 

dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-test'

  implementation 'org.junit.platform:junit-platform-suite:1.9.2'
  implementation 'org.junit.platform:junit-platform-suite-api:1.9.2'
  implementation 'org.junit.jupiter:junit-jupiter-api:5.9.2'
  implementation 'org.junit.jupiter:junit-jupiter-engine:5.9.2'

  implementation 'com.codeborne:selenide:5.25.1'
  implementation 'io.cucumber:cucumber-java:7.11.2'
  implementation 'io.cucumber:cucumber-junit-platform-engine:7.11.2'
  implementation 'io.cucumber:cucumber-spring:7.11.2'

  implementation "io.qameta.allure:allure-selenide:2.19.0"
  implementation 'io.qameta.allure:allure-cucumber7-jvm:2.19.0'
  implementation "org.assertj:assertj-core:3.20.2"
  implementation 'org.projectlombok:lombok:1.18.26'

  implementation "ch.qos.logback:logback-core"
  implementation "ch.qos.logback:logback-classic"
}

Пробовал без io.qameta.allure:allure-selenide только информативность теряю в шагах, а дубли так и остаются. т.е. проблема именно в io.qameta.allure:allure-cucumber7-jvm да и в 6 версии тоже самое

 


  • 0

#3 max08041993

max08041993

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Козлов Максим Андреевич

Отправлено 15 апреля 2023 - 11:14

Вот скрин проблемы с дублями https://disk.yandex..../V3vwjJAPDqikgw


  • 0

#4 Oleg1987

Oleg1987

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Олег Бобриков

Отправлено 16 апреля 2023 - 03:39

Всем привет. Нашел такое решение своей проблемы на C#. Команду устроило

Для монотестов и тест-кейсов, имеющих динамический параметр добавляется атрибут

для монотестов:

[TestCase(TestName="SomeTestName")]

или для тесткейсов:

[TestCase(TestName="SomeTestName_1")], 
[TestCase(TestName="SomeTestName_2")],
[TestCase(TestName="SomeTestName_n")] 

Этот атрибут задает имя теста (не description, а именно имя теста) и это значение является приоритетным, оно не дает программе формировать имена тестов по дефолту (с параметрами в имени). В итоге после каждого прогона имена тестов одинаковые и Allure их спокойно мержит

 

Ситуация поинтереснее, когда мы имеем тест или тест-кейс, который берет свои параметры из IEnumerablrе метода, который в свою очередь использует динамики. Тут решение такое. IEnumerablrе метод должен возвращать тип данных TestCaseData и для параметра добавляется атрибут .SetName("Test_n"), с именем теста. Пример ниже

public static IEnumerable<TestCaseData> MetodName() 
    { 
     yield return new TestCaseData(SomeDynamicTimeParametr.AddSeconds(-1)) 
        .SetName("Test_1"); 
     yield return new TestCaseData(SomeDynamicTimeParametr.AddSeconds(1)) 
        .SetName("Test_2"); 
    } 

[NUnit.Framework.Description("Description теста")] 
[TestCaseSource(nameof(MetodName))]

Так удалось решить проблему дублей и динамических имен. Надеюсь кому-нибудь пригодится


  • 0



Темы с аналогичным тегами Allure, Allure testops, отчет Allure

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных