С#+WebDriver+NUnit 3 интеграция с Allure 2 Framework

csharp
nunit
infrastructure
allure
webdriver
Теги: #<Tag:0x00007f7b64bf6d28> #<Tag:0x00007f7b64bf6be8> #<Tag:0x00007f7b64bf6990> #<Tag:0x00007f7b64bf6800> #<Tag:0x00007f7b64bf6698>

(Lelik) #82

Да, я понимаю что могуи так у меня сейчас и работает. Но я бы хотела уйти от записи в файл и переместить все в репорт.


(Alexandr D.) #83

Вы можете оставить пустым тело экшена, чтобы просто записать шаг без каких-либо действий.

AllureLifecycle.Instance.RunStep($"product parameters: par1: {par1} par2: {par2}, par3: {par3}", () => {});

(Lelik) #84

Давно не писала, так как была увлечена добалением Allure во все 100500 тестов, а это не быстро. Очень радует появление красивого понятного отчета.
И конечто же появились трудности и вопросы.

  1. Шаги [SetUp] и [TearDown] не появляются в репорте.
  2. Тест можно привязать к Issue [AllureIssue(“US:292738”, link] https://www.screencast.com/t/MMITO0X0BpL
    но хотелось бы привязывать также к Story. Т.е. я пока сделала что это User Story + номер, и линк в беклоге. Так же BUG + номер, и линк в беклоге.
  3. Генерация отчета. Сделала отчень топорно, но пока так. В начале все как обычно: get sourses, nuget restore, msbuild, vstest run, а даааальше powershell, который запускает allure serve path и собирает из папки все для отчета и генерит.
  4. Хочется видеть историю https://www.screencast.com/t/0Hgm21cPf . Тесты запускаются каждую ночь и история запусков поможет отслеживать стабильность тестов.
  5. Запись видео. Планируется ли в ближайшем будущем? Иногда очень нужно.
  6. Возможно ли сделать выгрузку в html формат?

(Alexandr D.) #85

Отвечу по пунктам:

  1. Это было добавлено в сборке https://www.nuget.org/packages/Noksa.NUnit.Allure/, шаги не только из Setup и TearDown, но и из OneTimeSetup/OneTimeTearDown добавляются в отчёт.
  2. Здесь я не очень понял, что вы хотите. Можно поподробнее?
  3. Я уже писал много раз, что хорошим вариантом для развертывания отчётов, как и запуска тестов, является использование CI/CD, например Jenkins.
  4. См п. 3. Jenkins умеет хранить историю тестов из коробки.
    Добавлять это к ручным запускам из IDE я пока не вижу смысла.
  5. За запись видео должна отвечать ваша архитектура. Я могу лишь порекомендовать использовать связку Ggr - Selenoid для этого, т.к. используя их можно записывать видео при параллельных веб-тестах на одном хосте с каждого браузера.
  6. Это вам к разработчикам https://github.com/allure-framework/ но по-моему юзлесс кейс.

(Lelik) #86

Отвечу также по пунктам:

  1. Setup добавлен но в отчете не появляется
[SetUp]
        public void InitializeTest()
        {};
  1. Все тесты сейачс with defect потому-что https://www.screencast.com/t/uSguiBqMD7 слинкованы с якобы багами (как я поняла). Но на самом деле я использую эти линки для бытсрого перехода на ЮС и связанные мануальные тесты.
      1. Мне не подходит Jenkins, у меня tfs
  2. Спасибо, но идея была записывать видео и добавлять линк в отчет. Но это не критично, просто “хорошо бы иметь”
  3. В моем случае да, но бывают таки продукты, когда необходима даже печать и подпись отчетов. В таком случае выгрузка результатов с картинками была бы просто находкой

(Alexandr D.) #87
  1. У вас нет шагов в методе. Поэтому нет их и в отчёте.
  2. Да, потому что атрибут AllureIssue добавляет subsuite с дефектами. В последней версии был добавлен атрибут AllureLink, используйте его - он просто добавит ссылки в кейс.
  3. Ну здесь я не могу ничего сказать, я с tfs не знаком. Если вы подробнее расскажете, как там всё происходит - подумаем как это реализовать.
  4. Вам ничто не мешает записывать видео и добавлять его в отчёт. Там будет не просто линк, там можно будет его даже смотреть. Собственно, в своём фреймворке я так и делаю:

Но, повторюсь, запись видео и его прикладывание к отчёту лежит на ваших руках, а не на аллюре.


(Lelik) #88
  1. Шаги есть. Решила не вставлять простыню. Приблизительно такое:
[SetUp]
        public void InitializeTest()
{
//Start
            PropertiesCollection.OpenApp();


            AllureLifecycle.Instance.SetGlobalActionInException(() =>
            {
                AllureLifecycle.Instance.AddAttachment("Test is failed here", AllureLifecycle.AttachFormat.ImagePng,
                    PropertiesCollection.Driver.TakeScreenshot().AsByteArray);
            });

};
  1. Это абсолютно то что нужно :slight_smile:
  2. В двух словах не расскажу. Соберусь с силами и опишу процесс.
  3. Ggr - [Selenoid] на сколько я помню под java. Тогда я подумаю как записать видео, а добавить в отчет думаю не сложнее чем присунок.

(Alexandr D.) #89
  1. Это не шаг :slight_smile: Это настройка. Поэтому не отображается)

  2. Нет, Селенойд подо всё. Там где есть селениум - там вы можете прикрутить селенойд.


