Печатные публикации

#11: Распределенные виртуальные стенды для тестирования веб-серверных приложений

Анна Сергеева. Распределенные виртуальные стенды для тестирования веб-серверных приложений // Системный администратор. 2014. № 11. С. 78-84.


Узнайте, как эффективно применять средства виртуализации для организации распределенных тестовых стендов. Дается пример тестирования веб-серверных настроек профессионального приложения Alloy Navigator для управления службами технической поддержки клиентов


Опубликовано в разделе "Разработка / Тестирование"

Эта же статья на сайте журнала


Служба технической поддержки как лицо всей компании


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


Бизнес также использует веб-приложения. Например, организует порталы служб технической поддержки своих клиентов (часто встречается англоязычное упоминание этих служб как Service Desk, Help Desk или Technical Support, в данном случае это непринципиально).


И от удобства использования и скорости обработки заявок на таких порталах напрямую уже зависит успех всего бизнеса. Недаром ведь службы технической поддержки считаются лицом компании, и по их работе у клиентов формируется образ всей компании и отношение к ней. Дело серьезное.


Вряд ли требовательные пользователи современных компьютеров, смартфонов и прочих гаджетов готовы к длительному ожиданию загрузки или отображения страниц или к часто возникающим ошибкам в работе сервиса и к необходимости многократных попыток ввода и подтверждения своих данных (например, пользователю портала технической поддержки не с первого раза удается создать и сохранить заявку на обслуживание). И вывод напрашивается сам собой. Среди факторов, формирующих доверие клиентов к подобным сервисам, немаловажными являются быстродействие работы портала и корректность обработки введенных данных.


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


Об одном из подходов к проведению такого вида тестирования и пойдет речь в этой статье.


Структура приложений диктует подход к их тестированию


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


В качестве наглядного примера рассмотрим программный пакет, тестированием которого автор в настоящее время непосредственно занимается.


Alloy Navigator 7 – это профессиональный инструмент для автоматизации бизнес-процессов предприятий, позволяющий управлять ими как внутри организации, так и извне. Одной из сфер применения являются организация и управление ИТ-структурой служб технической поддержки клиентов и пользователей.


Содержит средства управления инцидентами и проблемами, изменениями, уровнем сервиса и знаниями. Поддерживает веб-интерфейсы для клиентского портала самообслуживания и портала доступа технических специалистов [1].


Соответственно при внедрении пакета Alloy Navigator должны быть предусмотрены веб-сервер, SQL-сервер и прочие серверы приложения, а также веб-приложения на стороне клиентов (пользователей) (см. рис. 1).


Рисунок 1. Схемы организации распределенного веб-приложения по нескольким машинам


Рисунок 1. Схемы организации распределенного веб-приложения по нескольким машинам


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


А, значит, и при организации тестирования веб-серверных настроек приложения Alloy Navigator также стоит создавать и использовать распределенные стенды. И, поскольку его структура максимально приближена к реальным практическим реализациям, это значительно повышает достоверность результатов исследований.


Также использование нескольких машин в стенде позволяет экспериментировать с настройками только той машины, где установлен веб-сервер, без воздействия на настройки окружения других частей приложения.


Преимущества тестирования на виртуальных машинах


Автор уже писал ранее о необходимости использования виртуальных машин в тестировании [2], о методах их применения и о преимуществах [3].


Перечислим их кратко.


  • Применение виртуальных машин в тестировании снижает расходы на аппаратные средства.
  • Возможно имитировать окружение, развернутое на оборудовании клиентов, и подстраиваться под их локализацию и кастомизацию.
  • Нет необходимости постоянно избавляться от следов предыдущих ненужных установок и настроек.
  • Грамотно подобранный набор машин с нужными сохраненными состояниями позволяет тестировщикам быстро разворачивать нужное окружение и иметь оперативный доступ к разнообразным вариантам работы с исследуемым ПО.
  • В ходе экспериментов всегда можно вернуться к исходному состоянию и перенастроить все заново.
  • Еще один плюс распределенных тестовых стендов – это возможность конструирования нужных сочетаний среды: можно подключать разные SQL-серверы, разные веб-серверы, разные веб-клиенты.


