Лабораторные работы Цифровая кафедра ФЭА 4 семестр / Введение в тестирование веб-приложений / cktestwebfifth
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Цифровая Кафедра
ПРАКТИЧЕСКАЯ РАБОТА №5
Разработка сценария автоматизированного тестирования в Selenium IDE
Студенты гр. 4404 |
|
Комарницкий М. С. Коншин М. В. Кудрявцев С. А. |
Преподаватель |
|
Турнецкая Е.Л. |
Санкт-Петербург
2026
Цель.
Получение практических навыков по автоматизированному тестированию с помощью Selenium IDE.
Задачи.
1. Установить браузерное расширение Selenium IDE.
2. Выполнить упражнения для знакомства с возможностями Selenium IDE
при тестировании клиентской части веб-приложений.
3. Провести тестирование интерфейса самостоятельно выбранного веб-при-
ложения.
4. Зафиксировать результат обучения в отчете
Выполнять практическую работы мы будем в браузере Firefox.
Выполнение базовых упражнений.
В ходе выполнения работы было установлено браузерное расширение Selenium IDE.
Скриншот 1. Установленное расширение Selenium
Для ознакомления со средой Selenium IDE было проведено тестирование статической веб-страницы учебного приложения test-selector-tree.netlify.app. В соответствии с заданием, для тестирования был выбран второй элемент коллекции (Каштан), а не первый. Был записан тестовый сценарий, в котором осуществлялся клик по элементу, а затем проводилась проверка наличия соответствующего текста с помощью команды verify text.
Скриншот 2. Запись тестового сценария в среде Selenium IDE
Изменение параметра поиска.
В процессе отладки были изменены параметры поиска веб-элемента: стандартный локатор был заменен на “css=#chestnut”, предлагаемого средой Selenium IDE. Тест был запущен повторно и завершился успешно.
Скриншот 3. Успешное выполнение теста с измененным локатором элемента
Негативное тестирование.
Также было проведено негативное тестирование. Для этого в команде verify text ожидаемое значение было умышленно изменено на некорректное. Запуск сценария ожидаемо привел к ошибке проверки, что зафиксировано в журнале логирования.
Скриншот 4. Выполнение негативного тестирования
Основное задание. Тестирование самостоятельно выбранного веб-приложения.
Предметная область: ВКонтакте (URL: https://vk.com/) — российская социальная сеть, предназначенная для общения, обмена медиаконтентом и создания сообществ. Для тестирования выбрана публичная стартовая страница авторизации.
Техники и методы тестирования:
Метод «черного ящика» (тестирование без знания внутренней структуры кода).
Дымовое тестирование (проверка основной работоспособности критически важных ссылок).
Тестирование графического интерфейса (GUI).
Тестовый сценарий:
Действие пользователя |
Ожидаемый результат |
Открыть веб-приложение https://vk.com/ в браузере |
Приложение (стартовая страница) успешно открыто |
Проверить наличие заголовка страницы (Title) |
В заголовке отображается текст «Добро пожаловать ВКонтакте» |
Нажать на ссылку «Правила» в подвале сайта |
Осуществлен переход на новую страницу |
Проверить наличие текста на открывшейся странице |
Отображается текст с правилами пользования сайтом |
Нажать на логотип «ВКонтакте» в левом верхнем углу |
Осуществлен возврат на стартовую страницу |
Тестирование веб-приложения ВКонтакте было успешно проведено.
Скриншот 5. Логи выполненного теста
Скриншот 6. Сообщение об успешном выполнении теста
Вывод.
В ходе выполнения практической работы были успешно освоены базовые принципы автоматизированного тестирования клиентской части веб-приложений с использованием среды Selenium IDE. Было установлено соответствующее браузерное расширение и изучен его инструментарий.
На этапе ознакомления выполнено тестирование статического учебного веб-ресурса. В процессе отладки были отработаны навыки изменения локаторов (параметров поиска веб-элементов), а также проведено негативное тестирование, позволившее на практике оценить реакцию системы на заведомо некорректные ожидаемые значения (ошибка проверки была успешно зафиксирована в логах).
Основным этапом работы стала разработка собственного тестового сценария для динамического веб-приложения (стартовой страницы социальной сети ВКонтакте). Был применен метод «черного ящика» и элементы дымового тестирования. Сценарий включил в себя проверку наличия ключевых заголовков и навигацию по ссылкам. В результате сгенерирован работоспособный автоматизированный тест, код которого выгружен и прикреплен в приложении к отчету. Трудности, возникавшие при привязке к динамическим элементам интерфейса, были успешно решены путем ручного подбора надежных локаторов. Цель работы достигнута в полном объеме.
Список использованных источников.
1. Руководство по Selenium IDE URL: https://www.selenium.dev/selenium-ide/docs/en/api/commands (дата обращения: 25.05.2026)
2. Chrome DevTools: основные инструменты и полезные функции URL: https://skillbox.ru/media/code/chto-mozhno-delat-v-chrome-devtools-5-poleznykh-funktsiy-dlya-nachinayushchikh/ (дата обращения: 25.05.2026)
3. Selenium IDE. URL: https://www.selenium.dev/selenium-ide/ (дата обращения: 25.05.2026)
ПРИЛОЖЕНИЕ.
# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class TestVktest():
def setup_method(self, method):
self.driver = webdriver.Firefox()
self.vars = {}
def teardown_method(self, method):
self.driver.quit()
def wait_for_window(self, timeout = 2):
time.sleep(round(timeout / 1000))
wh_now = self.driver.window_handles
wh_then = self.vars["window_handles"]
if len(wh_now) > len(wh_then):
return set(wh_now).difference(set(wh_then)).pop()
def test_vktest(self):
self.driver.get("https://vk.com/")
self.driver.set_window_size(693, 693)
assert self.driver.title == "ВКонтакте | Добро пожаловать"
self.vars["window_handles"] = self.driver.window_handles
self.driver.find_element(By.LINK_TEXT, "Правила").click()
self.vars["win1251"] = self.wait_for_window(2000)
self.driver.switch_to.window(self.vars["win1251"])
assert self.driver.find_element(By.CSS_SELECTOR, ".wikiSubHeader:nth-child(2)").text == "Правила пользования Сайтом ВКонтакте"
self.driver.find_element(By.CSS_SELECTOR, ".Logo__root--gvE34").click()
