Как стать автором
Обновить

Комментарии 12

сколько времени в человеко-часах заняла поиск оптимальноо решения и реализация от начала работы до финального результата?
Привет! По времени получилось порядка 20 часов — с разработкой и экспериментами.
В рабочее время или ночь?
По разному получилось — сначала поисследовал вечерами в нерабочее время (благо сейчас самоизоляция). Когда понял, что реально сделать, поговорил с ребятами и доделал уже в рабочее время.

Cypress тоже записывает видео упавших тестов. Насколько я понял, тоже через Хромовый ScreencastFrame: https://github.com/cypress-io/cypress/blob/f5284c66050690b7d768e241dd5177cf5553c5b7/packages/server/lib/modes/run.js#L503


Им проще — они напрямую работают с браузером, без прослойки в виде puppeteer / webdriver

спасибо!
А зачем так сложно, если есть Selenoid?
Он может просто писать видеопоток из коробки. Дальше если хочется можно отрезать его в духе за 10 секунд до падения или по каким-то иным триггерам и уже отправлять куда-то где его будут смотреть.
Спасибо, за ответ. У нас есть нюанс — перейти на запуск тестов в контейнерах проблематично, так как для нашего софта, требуется установленный Windows клиент. Этим клиентом мы управляем через Microsoft UI Automation. Прошлый раз, когда я поверял — Microsoft UI Automation отказывался корректно работать в windows контейнере.

Отправляется видео у нас в Allure. Про отрезать «за 10 секунд до падения» — отличная идея.

Тесты могут жить на windows, а Selenoid на отдельной машине с Linux, на которой запускаются контейнеры с браузером.

Спасибо за ответ. У нас браузер должен жить рядом с клиентским приложением на одной машинке (клиент = связка браузера и клиентского приложения). Разнести их не получится.

Решения в которых есть готовая, проверенная, стабильно работающая функциональность из коробки — безусловно лучше собственных костылей с одной стороны. С другой стороны — мы стараемся максимально ограничить как количество сторонних компонент, так и нашу инфраструктуру CI.

То есть, если от решения X нам требуется 0.1% функциональности, которую мы можем сделать самим и избежать зависимости — то стараемся делать сами)
IvanFilippov, а можешь поделиться опытом использования Allure в C#?
AOP только через PostSharp, а без него из доступных решений находил для себя unickq/allure-nunit с аннотированием всех методов и/или добавление в тесты врапперов
Привет! Извини за поздний ответ. С Allure не было особых проблем — настраивал по ссылкам
Allure Documentation docs.qameta.io/allure
Allure CSharp github.com/allure-framework/allure-csharp

Мы используем Specflow — основные шаги, чтобы заработал Allure
1. Install SpecFlow.Allure Nuget for the test project
2. Rename allureConfigTemplate.json to allureConfig.json
3. Add allureConfig.json to output (Right-click on file → Properties → Copy to output directory = Copy if newer)

— видео аттачим в Specflow хуке AfterScenario — примерно так

[AfterScenario]
public void AfterScenario()
{
    ...
    if (ScenarioContext.TestError != null)
    {
        var videoPath = Path.Combine(currentPath, $"{scenarioTitle}{id}.avi");
        try
        {
            AllureLifecycle.Instance.AddAttachment($"{videoPath}", "video");
        }
        catch
        {
            Console.WriteLine($"Cannot save video to {videoPath}!");
        }
    }
    ...
}

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации