# JMeter官方文档：2. 创建测试计划





[《JMeter官方文档--翻译计划》](/2017/08/24/jmeter-translation-plans/) [原文地址](http://jmeter.apache.org/usermanual/build-test-plan.html)

## 2.构建测试计划
----

测试计划描述了当程序运行起来时JMeter会执行的一系列步骤，一个完整的测试计划会由以几部分组成，包括一个或多个线程组、逻辑控制器、示例生成控制器、侦听器、定时器、断言、和配置元素组成。

### 2.1 添加和删除元素
----
我们可以通过下面两种方式添加[元素到测试计划](http://jmeter.apache.org/usermanual/test_plan.html)，一种是右键点击树上的元素，从“__添加__”列表中选择一个新元素；或者也可以通过选择菜单栏“文件”--“__合并__”或“__打开__”选项从文件中加载元素。

确保元素是被选中的，右键单击元素，选择“__删除__”选项可以将元素移除.

### 2.2 加载和保存元素
----
通过文件加载元素，右键选择向其中添加加载元素的树元素，选择“合并”选项选择元素保存的文件，JMeter会将元素合并到树中去。

右键一个元素并选择“选中部分保存为…”选项以保存树元素。JMeter保存树元素时会连带的将它下面的子节点一起保存。通过这种方式，在后面的运用中你可以成段的或者单独的保存元素。

    默认情况下，工作台不会被自动保存到测试计划，但是它能够通过在工作台元素上勾选“Save Workbean”去保存.


### 2.3 配置树元素
----
测试树中的任何元素在JMeter的右手框架中都被表现为控制器。这些控制器允许你为特定的测试元素配置行为。具体有哪些行为可以配置取决于是何种类型的元素。

    测试树本身可以被测试树周围的拖放控件操作.

### 2.4 保存测试计划
----
尽管没有硬性要求，我们还是建议你在执行测试计划前先保存测试计划到文件。保存一个测试计划可以从文件按钮中选择“保存测试计划”或者“保存测试计划为…”（如果你是用的最新发布版本的JMeter，就不需要在保存之前先选中测试计划）

    JMeter允许你保存整个测试计划树或者计划树里面的一部分。如果只是保存特定分支的计划树里面的元素，
    可以从开始的分支里面选择测试计划树元素，右键选择“选中部分保存为…”菜单选项。或者也可以先选
    择正确的测试计划元素然后通过编辑按钮选择“选中部分保存为…” 选项。

### 2.5 运行一个测试计划
----

运行测试计划，从“运行”菜单选项中选择“启动”（```Control + R```）按钮。当JMeter运行的时候，它会在菜单栏下面的左手边显示一个绿色的小盒子的形状。你也可以通过检查“运行”菜单选项去检查测试计划是否运行起来，如果“启动”是禁用的，并且 “停止” 是启用的，这样JMeter就正在运行你的测试计划。（或者至少在我看来是这样的）
绿色边框左下角的数字就是活动线程除以总共线程，这种计算方式只是适用在本地运行测试测试；不包含任何在远程服务器上启动的线程当使用的是 __客户端-服务器__ 模式的时候。

    这里所描述的GUI模式只是适用于调试测试计划，如果运行真实的load test，请用非GUI模式。

### 2.6 停止测试
----
在菜单中有两种停止的测试命令可供选择：

* 停止（```Control + .```）-尽可能立即停止线程。很多采样器会被中断这意味着那些活跃的采样器也会被立即终止。停止命令会检查在默认设置的5s超时的时间内是不是所有的线程都终止了。[这个默认时间是可以通过JMeter（ __jmeterengine.threadstop.wait__）的属性设置的] 如果有线程没有终止，这时会有一条提示信息显示出来。停止命令会重试，如果还是失败，有必要通过直接退出JMeter去清理。

* 关闭（```Control + ，```）-请求在当前任何工作的末尾去结束线程，不会中途干扰活跃的采样器。 这种情况下关闭对话框会一直保持活跃直到所有的线程都终止。
如果关闭花费太长时间。关掉对话框选择 __运行/停止__ ， 或者按下```Control + . ```.

这儿是没有菜单的当运行non-GUI模式的时候，并且JMeter对像```Control + . ```这样的快捷键不会做出反应。 因此JMeter non-GUI模式会在特定端口来监控这些命令。（默认端口是4445，参见JMeter的 __jmeterengine.nongui.port__ 属性）。 Jmeter是支持自动切换端口的当默认端口被占用的时候（举个例子被其他Jmeter的实例占用）。 在这种情况下，Jmeter会尝试更大数值的端口号，直到达到Jmeter 属性 __jmeterengine.nongui.maxport__ 的最大值4455。如果最大端口小于或者等于端口号， 端口扫描就不会发生。
选择的端口会在控制窗口显示。

目前支持的命令有:

* Shutdown-平滑缓慢的关闭
* StopTestNow-迅速关闭

这些命令可以通过 __shutdown[.cmd|.sh]__ 或者 __stoptest [.cmd|.sh]__ 脚本相应的发送。这些脚本可以在Jmeter的bin目录找到。这些命令只能在脚本运行在相同主机上的时候接收。


### 2.7 错误报告
----
Jmeter会报告警告和错误以及测试本身的信息到 __Jmeter.log__ 文件中。JMeter会显示__Jmeter.log__文件中的警告/错误数量在窗口底部三角形警告图标的旁边。点击警告图标 __Jmeter.og__ 文件就会在JMeter的窗体中显示。偶尔JMeter有些错误也是不能捕捉记录到， 这种情况多数会出现在命令行. 如果测试没有按照你的预期表现出来，请检查是不是有错误从日志文件抛出来。（示例:在调用函数的时候可能有syntax的错误）

一些简单的错误(例如:Http 404-file not found)就不会经常在日志文件中报告出来。相应的会作为属性保存在采样器结果中。这些采样器结果显示的状态可以在不同的监听器中看到。




原始封面

![课程图片](https://images.unsplash.com/photo-1524568000-769b511e73de?w=300)


