Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Есть ли подобие TestNG фреймворка для JS

execution
parallel
java
testng
javascript
Теги: #<Tag:0x00007fedc7b45868> #<Tag:0x00007fedc7b456b0> #<Tag:0x00007fedc7b452c8> #<Tag:0x00007fedc7b45138> #<Tag:0x00007fedc7b44f58>

(Ярослав Рудь) #1

Начинаю разбираться в автоматизации на JS, сейчас стоит выбор тестового фреймворка, подскажите если ли какое то подобие TestNG только для JS?
По большей части можно и без альтернативы, основная задача запускать тесты в несколько потоков\один тест много раз, в testNG это позволяет добавить параметры threadPoolSize = 6, invocationCount = 6 в аннотацию @Test, как это можно сделать\реализовать на JS?


(Dmitry Astanin) #2

Смотри в сторону mocha


(asolntsev) #3

Мы используем Karma.


(Dmitri Komarist) #4

Много тестов в паралель:

  1. mocha + mocha.parallel - рабочее решение но прийдется пожертвовать многими фичами mocha поскольку mocha.parallel самописное решение с кучей недороботок
  2. ava - паралельные и последовательные тесты из коробки (минус нету BDD, но есть кастомная либа ava-spec которая добавит BDD только без вложеностей по describe)
  3. jest - есть возможность запускать тесты паралельно через it.concurrent но работает это довольно глючно и с ошибками по логике работы по before и after (и пока фиксить эти проблемы они не собираются)

Один тест много раз паралельно:
это для нагрузочного тестирования?
Если да, то тут без особых конкурентов у JS:

  1. k6.io - все и сразу из коробки + нормальная документация
  2. artillery.io - для легкого старта тестирования нагрузки (не большой проект с неочень высокими требованиями к нагрузочному тестированию)

Если бы я начинал проект с нуля то наверное выбрал бы: AVA и k6
ПС. Если нужно запускать ГУИ тесты в паралель то еще есть проект TestCafe


(Ярослав Рудь) #5

Спасибо за подробную инфу.


(Oleksandr Khotemskyi) #6

Привет, спасибо за ответ.

А подскажи по AVA - сколько тредов максимально паралелил? Как пригружает машинку на которой запускается? Сложно ли кастомизировать его?

Я поглядываю на него, но еще не использовал.


(Dmitri Komarist) #7

AVA я тоже не использовал как рабочий инструмент, просто просматривал как вариант когда хотели спрыгнуть с mocha

Пофакту у него все тесты написаные в одном файле выполняются паралельно (это его дефолтное поведение), поэтому их все нужно писать как независимые. Однако у него есть возможность заставить их работать последовательно.

Насчет нагрузки на машину не скажу - не проверял

По скорости выполнения - медление чем mocha+mocha.parallel (есть значительная задержка на старте тестов 2-3 сек. Если в наборе есть медленный тест то это не очень накладно и заметно, но если все тесты набора пробегают 1-2 сек то эта задержка критична)

По кастомизации не знаю - поскольку проверял на нем самые простые тесты чтобы понять как работает в целом и не углублялся в детали.

Из того что не понравилось - это before и after которые действуют только на весь набор тестов и нельзя их приминять отдельно для вложеных дескрайбов. Также нормальный шаринг контекста before и after между it у меня не получился, ходя судя по доке он есть.