31 подписчик

До автоматизма. Авторизация

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

Когда я проходила собеседования на должность тестировщика, протестировать форму авторизации меня просили не один раз. Но зачем делать руками то, что можно автоматизировать?

Приступим. Код написан на Java с использованием движка Selenium. Туториалов, как настроить среду, в интернете множество, поэтому не буду на этом останавливаться. Переходим сразу к коду.

Для начала импортируем необходимые нам классы

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

Классы библиотеки org.openqa.selenium нам понадобятся для работы с браузером, org.json и java.io - для работы с некоторыми файлами, о которых чуть позже.

В тестировании формы логина вроде бы ничего сложного: передаем различные пары логина и пароля и оцениваем реакцию системы. В первоначальном варианте моего теста эти значения были прописаны в коде, но потом я задала себе логичный вопрос: а если нао протестировать с другими данными? Открывать редактор, изменять, заново собирать проект... А если этим тестом захочет воспользоваться кто-то, не знакомый с программированием? А если надо будет запустить в другой тестовой среде?

Решение очевидно: хранить данные во внешнем файле. Подумав, я решила остановиться на формате json, т.к. он отлично подходит для хранения пар типа "ключ - значение".

В каталоге своего проекта я создала файл config.json. Пока что его содержание выглядит так:

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

В нем я буду хранить адрес тестового стенда - в переменной environment - и пару "логин - пароль". Теперь надо его распарсить. Для этого воспользуюсь классом JSONObject

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

Готово! Наш файл распарсился в структуру, подобную Map, и теперь я могу обращаться к нему, чтобы получить значение по имени ключа.

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

И вот так будет выглядеть метод login, который принимает 3 параметра: логин, пароль и среду.

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

При помощи метода findElements мы находим нужные нам поля ввода. Более подробно о нем можно почитать в многочисленных референсах по Selenium

Вот и все! Теперь проверка формы авторизации куда проще и быстрее.

При чем тут Мория? Думаю, это очевидно
При чем тут Мория? Думаю, это очевидно