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

Rest API + UI automation testing with JavaScript

uiautomator
framework
infrastructure
reporting
javascript
mobile
restapi
Теги: #<Tag:0x00007fedbbb21690> #<Tag:0x00007fedbbb21500> #<Tag:0x00007fedbbb212a8> #<Tag:0x00007fedbbb21118> #<Tag:0x00007fedbbb20e70> #<Tag:0x00007fedbbb20c90> #<Tag:0x00007fedbbb20ad8>

(Gena) #1

Добрый день,

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

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

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

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


(Ray Romanov) #2

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


(Oleksandr Khotemskyi) #3

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

Преза -
https://github.com/Xotabu4/demo/blob/master/API_Testing_Typescript.pptx

Код -


(vmaximv) #4

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


(Oleksandr Khotemskyi) #5

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


(Gena) #6

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


(Oleksandr Khotemskyi) #7

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

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


(Sergei Chipiga) #8

Для параллелизации по процессам можно использовать модуль https://nodejs.org/api/cluster.html или проекты на его основе. К примеру сразу нагуглился проект https://github.com/parallel-js/parallel.js, который как и cluster под капотом использует child_process.fork()


(Oleksandr Khotemskyi) #9

Easy Parallel Computing with Javascript

Please note that version 0.2.1 is 2 years old

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


(Sergei Chipiga) #10

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


(Gena) #12

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

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

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

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

@xotabu4 ?

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


(Oleksii Ihnatiuk) #13

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