Size: a a a

JavaScript testing

2021 January 04

BO

Boris Osipov in JavaScript testing
Sewa Makhinya
Окажите консультацию, пожалуйста
Мы тут рассматриваем Webdriver.IO в качестве тестового инструмента и оный Webdriver.IO предлагает писать код либо в sync, либо async режимах
> https://webdriver.io/docs/sync-vs-async.html
На практике, в чём разница и какой режим больше подходит для написания тестов?
С моей колокольни, следует выбрать async режим, он выглядит как-то более нативным для JS и наверное это больше понравится разработчикам, когда мы попросим их поддерживать наши тесты
С другой стороны, в sync режиме флоу получается более straight и нет опасности зависнуть с отладкой на пропущенном await; при этом используется fibers , про которое автор сказал "The author of this project recommends you avoid its use if possible"
Есть ли практический повод выбрать sync режим вместо async?
краткий ответ такой. sync в wdio предлагают как входное решение для новичков в js и людей кто писал на других языках. если вам ок асинхронность то нет смысла брать sync.
источник

BO

Boris Osipov in JavaScript testing
минусы async
1) не очень дружелюбное апи
2) документация почти вся написана под sync режим
3) иногда вылезают баги, которых нет в sync режиме. но это оч редко бывает и быстро фиксят.
источник

SM

Sewa Makhinya in JavaScript testing
как они вообще работают, ежели эта ваша fibers является outdated решением на C++, прибитым гвоздями к node v8?
или документация немного устарела?
источник

BO

Boris Osipov in JavaScript testing
вы же понимаете что v8 там в контексте движка V8 а не версии ноды 8?
источник

BO

Boris Osipov in JavaScript testing
или я не понял  суть вопроса.
источник

OI

Oleksii Ihnatiuk in JavaScript testing
Sewa Makhinya
как они вообще работают, ежели эта ваша fibers является outdated решением на C++, прибитым гвоздями к node v8?
или документация немного устарела?
это уже шаг в сторону :) прикиньте риски, ваши пожелания и выберите ;) опросите девов )
источник

SM

Sewa Makhinya in JavaScript testing
Boris Osipov
вы же понимаете что v8 там в контексте движка V8 а не версии ноды 8?
не, мне показалось, что речь о node v8
источник

SK

Sergey Korol in JavaScript testing
Мне больше зашёл sync. Но это наверное потому, что я после Java его использовал.
источник

SM

Sewa Makhinya in JavaScript testing
Oleksii Ihnatiuk
это уже шаг в сторону :) прикиньте риски, ваши пожелания и выберите ;) опросите девов )
в этом вашем JS мире за пару лет всё становится с ног на голову! и в результате - довольно свежее, по меркам Java мира, приложение - содержит в себе кучу взаимосвязанных костылей и его можно только переписать с нуля
прямо такой вечный дух стартапа 🙂
источник

SM

Sewa Makhinya in JavaScript testing
зато интересно и нескучно
источник

SM

Sewa Makhinya in JavaScript testing
с этой точки зрения, мне как-то страшно начинать работу с компонентом 2011 года рождения, это три поколения назад
источник

SM

Sewa Makhinya in JavaScript testing
но, насколько я понимаю, sync режим в wdio вполне себе работает же?
источник

BO

Boris Osipov in JavaScript testing
Sewa Makhinya
в этом вашем JS мире за пару лет всё становится с ног на голову! и в результате - довольно свежее, по меркам Java мира, приложение - содержит в себе кучу взаимосвязанных костылей и его можно только переписать с нуля
прямо такой вечный дух стартапа 🙂
ну это проблемы конкретно вашей команды. писать хреново можно на любом яп и технологии
источник

BO

Boris Osipov in JavaScript testing
Sewa Makhinya
но, насколько я понимаю, sync режим в wdio вполне себе работает же?
да. уже минимум лет 5 работает и не прекратит работу.
источник

SK

Sergey Korol in JavaScript testing
Sewa Makhinya
но, насколько я понимаю, sync режим в wdio вполне себе работает же?
Работает, и вполне возможно еще переживет ваш проект (или ваше участие в нем). Как показывает опыт, сильно расчитывать на то, что разработчики будут поддерживать тесты, - не стоит. Ровно, как и на то, что вы будете сидеть на нем вечно. Да, спорным вопросом остается то, в каком виде кому-то потом перейдет ваше наследие. Но как уже написали выше, испоганить можно что угодно. И sync/async стиль скорее всего окажется далеко не самой страшной "проблемой", по факту.
источник

SM

Sewa Makhinya in JavaScript testing
всем спасибо за комментарии!
источник

S

Sulaiman in JavaScript testing
Коллеги, помогите советом! Как правильно использовать результаты респонса в axios в последующих ассертах  nightwatch в тесте? Как мне понять (код 80-81) когда респонс будет готов для ассертов? Мне приходится пулять api запросы в самое начало тест файла или вставлять explicit waits, чтобы быть «уверенным» что респонс пришёл и записан в переменные.
источник

S

Sulaiman in JavaScript testing
источник

SK

Sergey Korol in JavaScript testing
Axios в связке с sync wdio?
источник

ES

Eugene Stogniy in JavaScript testing
все реализованно за вас
источник