Прокачайся в код-ревью: для первых 50 участников — курс бесплатный

время чтения: 3 мин

Что нужно знать инженерам по автоматизации тестирования о JavaScript?

Почему JavaScript так популярен среди инженеров по автоматизации тестирования, в чем особенности языка и какие преимущества его инструментов, рассказал руководитель группы тестирования программного обеспечения Дмитрий Прокопук.

руководитель группы тестирования программного обеспечения Дмитрий Прокопук

Что необходимо знать о JavaScript

— У любого языка программирования, который используется для автоматизации тестирования, есть свои особенности. JavaScript — не исключение, — считает Дмитрий.

  • JavaScript — это динамически типизированный язык. При динамической типизации вы можете опустить определение типов данных для переменных. Это выполняется автоматически во время выполнения программы, в отличие от статической типизации, когда типы данных для переменных должны быть определены до выполнения программы. При динамической типизации код пишется быстрее, но в будущем вы можете пропустить ошибки.
  • JavaScript — это многопарадигмальный язык. Он поддерживает как функциональный, так и объектно-ориентированный стили программирования. Как часть автоматизированного тестирования, мультипарадигма JavaScript дает гибкость в построении архитектуры проекта, возможность легко и быстро писать тесты.
  • JavaScript обладает самой большой пакетной инфраструктурой среди всех языков программирования. Например, если вам нужно работать с PDF, XLS или другими файлами в рамках тестов, в JavaScript уже есть пакет, который поможет протестировать любой формат файла.

Преимущества инструментов автоматизации JavaScript

Нет инициализации Selenium WebDriver

— Selenium WebDriver — это инструмент для автоматизации действий веб-браузера, — объясняет Дмитрий, — Чтобы работать с Selenium WebDriver, его необходимо инициализировать, то есть объявить. Однако объявить нужно правильно. Различные подходы используются в виде шаблонов проектирования.

В инструментах JavaScript вам не нужно инициализировать Selenium WebDriver и выбирать, какой подход использовать. Разработчики инструментов учли предыдущий опыт и внедрили инициализацию драйвера. На других языках нужно самим объявлять Selenium WebDriver. Во-первых, это требует времени. А во-вторых, начинающему инженеру по автоматизации может быть трудно сделать это правильно.

Широкий выбор

— Это особенно хорошо видно на примере автоматизации пользовательского интерфейса, где используются 3 подхода инструментов JavaScript:

  1. На основе Selenium. Классический подход к автоматизации веб-приложений, когда вы взаимодействуете с браузером (Chrome, Firefox) через Selenium WebDriver.
  2. На основе протокола DevTools. Это новый подход, при котором взаимодействие с браузером происходит не через Selenium WebDriver, а через DevTool.
  3. На основе JavaScript. При таком подходе вы взаимодействуете с браузером с помощью функциональности, реализованной на JavaScript.

Технические возможности

— Автоматизация не стоит на месте, — напоминает Дмитрий, — А с развитием технологий разработки пользовательского интерфейса возникла необходимость работать с вкладкой браузера “Network” для выполнения качественных проверок производительности приложения. В JavaScript есть возможность работать с сетевой вкладкой браузера без подключения дополнительных библиотек (это время на поиск, изучение подключения), чего нет в инструментах Java, C#, Python.

Низкий порог входа

— Чтобы начать писать автотесты на JavaScript, достаточно:

  • Иметь возможность выполнять поиск по локаторам. Локатор — это строка, которая позволяет найти элемент (кнопку, поле ввода) на странице веб-приложения или веб-сайта.
  • Знать основы JavaScript. Это включает в себя типы данных, условные выражения, работу с функциями, массивами и циклами.
  • Знать page object. Page object — это базовый подход к организации проекта автоматизации (тестовый фреймворк).
8 полезных источников для изучения JavaScript

JavaScript — это язык интерфейса

— Если у вас есть веб-проект, то разработчики обязательно будут знать JavaScript, — убежден Дмитрий, — И помогут организовать инфраструктуру тестового фреймворка, провести review, написать тесты.

Инфраструктура для развития

— Среда JavaScript — самая быстрорастущая из всех. Поэтому, с высокой степенью вероятности, при выполнении заданий вы сможете найти и использовать готовый пакет. В JavaScript их уже более 1,3 миллиона.

Где используются инструменты JavaScript

  • В автоматизации веб-приложений. По сути, это эмуляция действий пользователя в браузере. Например, вы можете автоматически протестировать форму входа в приложение и другие более сложные случаи.
  • В автоматизации сервисов. Во всех приложениях есть сервисы, реализующие базовую логику приложения, а инструменты JavaScript позволяют быстро начать автоматизацию сервисов.
  • В автоматизации настольных приложений, написанных с использованием электронной технологии. Самыми известными приложениями, написанными на Electron, являются Skype и Visual Studio Code. В JavaScript есть инструменты для тестирования визуальной части и самого приложения.
  • В автоматизации мобильных приложений. Будет разрабатываться все больше и больше мобильных приложений, поэтому мобильная автоматизация — один из трендов. С помощью инструментов JavaScript вы можете автоматизировать приложения как для Android, так и для iOS.

Благодарим за предоставленную тему портал training.epam.com.