Size: a a a

JavaScript testing

2021 September 14

AN

Alex Neo in JavaScript testing
всем привет
попробовал потыкал я playwright
написал тест который открывает гитхаб и проверяет тайтл сайта
сделал 6 спек по 4 теста в каждой спеке (тесты все одинаковые)
подключен репортер - allure-playwright
хеадлесс в 3 потока - больше 1 минуты
хеадед в 3 потока - 28 сек 🧐
если без аллюра - хеадлес 3 потока 28 сек
test('should open page and check title 1', async ({ page }) => {
 await page.goto('https://github.com/');
 expect(await page.title()).toBe(
   'GitHub: Where the world builds software · GitHub'
 );
});
аллюр действительно может так тормозить тесты? более чем в два раза
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Все может, уточни еще тут - https://t.me/allure_ru
источник

OK

Oleksandr Khotemskyi in JavaScript testing
или надо копать исходники, профайлер настроить
источник

AN

Alex Neo in JavaScript testing
спасибо
источник

AV

Alex Vershinin in JavaScript testing
У playwright есть вывод подробного лога со временем, может помочь понять)
источник

O

Olga in JavaScript testing
короче нет, в чем-то другом блин дело... :( В логах видно, как работает функция. Нашла контейнер. Потом от него ищет дочерние элементы. Возвращается 10 раз пустой массив. Ну и потом возвращает этот пустой массив.
Если бы предположение было правильным, то в течение 10 раз массив нашелся бы, просто потом по ошибке вернулся пустой.
источник

AN

Alex Neo in JavaScript testing
"проблема" не в allure а в настройке screenshot: 'only-on-failure'
если скриншоты выключить - все нормально
если screenshot: 'only-on-failure' - время выполнения теста в headless увеличивается в три раза
pw:api => browserContext.close started +1ms
pw:api => browserContext.close started +0ms
pw:api <= browserContext.close succeeded +2s       «— вот здесь добавляется лишние 1,5 секунды на каждом тесте
pw:api <= browserContext.close succeeded +4ms
источник

AN

Alex Neo in JavaScript testing
скорее всего в повседневной жизни это не будет заметно когда каждый тест по времени выполнения будет 10-20 секунд или больше.
но все равно получаем на каждом тесте по 1,5-2 лишних секунды. при 500 тестах это 1000 секунд = 16 минут 🤔
источник

AV

Alex Vershinin in JavaScript testing
По идее тесты в статусе passed не должны аффектиться
источник

AN

Alex Neo in JavaScript testing
¯\_(ツ)_/¯
источник

AV

Alex Vershinin in JavaScript testing
Но вообще я тоже в это втыкался, помню шарил контекст между тестами и он у меня повисал сильно надолго со скринами, вроде так было) Пришлось переписывать)
источник

OK

Oleksandr Khotemskyi in JavaScript testing
там в аллюра помоему синхронная запись на диск
источник

AV

Alex Vershinin in JavaScript testing
А не, чекнул ишью, там видео было) Но тоже долго)
источник

Ri

Rustam is not a func... in JavaScript testing
Привет) @xotabu4 после твоего доклада про параллелизация в js, не смотрел эту тему. Может знаешь jest начал юзать worker threads или все еще запускает овер дофига дочерных процессов для параллелизации тестов?
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Давненько с джест не работал, возможно изменили
источник

OK

Oleksandr Khotemskyi in JavaScript testing
Оно было в экспериментальном режиме, были нюансы с прекондишинами
источник

Ri

Rustam is not a func... in JavaScript testing
ок, понял. Спасибо
источник

P

Pavel in JavaScript testing
на заглавной странице гитхаба очень тяжелый webgl, headless его рендерит без гпу.
источник

А

Ангелина in JavaScript testing
Ребята, всем привет😊у меня есть вопрос. Работаю с webdriver io, андроид и десктоп тесты в браузерсеке проходят отлично, но есть проблемы с ios, они падают по неведомой причине. Может кто-то сталкивался? кажется, что уже все перепробовала и перепроверила
источник

OK

Oleksandr Khotemskyi in JavaScript testing
надо сделать причину ведомой и потом починить
источник