Rest API + UI automation testing with JavaScript

Добрый день,

Нужен совет по выбору фреймворков, библиотек для автоматизации на JS.
По технически и полетическим причинам приняли решение подымать автоматизацию на JavaScript.
По максимум хочется преследовать класический стиль написания, в котором апи клиент используется в апи тестах и юайных (веб, мобайл)

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

  • юнит тестинг запуск тестов (аналог Junit, PyTest … …), тест сьюит менеджмент
  • механизм для параллельното запуска апи тестов (должно быть что то из коробки легковесное)
  • репортинг результатов в HTML (аналог allure)
  • HTTP client для рест тестов (взять родной http client и нацепить обвеску, или есть готовые библиотеки)
  • UI automation (Protractor + webdriver ? у нас AngularJS)
  • Android automation ?

Зарание спасибо за ответы.

Посмотри в сторону https://codecept.io

Как раз недавно automated-testing.info репостил мой доклад на тему API тестов на JS -

Преза -

Код -

2 лайка

А как у js с масштабированием/параллелизацией?

Тайпскрипт делает поддержку больших проектов намного проще. А паралелизация достигается или распаралеливантем по процессам, или асинхронным тест раннером

1 лайк

@xotabu4 спасибо за ссылку на видео, полезно. Можно немного подробней про асинхронный тест раннер или или паралеливание процессов - снова таки, есть готовые решения, или самописный движек надо подымать?

У mochajs есть много плагинов для паралелизации.
Мы пользуемся - GitHub - danielstjules/mocha.parallel: Run async mocha specs in parallel
Но рекомендовать к сожалению не могу.

Я бы посмотрел что-то еще, например - https://www.npmjs.com/package/mocha-parallel-tests

1 лайк

Для параллелизации по процессам можно использовать модуль Cluster | Node.js v20.1.0 Documentation или проекты на его основе. К примеру сразу нагуглился проект GitHub - parallel-js/parallel.js: Easy multi-core processing utilities for Node., который как и cluster под капотом использует child_process.fork()

Easy Parallel Computing with Javascript

Please note that version 0.2.1 is 2 years old

http://s2.quickmeme.com/img/85/85e2e2786e31b45e41f09132069c7727491e02f78de43e1484b0d1a9bcee0916.jpg

хах да уж, не обратил внимания :slight_smile: все-таки иногда полезно не только код смотреть но и ридми :slight_smile:

Стартонул вчера проект, typescript + jasmine. Первый раз работаю с JS, не привычно немного. Плюс танцы с компиляцией…

Вчера застрял на банальной задачи:

  • создать хттп запрос
  • сделать сам запрос
  • вернуть результат в виде стандартного обьекта Response

пробовал web-request и request. Так и не понял как вернуть в ответ response. Там асинк метод и какой то промис…
Выручайте - киньте красивый пример на гет, плиз.

@xotabu4 ?

Увидел из презентации уже что юзаете реквест джес.
Надо мне просто с асинк кодом разобраться…
Но вдруг рабочий метод скинет кто, буду рад.

Почитайте про промисы и как из резолвить. В вашем случае лучше будет использовать async / await конструкцию.