SE_labs
.pdfИнженерия программного обеспечения
Скачать пакет jakarta-jmeter-2.4.tar.gz можно с официального сай-
та http://jakarta.apache.org/site/downloads/downloads_jmeter.cgi или с сер-
вера kid.stu. Распаковываем скачанный пакет и запускаем программу при помощи скрипта из папки bin:
$ ~/jakarta-jmeter-2.4$ ./bin/jmeter.sh
Интерфейс Jmeter приведен на рисунке 4.2.
Рисунок 4.2 — Интерфейс программы Jmeter
3. Тестирование веб-приложения.
Для начала необходимо в тестовый план добавить элемент Thread Group. В Thread Group указывается количество пользователей, которые отправляют запросы на сервер, за какой период времени они отправляют запросы и количество запросов, которые отправляет каждый пользователь (рисунок 4.3). Для того чтобы добавить Thread Group необходимо на Test Plan кликнуть правой кнопкой мыши и выбрать пункт Add --> ThreadGroup.
51
Методические указания к выполнению лабораторных работ
Рисунок 4.3 — Thread Group со значениями по-умолчанию
В поле Number of threads указываем количество пользователей, которое будет обращаться на сервер. В следующем поле указывает задержки между началом каждого потока. Например, если ввести RumpUp period 5 секунд, JMeter завершит запуск всех ваших пользователей к концу 5 секунд. Так, если у нас есть 5 пользователей и 5 секунд период, то задержка между началом нового потока будет 1 секунда (5 пользователей / 5 секунд = 1 пользователь в секунду). Если установить значение в 0, то JMeter сразу же запустит все потоки. Поле Loop Count указывает, сколько раз будет повторяться тест.
После определения полей необходимо указать задания, которые будут выполнять виртуальные пользователи. В Test Plan добавляем
HTTP requests со значениями по-умолчанию Add->ConfigElement- >HTTPRequestDefaults(рисунок 4.4).
52
Инженерия программного обеспечения
Рисунок 4.4 — HTTP Request Defaults
Далее добавляем HTTP Request (Add --> Sampler --> HTTP Request) и в поле HTTP Request Path пишем путь к странице, на которую будет отправлен запрос типа get. В поле Server name указывать адрес сервера нет необходимости из-за того, что мы в странице по умолчанию указали наш сервер (рисунок 4.5).
53
Методические указания к выполнению лабораторных работ
Рисунок 4.5 — HTTP Request главной страницы
Таким же способом добавляем второй HTTP Request, только в поле Path указываем путь к другой странице.
Последним шагом, который необходимо сделать, чтобы начать тестирование, является добавление слушателей (Listener), которые будут обрабатывать всю информацию, полученную от HTTP Request.
Для этого добавим Graph Results (Add --> Listener --> Graph Results) и View Results Tree (Add --> Listener --> View Results Tree) (рисунок 4.6 и 4.7).
Теперь система готова к тестированию. Осталось только нажать старт и дождаться завершения выполнения всех потоков. После чего в наших слушателях можно будет посмотреть результаты тестирования. На рисунке 4.8 приведен пример теста, на котором отчетливо видно, что система не справилась с нагрузкой, которую мы на неё отправили. Можно детально посмотреть содержимое каждого пакета, а также пример html страницы, которую получили в ответ на наш запрос. Если же ответ получили отрицательный, то можно определить, по какой причине.
54
Инженерия программного обеспечения
Рисунок 4.6 — Graph Results
Рисунок 4.7 — View Results Tree
55
Методические указания к выполнению лабораторных работ
Рисунок 4.8 — Результаты тестирования Следует отметить, что тестируемое приложение желательно рас-
полагать на другой машине, поскольку JMeter очень требовательный к ресурсам и результаты тестирования могут быть не корректными.
4.4 Задания для самостоятельной работы
1.Изучить возможности организации database testing (тестирование работы с БД) с использованием JMeter.
2.Освоить практические аспекты интеграции JMeter с JUnit.
4.5Содержимое отчета
–результаты тестирования в виде графиков;
–результаты тестирования в виде дерева;
–написать причины, по которым система не выдержала нагрузки (ссылаясь на результаты тестирования).
4.6Контрольные вопросы
1.Тестирование в ЖЦ программного продукта. Виды тестирования и соответствующие инструменты автоматизации.
2.Назначение и принцип организации нагрузочного тестирования. Инструменты нагрузочного тестирования.
3.Какие показатели выступают результатом нагрузочного тестирования.
4.Объясните термин «кривая деградации».
5.Планирование сценария нагрузочного тестирования в JMeter.
56
Инженерия программного обеспечения
Рекомендованная литература
1.Бек К. Экстремальное программирование: разработка через тестирование. Библиотека программиста. – СПб.: Питер, 2003. – 224 с.: ил.
2.Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология разработки программного обеспечения: Учебное пособие. – М.: ИД
«ФОРУМ»: ИНФРА-М, 2008. – 400 с.: ил.
3.Котляров В.П., Коликова Т.В. Основы тестирования программного обеспечения: Учебное пособие. – М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2006. – 285 с.: ил. (Серия «Основы информационных технологий»).
4.Макгрегор Дж., Сайкс Д. Тестирование объектноориентированного программного обеспечения. Практическое пособие: Пер. с англ. – К.: ООО «ТИД «ДС», 2002. – 432 с.
5.Управление проектами разработки ПО. Учебно-методическое пособие по дисциплине «Гибкие технологии разработки программного обеспечения» / Сост. Шопырин Д.Г. – Санкт-Петербург, Санкт-Петербургский государственный университет информационных технологий, механики и оптики, 2007. – 131 с.
6.Фаулер М. Архитектура корпоративных программных приложений: Пер. с англ. – М.: Издательский дом «Вильямс», 2006. – 544 с.: ил.
7.Vincent Massol, Ted Husted. JUnit In Action. Manning. – Special Sales Department, 2004. – P. 386.
8.Git – The Fast Version Control System [Электронный ресурс]. –
Режим доступа: URL: http://git-scm.com. – Название с экрана.
9.JMeter – Apache JMeter [Электронный ресурс]. – Режим доступа: URL: http://jakarta.apache.org/jmeter. – Название с экрана.
10.JUnit.org Resources for Test Driven Development [Электронный ре-
сурс]. – Режим доступа: URL http://www.junit.org. – Название с экрана.
11.Redmine – Overview [Электронный ресурс]. – Режим доступа: URL: http://www.redmine.org. – Название с экрана.
12.Redprojects – инструменты, помогающие работать [Электронный ресурс]. – Режим доступа: URL: http://www.redmine.net.ua. – На-
звание с экрана.
13.Welcome to Apache Maven [Электронный ресурс]. – Режим доступа: URL http://maven.apache.org. – Название с экрана.
57