(Ihor Kokhan) #90

А тесты где у вас бегут? Где браузер запускается? Где вы храните build history?


(Lelik) #91
  1. Тесты запускаются на билд машине.
  2. Там же запускается браузер.
  3. Вот история запуска. Я пропустила многотичием не существенные моменты в логе

Search folder : E:\Bld\A1\128\s
Run settings file : E:\Bld\A1\128\s

Run the tests locally using vstest.console.exe

Starting test execution, please wait…
Information: NUnit Adapter 3.10.0.21: Test execution started
Information: Running all tests in E:\Bld\A1\128\s\MAutoTests\TestOriginal\bin\Debug\TestOriginal.dll
Information: NUnit3TestExecutor converted 148 of 148 NUnit test cases


Results File: E:\Bld\A1\128\s\TestResults\svcTFSBuild_BLDV13 2018-09-28 03_06_35.trx

Publishing test results to test run ‘436403’
Test results remaining: 148. Test run id: 436403

Published Test Run : https://tfs.company.net/tfs/companySW/MTests%20CS/_TestManagement/Runs#runId=436403&_a=runCharts


(Ihor Kokhan) #92

Плагина для TFS походу пока нет. Вот feature request https://github.com/allure-framework/allure2/issues/612
Мне кажется вам все-таки стоит подумать о Jenkins для прогонки ваших тестов


(Ihor Kokhan) #93

Для отображения истории в алюр вам необходимо использоватьодин из следующих CI


(Alexandr D.) #94

Можно прикрутить отображение истории и без CI, делается это легко.
Во всяком случае при запусках из IDE. :slight_smile:

А вот как TFS запускает тесты хз - ждём расширенного ответа от @lelik


(Lelik) #95

@Noksa пыталась несколько раз написать, но коротко не получается, а не коротко - не быстро. И тут нашла статью которая на 90 % описывает мой процесс https://msdnshared.blob.core.windows.net/media/2016/09/Introduction-to-Team-Foundation-Build-2015-vNext.pdf В вашей последней сборке добавлена история. Почему ее нельзя подключить при автозапуске тестов?


(Lelik) #96

Есть такой темплейт https://marketplace.visualstudio.com/items?itemName=Molecula.allure-test-reports , который можно подключить. Но судя по рейтингу и отзывам не рабочий.


(Valentin G ) #97

Надеюсь ничего что через такое долгое время пишу, но есть пара мыслей по некоторым из ваших вопросов, @lelik, по поводу видео, если ваш проект позволит, можно использовать сервис BrowserStack. Он позволяет запускать тесты на большом кол-ве разных устройств, и записывать видео этих прогонов тестов. Ссылку на видео можно приаттачить к отчету к каждому тесту.
Также, не знаю как работает TFS, но думаю что у него есть возможность запускать powershell scripts. Потому могу порекомендовать build.cake. Данная утилита представляет собой скрипт, который (при добавлении этих шагов) полностью сбилдит ваш проект, запустит тесты, создаст отчет. Конфигурация его происходит при помощи обычного c#.


(Пётр Борисёнок) #98

Доброго времени суток! Ребят, пытаюсь настроить Allure2, для проекта на следующем стеке C#+Specflow(2.4.0)+NUnit(3.11.0) возможно, кто-то может подсказать последовательность по степам (с чего начать) @ [HesoHabi]


(Alexandr D.) #99

(Пётр Борисёнок) #100

Установил SpecFlow.Allure видимо столкнулся с проблемой конфигурации allureConfig.json
почему после прохождения сценария не формируется папка аllure-results (путь указал абсолютный) ?

  1. какие аннотации надо вешать на сценарий ?
  2. куда устанавливать сам allure-2.7.0 (надо ли) ?
  3. надо ли ставить NUnit-Allure ?

Сценарий: Проверка контролей формы заявления
Допустим Я авторизовался клиентом
Когда я нажал Создать заявление
Когда я отредактировал поля заявления
Когда я нажал Сохранить
Тогда Я проверил, что отработали соответствующие контроли
| Поле для ввода данных | Значение для ввода или выбора |
| Номер | ‘Номер’: не может быть пустым |


(Максим Таран) #101

NUnit-Allure по идее сам прилетит, если на него завязан specflow.allure. Не помню сейчас.
Дополнительно помечать как-то тегами для specflow не нужно.
Проверьте, на всякий пожарный временную папку пользователя. Тоже там создалась папка?