Постановка задачи


Пришло время поговорить о возможности тестирования крупных программных пакетов на базе распределенных виртуальных стендов. Рассмотрим основные аспекты создания тестового стенда на нескольких виртуальных машинах, соединенных между собой по сети. Какие особенности виртуальных машин нужно учесть? Какие компоненты приложения стоит устанавливать на одни машины, а какие на другие? Как настроить взаимодействие всех этих компонентов?


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


Окончательный выбор остается за читателем. Автор предлагает в статье удобный в исполнении и использовании вариант решения задачи, который имеет свое практическое применение. В качестве примера – создание стенда для тестирования веб-серверных настроек пакета Alloy Navigator.


Структура службы технической поддержки на базе Alloy Navigator 7


Для решения задач организации и управления работой служб технической поддержки, Alloy Navigator 7 содержит следующие компоненты:


  • Self Service Portal — веб-портал самообслуживания конечных пользователей (клиентов). С его помощью клиенты имеют возможность самостоятельно оставлять заявки на оказание техобслуживания, отслеживать ход обработки оставленных заявок и оценивать качество выполнения работы (рис. 2).
  • Technician Web Portal — веб-портал доступа технических специалистов (сотрудников службы техподдержки). Это основной инструмент работы службы. Содержит средства управления инцидентами и проблемами, изменениями в структуре и работе службы, уровнем сервиса и знаниями (рис. 3).
  • Mobile Portal — мобильный портал доступа технических специалистов. С его помощью персонал службы имеет возможность постоянно оставаться на связи, повышая тем самым качество внутренней работы и обслуживания пользователей.
  • Main Console — Windows-консоль для работы технических специалистов службы техподдержки (в рассматриваемом стенде не используется, поскольку полностью дублирует функции веб-компонента Technician Web Portal, а тестирование ориентировано именно на веб-порталы и все, что с ними связано).
  • Administrative Settings — консоль административных настроек приложения. Позволяет выполнять различные административные задачи, такие как конфигурирование бизнес-логики, создание аккаунтов пользователей, настройка интеграции с Active Directory и почтовыми серверами, доступ к журнальным файлам и т. д.
  • Alloy Automation Server - Windows-сервис для запуска автоматических задач и запланированных событий в приложении Alloy Navigator 7 (например, ежедневного извещения специалистов службы техподдержки о назначенных на них и незавершенных заданиях, синхронизации данных, формирования отчетов по расписанию и т. п.).


Alloy Navigator
Рис. 2. Веб-портал клиентского самообслуживания Alloy Navigator 7.


Alloy Navigator
Рис. 3. Веб-портал доступа технических специалистов Alloy Navigator 7.


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


Установка и настройка сервера БД


Начать создание стенда удобнее всего с машины, выделенной под сервер баз данных.


Допускается установка любой из перечиcленных операционных систем, на выбор: Windows XP Professional SP3, Windows Vista, Windows 7, Windows 8, Windows Server 2003 SP2, Windows Server 2003 R2 SP2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012. Поддерживаются как 32-битные, так и 64-битные версии.


Затем устанавливается один из поддерживаемых SQL-серверов:

  • Microsoft SQL Server 2005;
  • Microsoft SQL Server 2005 Express;
  • Microsoft SQL Server 2008;
  • Microsoft SQL Server 2008 Express;
  • Microsoft SQL Server 2008 R2;
  • Microsoft SQL Server 2008 R2 Express;
  • Microsoft SQL Server 2012;
  • Microsoft SQL Server 2012 Express;
  • Microsoft SQL Server 2014;
  • Microsoft SQL Server 2014 Express.

Поддерживаются как 32-битные, так и 64-битные версии.


