Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

e2e тесты на JS

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Всем привет!

Поделитесь плз опытом, кто что использует.
Мы остановились на NightWatch JS, но пока в начале пути.

Так же заинтересовал TestCafe, заманчиво что без Selenium, но стремно ибо Selenium уже оброс кучей всяких полезностей.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

-

codecept.io

Сейчас запускаем тесты через Puppeteer, но есть возможность использовать и WebdriverIO т.к. инструмент Backend Agnostic. Из плюсов читабельное апи не зависимо от бекенда.

Півтори роки використання TestCafe, досвід тільки позитивний (є попередній досвід використання Selenium). Єдина проблема — API у TestCafe не сумісне із Mocha. А Mocha використовується для інших тестів у проекті + репорти. Тому для нового проекта використовую Puppeteer. Pupeteer тоже ок, але для нього вже потрібний напільнік, тоді як у TestCafe багато працює out-of-the-box.

Спасибо, полезный отзыв. На какие-то камни натыкались?

Знову ж, тільки ще, що API *самих тестів* трохи незвичний: замість describe — fixture, cmd line трохи не очікуваний, expect() від TestCafe працює тільки із об’єктами TestCafe — довільні значенн (з бази, наприклад) туди не завжди можна підставити.

А от команди для роботи із сторінкою, селектори, кліки і т.д. дуже інтуїтивні, і працюють як очікується. Багато зручностей, наприклад, сорсмапи в тестах TestCafe відразу вміє, зручно дивитися, де саме валиться тест.

Ще, команда на гітхабі оперативно на тікети відповідає.

А как с поддержкой браузеров? Нет проблем?

Не можу сказати, що багато тестили в інших браузерах. В якості теста пробував запускати у FF, тести запускалися. Але регулярно тільки в Хромі тести запускалися.

Круть. Спасибо. Возможно попробуем.
Большое количество тестов поддерживаете? 1000 есть?
Как у него с распределением рана тестов по разным машинам типа селениум грида?

1000 не набралося ще, кілька сотень.

Прототип якийсь є:
github.com/...​ress/testcafe/issues/2436

Але наскільки воно робоче — хз, використовувати не доводилося.

Попробуйте Protractor или WebdriverIO. Protractor хоть и заточен больше под Angular, и имеет для работы с ним свои плюшки, тем не менее подойдет и для React. И он также работает в связке с TypeScript

Мне больше всего заходит протрактор. NightWatch не пробовал, но слышал противоречия.

За протрактор тоже немало противоречий слышал )
Ну и это все-таки для Ангуляров больше, а у нас Реакт

Одной командой отключается ожидалка загрузки ангуляра и протрактор больше не для ангуляра, а для чего хочешь. Я не говорю, что он лучше всех, но мне нравится больше )

Та понятно что тот же селениум кликает те же селекторы )
Просто насчет протрактора отзывы неоднозначны.

Кликает драйвер, а протрактор добавляет свой функционал. Достаточно не маленький. Вспомните неоднозначные отзывы? А то я пока не слыхал таких )

Могу кинуть пару ссылок, но не вижу смысла, т.к. сам не сталкивался. За что купил за то и продаю )
Основное на что ругаются — тяжело въехать на первых порах. Типа сложное api, пока начнет получатся пройдет какое то время.

апи реально не сложное. ЧТо вообще там может быть сложного ) click он и в Африке click. Когда миксуется асинхронность с контрол флоу — тогда могут появиться проблемы. Но нужно всего лишь понимать как это работает. Как работает асинхронность и контрол флоу. Потом подружить их не сложно. А сейчас контрол флоу вообще выпилили. Осталась только асинхронность. Но писать на js и не понимать этого просто неправильно )

От Selenium пока отказываться не планируем. NightWatch JS как раз его использует.
Просто читал много хвалебных отзывов о TestCafe, стало интересно, вдруг кто юзает.

Web Driver API(aka Selenium) как раз на такое ругается. вы на чем пробовали писать е2е, что оно ивенты напрямую диспатчило?

Если прям нужен JS, то можете посмотреть на WebdriverIO, он так же не плохо работает в связке с TypeScript. Отказываться от Seleniuma в e2e тестах — плохая идея.

Тупиковый путь использовать что-либо не на базе селениум.
Объем работы проделанный за годы колоссален, и по поддержке различных фич с ним рядом не сможет стать никто.

Может оказаться, что очередной «убийца селениума» просто не может в переключением между табами/окнами, и поддержка не планиуется, лол (Привет, cypress).

В общем, поем мы оду храбрым.

Підписатись на коментарі