Мир стремительно уходит от монолита к микросервисам. Многие стартапы или даже огромные компании разрабатывают свою новую систему в Микросервисах. По мере роста спроса на разработчиков микросервисов растет спрос на тестировщиков автоматизации API.
Поскольку в настоящее время javascript становится все более и более популярным, растет спрос на тестировщиков автоматизации API, которые знают javascript/typescript. Посмотрите, как растет популярность javascript:
ссылка: https://madnight.github.io/githut/#/pull_requests/2021/1
Для javascript доступно множество популярных библиотек тестирования:
- Шутка
- Мокко
- Жасмин
- Ава
Тогда зачем шутить:
Основываясь на моем опыте тестирования API с использованием различных библиотек тестирования javascript, я думаю, что ниже приведены ключевые преимущества, которыми обладает jest, а другие нет.
- Популярный
- Настройка из коробки
- Моментальное тестирование
- Интеллектуальное распараллеливание
- Гибкое утверждение
Давайте посмотрим в деталях
Популярный
Ключевое решение при выборе библиотеки — посмотреть, насколько она популярна среди сообщества. Вот данные о том, насколько популярна шутка:
иди проверь сам: https://www.npmtrends.com/jest-vs-mocha-vs-jasmine-vs-ava
Настройка из коробки
Настройка Jest — это кусок пирога. Это очень просто и интуитивно понятно, попробуйте сами: https://jestjs.io/docs/getting-started
Также Jest включает в себя все популярные пакеты, необходимые для автоматизации тестирования:
- Для утверждения — ожидайте. Если вы используете мокко, вам нужно установить chai отдельно.
- Конфигурация файла Env: вы можете использовать это, чтобы легко настроить файлы перед запуском тестов.
- Вы можете легко издеваться над любой библиотекой запросов, используя шутку mock. В случае других бегунов вам нужно установить mocking lib отдельно.
Моментальное тестирование
Никакая другая структура в javascript не имеет этой функции тестирования моментальных снимков.
Для тестирования API нам нужно подтвердить множество объектов json, таких как объект заголовка, объект тела ответа. Когда существует 100 различных пар запросов и ответов. Нам нужно постоянно обновлять JSON-файл ожиданий всякий раз, когда происходит изменение схемы ответа. Этого можно избежать с помощью шутки.
Снапшоты создаются автоматически:
ожидать(данные).toMatchSnapshot();
И для обновления моментального снимка есть простой способ обновления с помощью команд CLI, тогда как в других тестовых средах вам нужно найти соответствующий файл json и обновить его.
Распараллеливание
Jest запускает тестовые наборы параллельно по умолчанию и работает с умом. Таким образом, вам не нужно ничего указывать в конфигурации, чтобы указать, сколько экземпляров нужно запускать параллельно. Единственное, что нужно убедиться, это то, что тесты не используют совместное состояние.
Утверждение
В Jest встроена эта замечательная ассертивная lib, и она предоставляет различные преимущества по сравнению с другими.
Например: expect.extend(matchers).
скажем, вы тестируете служебную библиотеку чисел и часто утверждаете, что числа появляются в определенных диапазонах других чисел. Вы можете абстрагироваться от этого в сопоставитель toBeWithinRange
. "Ссылка на сайт".
Документация
И последнее, но не менее важное: документация. У нее потрясающая документация и api по сравнению со всеми другими библиотеками тестирования в javascript, что действительно важно для любых потребностей разработки.
Теперь у нас есть все основания начать писать наши интеграционные тесты в шутку. 🚀
Что дальше? Вот серия для настройки платформы Jest Automation:
1. https://vinodmuralidharan.medium.com/api-test-automation-framework-jest-understanding-ab4fbb471c2c
2. https://vinodmuralidharan.medium.com/api-test-automation-framework-jest-setup-12226b41e267