Например, можно использовать тот MS SQL Server 2008 R2 Express SP2, который входит в комплект поставки Alloy Navigator 7 и является свободно распространяемой версией SQL-сервера, подходящего для работы как настольных, так и веб-, а также небольших серверных приложений.


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


Используя SQL Server Management Studio, подключаемся к SQL-серверу и создаем административный аккаунт. В примере создан аккаунт Admin. (рис. 4) Замечу, что, хотя Alloy Navigator поддерживает все типы аутентификации пользователей, для удобства проведения тестирования здесь следует использовать SQL-аутентификацию (так снимается зависимость от того, под каким Windows-аккаунтом тестировщик зашел в систему на каждой из машин стенда).


Alloy Navigator
Рис. 4. Создание административного аккаунта на SQL-сервере.


Также нужно присвоить этому аккаунту роль securityadmin (рис. 5).


Alloy Navigator
Рис. 5. Присвоение ролей административному аккаунту.


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


Установка и настройка сервера приложения


Далее перейдем к конфигурации машины, выделенной под сервер приложения и его вспомогательных компонентов. Для Alloy Navigator это:


  • Alloy Navigator Administrative Settings (административная консоль приложения);
  • Alloy Automation Server (сервер автоматизации приложения);
  • Database Management Wizard (вспомогательный компонент для создания и настройки рабочих баз данных приложения).


Требования к версии ОС точно такие же, как для машины с SQL-сервером.


После установки компонентов, нужно запустить мастер создания баз данных - Database Management Wizard. С его помощью подключаемся к SQL-серверу из-под аккаунта Admin и создаем новую тестовую базу, при этом разрешаем прописать используемый аккаунт как административный в создаваемой тестовой базе Alloy Navigator. (рис. 6)


Alloy Navigator
Рис. 6. Привязка административного аккаунта к тестовой БД.


Теперь из-под этого аккаунта можно получить доступ ко всем компонентам приложения, конфигурировать их работу, создавать и настраивать новые сервисные и пользовательские аккаунты для приложения.


Установка и настройка веб-серверов


Переходим к созданию основной тестовой машины, выделенной под веб-сервер.


Поскольку акцент в тестировании сделан именно на веб-серверных компонентах, при создании данной машины стоит соблюсти, по крайней мере, минимальные аппаратные требования. В данном случае, это CPU 2 ГГц, RAM 2 ГБ, HDD 2 ГБ.


Далее, нужно определиться с версией ОС. Для полноценной работы веб-серверов рекомендуется инсталлировать серверные компоненты на ОС серверных редакций. Соответственно, и на данной машине тестового стенда следует использовать одну из перечиcленных версий операционных систем: Windows Server 2003 SP2, Windows Server 2003 R2 SP2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012. Поддерживаются как 32-битные, так и 64-битные версии.


Также, для корректной работы веб-сервера требуется установка и настройка служб IIS (Internet Information Services).


В зависимости от версии ОС, требуется своя версия служб IIS:


  • IIS 6.0 для Windows Server 2003 SP2 и Windows Server 2003 R2 SP2 .
  • IIS 7.0 для Windows Server 2008.
  • IIS 7.5 для Windows Server 2008 R2.
  • IIS 8 для Windows Server 2012.


На этом этапе автор рекомендует сделать снимок состояния виртуальной машины. Таким образом, всегда можно вернуться к изначальным настройкам окружения, до установки тестируемых компонентов приложения.


Далее можно перейти к установке самих веб-серверных компонентов тестируемого приложения. В частности, к установке текущей периодической сборки «Developer Stage» (с результатами всех изменений и правок, внесенных в код разработчиками за данный период).


Итак, для Alloy Navigator 7 к числу веб-серверных компонентов относятся:


  • Technician Web Portal (веб-портал доступа работников службы поддержки);
  • Self Service Portal (веб-портал клиентского самообслуживания);
  • Mobile Portal (мобильный портал службы поддержки);
  • Web Configuration Manager (сопутствующий конфигуратор веб-порталов).


По завершению установки этих компонентов, автор рекомендует выполнить еще один снимок состояния машины.


