Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР4_АИС_МО417_ИбрагимоваРахимоваСтепановаШакиров

.docx
Скачиваний:
14
Добавлен:
14.09.2022
Размер:
814.35 Кб
Скачать

УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

ФАКУЛЬТЕТ ИНФОРМАТИКИ И РОБОТОТЕХНИКИ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И КИБЕРНЕТИКИ

Отчёт по лабораторной работе №4

«Нагрузочное тестирование веб-приложения. Разработка графического интерфейса

клиентского приложения»

по предмету: «Администрирование информационных систем»

Выполнили:

студенты группы МО-417

Ибрагимова К.Б. Рахимова А.М.

Степанова Д.Д. Шакиров А.Р.

Проверил:

Сазонова Е. Ю.

Уфа 2021

Цель работы:

  1. Провести нагрузочное тестирование разработанного RESTful веб-приложения.

  2. Спроектировать графический интерфейс (GUI) клиентского приложения.

Задание

  1. Ознакомиться с теоретическим материалом по нагрузочному тестированию: понятие нагрузочного тестирования, виды тестов, популярный инструментарий

  2. Провести нагрузочное тестирование веб-приложения

  3. Ознакомиться с теоретическим материалом по проектированию графического интерфейса

  4. Разработать интерфейс приложения в соответствии с основными принципами проектирования интерфейса функциональных возможностей.

Теоретическая часть

Нагрузочное тестирование – процесс тестирования с целью определения производительности программного продукта.

Виды тестов:

  • нагрузочное тестирование – вид тестирования производительности, проводимый с целью оценки поведения компонента или системы при возрастающей нагрузке;

  • объемное тестирование – позволяет получить оценку производительности при увеличении объемов данных в базе данных приложения;

  • тестирование стабильности и – позволяет проверять работоспособность приложения при длительном (многочасовом) тестировании со средним уровнем нагрузки.

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

Для тестирования производительности существует множество утилит и фреймворков, среди наиболее популярных можно отметить: Locust, Apache JMeter, Taurus, Gatling и Яндекс.Танк. Каждый из данных инструментов успешно решает задачу нагрузочного тестирования, тем не менее, существует особенности в настройке, например: необходимость создания сценариев тестирования (необходимо знание определенного языка программирования), наличие или отсутствие графического интерфейса, возможности распределенного тестирования.

Нагрузочное тестирование

Для проведения нагрузочного тестирования RESTful веб-приложения использовался инструмент Locust.

Locust – это открытый Python framework для тестирования производительности. Инструмент имеет графический интерфейс (веб-интерфейс) и возможность распределенного тестирования. Сценарии для тестирования также реализуются на языке Python.

Опишем сценарий для тестирования с помощью Locust в отдельном Python файле.

Рисунок 1. Сценарий для тестирования

В первом нагрузочном тесте запустим только методы, которые реализуют GET и PUT запросы:

Рисунок 2. Процесс тестирования методов GET и PUT

Рисунок 3. Загруженность серверного приложения при тестировании методов GET и PUT

Проведём нагрузочное тестирование для методов, среди которых содержатся POST запросы:

Рисунок 4. Процесс тестирования методов GET, PUT и POST

Рисунок 5. Загруженность серверного приложения при тестировании методов GET, PUT и POST

С добавлением POST запросов загрузка оперативной памяти кратно выросла и начали появляться ошибки.

Разработка графического интерфейса

Создадим карту навигации для разрабатываемого приложения. Неавторизованный пользователь может просматривать только страницы авторизации и регистрации, а авторизованный может видеть все страницы.

Рисунок 3. Навигация сайта

Создадим макеты графического интерфейса пользователя.

Макет страницы авторизации пользователя продемонстрирован на рисунке 4.

Рисунок 4. Макет страницы авторизации

Название поля

Тип

Условия видимости

Условия доступности

Описание

Логин

Текстовый

Виден всем

Доступен всем

Обязательное поле для заполнения

Пароль

Текстовый

Виден всем

Доступен всем

Обязательное поле для заполнения

Макет страницы регистрации пользователя продемонстрирован на рисунке 5.

Рисунок 5. Макет страницы регистрации

Название поля

Тип

Условия видимости

Условия доступности

Описание

Логин

Текстовый

Виден всем

Доступен всем

Обязательное поле для заполнения

Пароль

Текстовый

Виден всем

Доступен всем

Обязательное поле для заполнения

Макет страницы профиля продемонстрирован на рисунке 6.

Рисунок 6. Макет профиля пользователя

Название поля

Тип

Условия видимости

Условия доступности

Описание

Фамилия

Текстовый

Виден авторизованным пользователям

Доступен авторизованным пользователям

Обязательное поле для заполнения

Имя

Текстовый

Виден авторизованным пользователям

Доступен авторизованным пользователям

Обязательное поле для заполнения

Отчество

Текстовый

Виден авторизованным пользователям

Доступен авторизованным пользователям

Обязательное поле для заполнения

Макет страницы сообщений продемонстрирован на рисунке 7.

Рисунок 7. Макет сообщений пользователя

Название поля

Тип

