// 
//     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.
//


== 使用 NetBeans IDE 中的负载生成器

测试应用程序的性能时，在有典型负载的情况下进行测试是很有用的。如果在开发环境中运行应用程序，则可能很难做到这一点。要模拟在有负载的情况下运行的应用程序，一种方法是使用负载生成器脚本。本文档概述了 IDE 提供的负载生成器支持。

IDE 依赖于集成第三方工具，而自身不提供负载生成器运行时。NetBeans IDE 支持用于重放负载测试脚本的 Apache JMeter 负载测试工具（link:http://jakarta.apache.org/jmeter[+主页+]）。要在 IDE 中使用 JMeter 工具，需要先从更新中心下载所需的插件。



image::images/netbeans-stamp-80-74-73.png[title="此页上的内容适用于 NetBeans IDE 7.2、7.3、7.4 和 8.0"]



== 入门指南


=== 先决条件

本文档假定您具备以下技术的一些基本知识或编程经验：

* Java 编程
* NetBeans IDE


=== 本教程所需要的软件

在学习本教程之前，您需要在计算机上安装以下软件：

|===
|软件或资源 |要求的版本 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |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 
|===

*注：*

* 性能分析工具与 NetBeans IDE 捆绑在一起，无需进行特定的设置，即可开始对应用程序进行性能分析。
* 要添加对 JMeter 负载测试工具的支持，请使用插件管理器从更新中心下载 JMeter 工具包和负载生成器插件。


== 安装 JMeter 插件

您可以轻松地添加对 JMeter 负载生成器的支持，方法是从 NetBeans 更新中心下载并安装 *JMeter 工具包*和*负载生成器插件*。

要下载插件，请执行以下操作：

1. 从主菜单中选择 "Tools"（工具）> "Plugins"（插件）以打开插件管理器。
2. 单击 "Available Plugins"（可用插件）标签，然后选中 JMeter 工具包和负载生成器插件的复选框。单击 "Install"（安装）。
image::images/generator-plugin.png[title="插件管理器中的负载生成器插件"]
3. 逐步执行安装程序，以下载并安装插件，然后单击 "Finish"（完成）。单击 "Close"（关闭），以关闭插件管理器。

安装了插件之后，会将 "Load Testing Scripts"（负载测试脚本）类别添加到新建文件向导中。


== 使用 JMeter 负载测试脚本

JMeter 插件支持可与 IDE 的性能分析工具进行紧密集成。通过 JMeter 插件，可以从 IDE 中轻松创建并运行 JMeter 负载测试脚本。

要使用负载生成器脚本，可以为特定项目创建一个脚本，然后根据项目负载的类型修改该脚本，该负载可能放在运行应用程序的服务器上。运行脚本时，该脚本会在服务器上放置负载，以模拟在典型条件下运行的应用程序的行为。此后，可以测试应用程序的性能，得到的测试结果可能与在典型条件下运行的应用程序的性能更接近。


=== 创建新的负载测试脚本

下载并安装了插件之后，将在新建文件向导中创建一个新类别。使用新建文件向导，可以在项目中创建负载脚本文件。

要创建新的负载测试脚本，请执行以下操作：

1. 在项目窗口中，右键单击项目节点，然后选择 "New"（新建）> "Other"（其他）。
2. 在 "Categories"（类别）窗格中，展开 "Load Testing Scripts"（负载测试脚本），选择 "JMeter Plans"（JMeter 计划），然后在 "File Types"（文件类型）窗格中，选择 "New JMeter Plan"（新建 JMeter 计划）。单击 "Next"（下一步）。
3. 键入脚本的名称，然后单击 "Finish"（完成）。

创建新脚本时，IDE 会将该脚本放在 "Projects"（项目）窗口中 "Load Generator Scripts"（负载生成器脚本）节点的下方。在 "Files"（文件）窗口中，可以看到 IDE 将脚本保存在  ``jmeter``  目录中。如果已在 IDE 外部创建负载测试脚本，则可创建  ``jmeter``  目录，然后将脚本添加到该目录中，以便从 IDE 中运行该脚本。

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


=== 编辑负载测试脚本

通过 JMeter 外部编辑器，可以根据应用程序的要求修改脚本。创建负载测试脚本或向项目中添加脚本后，可以调用外部编辑器，方法是：在 "Projects"（项目）窗口中右键单击脚本，然后选择 *External Edit*（外部编辑）。

有关编辑 JMeter 测试脚本的详细信息，请参见 link:http://jakarta.apache.org/jmeter/usermanual/index.html[+JMeter 用户手册+]。

image::images/jmeter-externaledit.png[title="项目结构中的 JMeter 负载测试脚本"] 


=== 启动负载测试脚本

负载测试脚本可采用以下方式启动：

* *在独立模式下*

在 *Services*（服务）窗口中，右键单击 "Load Generators"（负载生成器）节点，然后选择 *"JMeter" > "Start"（启动）*。执行此操作后，将打开一个浏览对话框，您可以在其中指定要运行的脚本。

image::images/jmeter-services.png[]
* *在 "Select Profiling Task"（选择性能分析任务）窗口中*

对 Web 应用程序进行性能分析时，可以在 "Select Profiling Task"（选择性能分析任务）窗口中指定要运行的负载测试脚本。选定的脚本正好在浏览器窗口打开前启动。

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


=== 停止和重新启动负载测试脚本

您可以在*输出*窗口或*服务*窗口中停止和重新启动负载测试脚本。

加载脚本之后，将在 *"Output"（输出）窗口*中打开 "JMeter" 标签。该窗口中会显示负载生成器的当前状态。"Output"（输出）窗口的左旁注中提供了一些用于启动、停止或重新启动脚本的控件。

image::images/jmeter-output.png[title="显示负载生成器状态的 "Output"（输出）窗口"]

负载生成器的当前状态还显示在 *"Services"（服务）窗口*中。要停止和重新启动脚本，可以选择 "JMeter" 节点下方的某个节点，然后从弹出式菜单中选择所需项。

image::images/jmeter-services2.png[title="显示负载生成器状态的 "Services"（服务）窗口"]




== 其他资源

此基本概述介绍了如何在 IDE 中使用 JMeter 负载测试脚本。有关为应用程序开发负载测试脚本的信息，请参见以下资源：

* 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[+Web 应用程序开发简介+]
* link:profiler-intro.html[+分析 Java 应用程序简介+]
* link:../../trails/java-ee.html[+Java EE 和 Java Web 学习资源+]