Потому что практика показывает, что тестировщикам бывает удобно иметь быстрый доступ к нескольким ключевым сборкам (например, к 2-3 последним, если нужно сравнивать, как изменилась та или иная функциональность за последнее время).


Затем, запускаем конфигуратор Web Configuration Manager и с его помощью подключаемся к SQL-серверу и тестовой базе из-под созданного ранее аккаунта Admin.


Таким образом, получаем доступ к конфигурированию настроек всех веб-серверов (рис. 7).


Alloy Navigator
Рис. 7. Интерфейс конфигуратора веб-серверных компонентов Alloy Navigator 7.


Web Configuration Manager позволяет выполнять такие настройки веб-серверных компонентов Alloy Navigator 7 как:


  • Подключение к SQL-серверу и базе данных;
  • Конфигурирование веб-порталов в качестве виртуальной директории или веб-сайта;
  • Установка типа аутентификации пользователей (windows, стандартная sql);
  • Настройка сервисных аккаунтов;
  • Манипуляции с IP-адресами, портами, URL-адресами сайтов и т.п.


Машины веб-клиентов


Для машин веб-клиентов нужны установленные современные веб-браузеры.


Так, для веб-порталов Alloy Navigator 7 заявлена поддержка следующих версий веб-браузеров:


  • для клиентского портала самообслуживания: Microsoft Internet Explorer 8.0 и выше, Mozilla Firefox 10 и выше, Google Chrome 16 и выше, Apple Safari 4 и выше;
  • для портала доступа технических специалистов: Microsoft Internet Explorer 10 и выше, Mozilla Firefox 16 и выше, Google Chrome 16 и выше, Apple Safari 5 и выше.


Дополнительно, для корректной работы порталов, в настройках браузеров нужно разрешить обработку JavaScript и Cookies.


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


http://vmasw7.spb.alloy-software.com:81/thd/?un=Admin
http://vmasw7.spb.alloy-software.com:81/hd/?un=Admin
http://vmasw7.spb.alloy-software.com:81/hd/Account/LogOn?ReturnUrl=%2fhd%2f%3fun%3dAdmin&un=Admin
http://vmasw7.spb.alloy-software.com:81/mp/


Создание тестовых аккаунтов


Теперь практически все готово к работе. Осталось только создать в приложении необходимое количество тестовых аккаунтов.


Для этого запускаем компонент Administrative Settings и подключаемся к SQL-серверу и тестовой базе из-под административного аккаунта Admin.


В приложении Alloy Navigator для работы с веб-приложениями предусмотрено несколько типов аккаунтов (рис. 8):


Alloy Navigator
Рис. 8. Создание и настройка набора тестовых аккаунтов для веб-порталов.


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


После создания нужного количества аккаунтов, стенд полностью готов к работе.


Что предстоит тестировщикам дальше


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


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


Разумеется, тестировщики проводят такие работы не вручную, а с использованием специализированных средств и инструментов. Например, широкой популярностью пользуются Apache JMeter, LoadRunner, QALoad и другие аналоги. Но, рассмотрение принципов их работы выходит за рамки этой статьи, посвященной этапу предварительной подготовки тестового стенда.


Заключение


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


За счет использования распределенной структуры (под SQL-сервер выделена одна машина, под веб-сервер другая, клиенты создают удаленные подключения к приложению) стенд позволяет легко конструировать нужные сочетания среды и экспериментировать с ними. Также немаловажным преимуществом такого стенда является максимальное приближение к реальным условиям эксплуатации приложения, а значит, повышается достоверность результатов тестовых испытаний.


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


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


Литература


1 Анна Сергеева. Инструменты тестировщика или с чего начать новичку // Системный администратор. 2014. № 7-8.
2 Анна Сергеева. Виртуальные машины в тестировании. На примере Alloy Navigator // Системный администратор. 2014. № 10.
3 О программном пакете Alloy Navigator - http://www.alloysoftware.ru/