Условия видимости

Условия доступности

Описание

Написание сообщения

Текстовый

Виден текущему авторизованному пользователю

Доступен текущему авторизованному пользователю

Не обязательное поле для заполнения

Макет страницы поиска собеседника продемонстрирован на рисунке 8.

Рисунок 8. Макет поиска собеседника

Название поля

Тип

Условия видимости

Условия доступности

Описание

Найти собеседника по ФИО

Текстовый

Виден текущему авторизованному пользователю

Доступен текущему авторизованному пользователю

Не обязательное поле для заполнения

Начнем разработку интерфейса приложения в соответствии с основными принципами проектирования интерфейса.

Для создания графического интерфейса использовался фреймворк Vue и библиотека Buefy.

Vue — это прогрессивный фреймворк для создания пользовательских интерфейсов. В отличие от фреймворков-монолитов Vue создан пригодным для постепенного внедрения. Его ядро в первую очередь решает задачи уровня представления (view), что упрощает интеграцию с другими библиотеками и существующими проектами. С другой стороны, Vue полностью подходит и для создания сложных одностраничных приложений (SPA, Single-Page Applications), если использовать его совместно с современными инструментами и дополнительными библиотеками.

Buefy – это легкая библиотека адаптивных компонентов пользовательского интерфейса для Vue.js основанная на структуре и дизайне фреймворка Bulma.

Были реализованы следующие страницы веб-приложения:

  • Страница регистрации пользователей

  • Страница авторизации пользователей

  • Профиль пользователя

  • Мессенджер

  • Страница поиска собеседника

На странице авторизации пользователю необходимо ввести логин и пароль для авторизации в обязательные поля. Если в водимых данных была ошибка, страница уведомит пользователя всплывающим сообщением (рис.3). При успешной авторизации происходит переход на страницу профиля.

Рисунок 3. Страница авторизации

На странице регистрации пользователю необходимо ввести логин и пароль для регистрации в обязательные поля. Если логин занят, страница уведомит пользователя всплывающим сообщением (рис.4). При успешной авторизации происходит переход на страницу авторизации.

Рисунок 4. Страница регистрации

На странице профиля при переходе после страницы регистрации пользователю необходимо ввести свои данные в форму. После перехода после страницы авторизации форма будет предзаполнена данными о пользователе, при необходимости их можно отредактировать (рис.5).

Рисунок 5. Страница профиля пользователя

На странице мессенджера показывается список друзей, с которыми можно вести переписку (рис.6).

Рисунок 6. Страница мессенджера

На странице поиска собеседника можно найти собеседника по ФИО или выбрать из рекомендации по своим интересам (рис.7).

Рисунок 7. Страница поиска собеседника

Опишем бизнес-логику приложения. Были выделены и описаны следующие бизнес-процессы:

Авторизация пользователя

  1. Пользователь вводит логин и пароль на странице авторизации.

  2. Происходит проверка правильности пароля.

  3. Если пароль верен, происходит автоматический переход на страницу профиля, иначе появляется уведомление об ошибке пароля.

Регистрация пользователя

  1. Пользователь вводит логин и пароль на странице регистрации.

  2. Происходит проверка уникальности логина.

  3. Если логин уникален, пользователь переходит автоматический переход на страницу авторизации, иначе появляется уведомление о том, что данный логин уже используется другим пользователем.

Заполнение анкеты пользователя

  1. Пользователь заполняет следующие поля анкеты на странице профиля:

  • Фамилия

  • Имя

  • Отчество

  • Пол

  • Дата рождения

  • Город

  • Интересы

  1. После заполнения анкеты пользователь нажимает на кнопку сохранить

  2. После сохранения данных появится уведомление об успешности данной операции

Просмотр сообщений пользователя

  1. Пользователь, находясь на странице сообщений, выбирает друга из списка

  2. Если пользователь продолжает переписку с собеседником, в окне мессенджера отобразится история диалога, иначе мессенджер будет пустым.

Отправка сообщения пользователем

  1. Пользователь, находясь на странице сообщений, выбирает друга из списка

  2. Вводит сообщение в поле для набора сообщения

  3. Нажимает на кнопку отправить

  4. Сообщение отправляется собеседнику и отображается в окне мессенджера с датой и временем отправки

Поиск нового собеседника

  1. Пользователь, если ему необходимо найти собеседника по фио, находясь на странице поиска собеседника, заполняет строку поиска

  2. Нажимает на кнопку найти

  3. В окне результатов поиска отображаются найденные пользователи по критерию пользователя

  4. Если пользователь ищет собеседника по интересам, находясь на странице поиска собеседника, выбирает нового собеседника из окна рекомендации по интересам

  5. Нажимает на кнопку добавить в друзья

Выход пользователя из профиля

  1. Авторизованный пользователь нажимает на кнопку «Выход», которая находится в главном меню приложения

  2. Происходит автоматический переход на страницу авторизации

Вывод

В ходе выполнения данной лабораторной работы было проведено нагрузочное тестирование разработанного RESTful веб-приложения и спроектирован графический интерфейс (GUI) клиентского приложения.