// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//


== Использование генератора нагрузки в IDE NetBeans

Во время тестирования производительности приложения может быть полезно провести тесты при типичной нагрузке. Это может оказаться трудной задачей, если приложение выполняется в среде разработки. Одним из способов имитации выполнения приложения под нагрузкой является использование сценария генератора нагрузки. В этом документе представлен обзор поддержки генератора нагрузки в среде IDE.

Вместо предоставления собственного генератора нагрузок в среде IDE делается расчёт на интеграцию средств сторонних производителей. IDE NetBeans поддерживает средства нагрузочного тестирования JMeter Apache (link:http://jakarta.apache.org/jmeter[+домашняя страница+]) для воспроизведения сценариев тестирования. Для использования средства JMeter в среде IDE требуется сначала загрузить необходимые подключаемые модули из центра обновлений.



image::images/netbeans-stamp-80-74-73.png[title="Содержимое этой страницы применимо к IDE NetBeans 7.2, 7.3, 7.4 и 8.0"]



== Начало работы


=== Предпосылки

Предполагается, что читатель обладает базовыми знаниями по следующим технологиям или опытом программирования с их использованием:

* Программирование на Java
* IDE NetBeans


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

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

|===
|Программное обеспечение или материал |Требуемая версия 

|link:https://netbeans.org/downloads/index.html[+IDE NetBeans+] |7.2, 7.3, 7.4, 8.0 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Комплект для разработчика на языке Java (JDK)+] |Версия 7 или 8 

|Пакет JMeter и подключаемые модули генератора нагрузки, |загруженные из центра обновлений NetBeans 

|сервер приложений GlassFish |3.x, 4.x 
|===

*Примечания.*

* Инструмент профилирования включен в комплект с IDE NetBeans и для начала профилирования приложения не требуется дополнительная настройка.
* Чтобы добавить поддержку средства нагрузочного тестирования JMeter, загрузите подключаемые модули JMeter Kit и Load Generator из Центра обновлений с помощью диспетчера подключаемых модулей.


== Установка подключаемых модулей JMeter

Чтобы добавить поддержку генератора нагрузки JMeter, достаточно загрузить и установить подключаемые модули *JMeter Kit* и *генератора нагрузки* из центра обновлений NetBeans.

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

1. Выберите "Tools" > "Plugins" (Сервис > Подключаемые модули) в главном меню, чтобы открыть диспетчер подключаемых модулей.
2. Перейдите на вкладку 'Доступные подключаемые модули' и установите флажки для подключаемых модулей JMeter Kit и Load Generator. Нажмите кнопку "Установить".
image::images/generator-plugin.png[title="Подключаемый модуль генератора загрузки в диспетчере подключаемых модулей"]


. Дождитесь, пока программа установки загрузит и установит подключаемые модули, затем нажмите кнопку "Готово". Нажмите кнопку "Закрыть, чтобы выйти из диспетчера подключаемых модулей.

По завершении установки подключаемых модулей в мастер создания файла будет добавлена категория "Load Testing Scripts" (Сценарии нагрузочного тестирования).


== Работа со сценарием нагрузочного тестирования JMeter

Поддержка подключаемых модулей JMeter тесно интегрирована со средством профилирования среды IDE. Подключаемые модули JMeter упрощают создание и выполнение сценариев нагрузочного тестирования JMeter в среде IDE.

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


=== Создание нового сценария нагрузочного тестирования

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

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

1. Щелкните правой кнопкой мыши узел проекта в окне "Проекты" и выберите "New > Other"(Создать > Другое).
2. На панели "Categories" (Категории) разверните узел "Load Testing Scripts" (Сценарии нагрузочного тестирования), выберите "JMeter Plans" (Планы JMeter), затем выберите "New JMeter Plan" (Создать план JMeter) на панели "File Types" (Типы файлов). Нажмите кнопку "Далее".
3. Введите название сценария, затем нажмите кнопку "Finish" (Готово).

При создании нового сценария в среде IDE он помещается в узел "Load Generator Scripts" (Сценарии генератора нагрузки) в окне "Projects" (Проекты). В окне "Files" (Файлы) можно увидеть, что сценарий сохранен в каталоге IDE  ``jmeter`` . При наличии готового сценария нагрузочного тестирования, созданного вне среды IDE, можно создать каталог  ``jmeter``  и добавить в него этот сценарий, чтобы его можно было выполнить в среде IDE.

image::images/new-plan.png[] 


=== Изменение сценария нагрузочного тестирования

Внешний редактор JMeter позволяет изменять сценарий в соответствии с требованиями конкретного приложения. После создания сценария тестирования нагрузки или добавления сценария к проекту, вы можете вызвать внешний редактор, щелкнув правой кнопкой мыши сценарий в окне 'Проекты' и выбрав *Внешнее редактирование*.

Дополнительную информация о редактировании сценариев тестирования JMeter можно найти вlink:http://jakarta.apache.org/jmeter/usermanual/index.html[+Руководстве пользователя JMeter+].

image::images/jmeter-externaledit.png[title="Сценарий тестирования загрузки JMeter в структуре проекта"] 


=== Запуск сценария нагрузочного тестирования

Существуют следующие способы запуска сценария нагрузочного тестирования.

* *В автономном режиме *

В окне *Службы* щелкните правой кнопкой мыши узел 'Генератор нагрузки' и выберите *JMeter > 'Запустить'*. Отобразится диалоговое окно, в котором можно указать сценарий для выполнения.

image::images/jmeter-services.png[]
* *В окне "Select Profiling Task" (Выбрать задачу для профилирования)*

При профилировании веб-приложения можно указать сценарий нагрузочного тестирования для выполнения в окне "Select Profiling Task" (Выбрать задачу для профилирования). Выбранный сценарий будет запущен непосредственно перед открытием окна браузера.

image::images/jmeter-profilewindow72.png[]


=== Остановка и повторный запуск сценария нагрузочного тестирования

Сценарий нагрузочного тестирования можно остановить и снова запустить либо в *окне вывода*, либо в *окне "Services" (Службы)*.

Вкладка JMeter открывается в *окне вывода* после загрузки сценария. В окне отображается текущее состояние генератора нагрузки. В левой части окна вывода находятся элементы управления для запуска, остановки или перезапуска сценария.

image::images/jmeter-output.png[title="В окне &quot;Вывод&quot; отображается состояние генератора нагрузки"]

Текущее состояние генератора нагрузки также отображается в *окне "Services" (Службы)*. Чтобы остановить и снова запустить сценарий, выберите узел, расположенный под узлом JMeter, затем выберите соответствующий пункт во всплывающем меню.

image::images/jmeter-services2.png[title="В окне &quot;Службы&quot; отображается состояние генератора нагрузки"]




== Дополнительные материалы

В этом основном обзоре рассматриваются принципы использования сценария нагрузочного тестирования JMeter в среде IDE. Сведения о разработке сценария нагрузочного тестирования для конкретных приложений доступны в следующих материалах:

* link:http://jakarta.apache.org/jmeter[+Средство нагрузочного тестирования Apache JMeter+]
* link:http://jakarta.apache.org/jmeter/usermanual/index.html[+Руководство пользователя JMeter+]
link:/about/contact_form.html?to=3&subject=Feedback:%20Using%20a%20Load%20Generator[+Отправить отзыв по этому учебному курсу+]



== Дополнительные сведения

* link:../web/quickstart-webapps.html[+Введение в разработку веб-приложений+]
* link:profiler-intro.html[+Введение в профилирование приложений, написанных на Java+]
* link:../../trails/java-ee.html[+Учебная карта по Java EE и Java Web+]
