Ваша покорная слуга делает первые робкие шаги в автоматизации веб-тестирования. Прошу сильно не ругать и тапками не кидаться.
Когда я проходила собеседования на должность тестировщика, протестировать форму авторизации меня просили не один раз. Но зачем делать руками то, что можно автоматизировать?
Приступим. Код написан на Java с использованием движка Selenium. Туториалов, как настроить среду, в интернете множество, поэтому не буду на этом останавливаться. Переходим сразу к коду.
Для начала импортируем необходимые нам классы
Классы библиотеки org.openqa.selenium нам понадобятся для работы с браузером, org.json и java.io - для работы с некоторыми файлами, о которых чуть позже.
В тестировании формы логина вроде бы ничего сложного: передаем различные пары логина и пароля и оцениваем реакцию системы. В первоначальном варианте моего теста эти значения были прописаны в коде, но потом я задала себе логичный вопрос: а если нао протестировать с другими данными? Открывать редактор, изменять, заново собирать проект... А если этим тестом захочет воспользоваться кто-то, не знакомый с программированием? А если надо будет запустить в другой тестовой среде?
Решение очевидно: хранить данные во внешнем файле. Подумав, я решила остановиться на формате json, т.к. он отлично подходит для хранения пар типа "ключ - значение".
В каталоге своего проекта я создала файл config.json. Пока что его содержание выглядит так:
В нем я буду хранить адрес тестового стенда - в переменной environment - и пару "логин - пароль". Теперь надо его распарсить. Для этого воспользуюсь классом JSONObject
Готово! Наш файл распарсился в структуру, подобную Map, и теперь я могу обращаться к нему, чтобы получить значение по имени ключа.
И вот так будет выглядеть метод login, который принимает 3 параметра: логин, пароль и среду.
При помощи метода findElements мы находим нужные нам поля ввода. Более подробно о нем можно почитать в многочисленных референсах по Selenium
Вот и все! Теперь проверка формы авторизации куда проще и быстрее.