使用 JMeter 就一定需要创建一个测试计划(Test Plan),每一个测试都需要在测试计划中描述。
本篇文章接第一篇JMeter -- Getting Started.
2. Building a Test Plan
测试计划描述JMeter运行时将执行的一系列步骤。一个完整的测试计划将由一个或多个线程组( Thread Groups)、逻辑控制器(logic controllers)、示例生成控制器(sample generating controllers)、监听器(listeners)、计时器(timers)、断言(assertions)和配置元素(configuration elements)组成。
问题:一个测试计划有多个线程组的目的是什么,可以满足哪些场景?
注意:这里所说的各种 controllers 都是下文将要讲到的元素(Elements)之一。
2.1 添加和删除元素(Adding and Removing Elements)
向测试计划添加元素可以通过右键单击树中的一个元素并从“添加(add)”列表中选择一个新元素来完成。或者,可以通过选择“合并(merge)”或“打开(open)”选项从文件中加载和添加元素。
要删除一个元素,请确保选中了该元素,右键单击该元素,并选择“删除(remove)”选项。
2.2加载和保存元素(Loading and Saving Elements)
要从文件中加载元素,右键单击要向其添加已加载元素的现有树元素,并选择“merge”选项。选择保存元素的文件。JMeter将把元素合并到树中。
要保存树元素,右键单击一个元素并选择“save Selection As…(保存测试计划为...)”选项。JMeter将保存选中的元素,以及它下面的所有子元素。通过这种方式,您可以保存测试树片段和单个元素供以后使用。
2.3配置树元素(Configuring Tree Elements)
测试树中的任何元素都将在JMeter的右边框架中显示控件。这些控件允许您配置特定测试元素的行为。可以为元素配置什么取决于元素的类型。
The Test Tree itself can be manipulated by dragging and dropping components around the test tree.
可以通过在测试树周围拖放组件来操纵测试树本身。
2.4保存测试计划(Saving the Test Plan)
虽然不是必需的,但是我们建议您在运行测试计划之前将它保存到一个文件中。要保存测试计划,请从文件菜单中选择“save”或“save Test Plan As…”(对于最新版本,不再需要首先选择测试计划元素)。
JMeter allows you to save the entire Test Plan tree or only a portion of it. To save only the elements located in a particular "branch" of the Test Plan tree, select the Test Plan element in the tree from which to start the "branch", and then click your right mouse button to access the "Save Selection As …" menu item. Alternatively, select the appropriate Test Plan element and then select "Save Selection As …" from the Edit menu.
JMeter允许您保存整个测试计划树,或者只保存其中的一部分。要仅保存位于测试计划树的特定“分支”中的元素,请选择要从其中开始“分支”的测试计划元素,然后单击鼠标右键访问“save Selection As…”菜单项。或者,选择适当的测试计划元素,然后从编辑菜单中选择“Save Selection As…”。
2.5 执行测试计划(Running a Test Plan)
要运行测试计划,请从“run(运行)”菜单项中选择“Start(启动)”(Control + r)。当JMeter运行时,它在菜单栏下的区域右边显示一个绿色的小框。你也可以检查“运行”菜单。如果“Start”被禁用,“Stop”被启用,那么JMeter正在运行您的测试计划(或者,至少,它认为是这样)。
绿色框左边的数字是活动线程数/线程总数。这些只适用于本地运行的测试;它们不包括使用客户机-服务器模式时在远程系统上启动的任何线程。
只有在调试测试计划时才应该使用这里描述的GUI模式。要运行真正的负载测试,请使用非GUI(NON-GUI)模式。
2.6 Stopping a Test
菜单上有两种停止命令:
Stop(Control+.)-如果可能,立即停止线程。许多采样器都是可中断的,这意味着可以尽早终止活动样本。stop命令将检查所有线程是否在默认超时(即5000 ms = 5秒)内停止。[可以使用JMeter属性jmeterengine.threadstop.wait来更改这一点。如果线程没有停止,则显示一条消息。停止命令可以重试,但如果失败,则需要退出JMeter来清理。
Shutdown(Control +,)——请求线程在当前工作结束时停止。不会中断任何活动样本。模式关闭对话框将保持活动状态,直到所有线程都停止。
如果关闭时间太长。关闭关闭对话框并选择Run/Stop,或仅按Control + .。
在非gui模式下运行JMeter时,没有菜单,JMeter不响应诸如Control +.等按键。因此JMeter非gui模式将侦听特定端口上的命令(默认为4445,参见JMeter属性jmeterengine.nongui.port)。如果使用的是缺省端口(例如另一个JMeter实例),JMeter支持自动选择备用端口。在这种情况下,JMeter将尝试下一个更高的端口,直到它到达默认为4455的JMeter属性jmeterengine.nongui.maxport)。如果maxport小于或等于端口,则不会进行端口扫描。
选择的端口显示在控制台窗口中。
目前支持的命令如下:
- 关闭(Shutdown)——优雅的关闭
-
StopTestNow——立即关闭
可以使用shutdown[.cmd|]发送这些命令。sh)或stoptest .cmd |。sh脚本分别。这些脚本可以在JMeter bin目录中找到。只有在脚本从同一个主机运行时,才能接受这些命令。
2.7 错误报告 (Error reporting)
JMeter向JMeter.log文件报告警告和错误,以及测试运行本身的一些信息。JMeter显示在JMeter.log文件中发现的警告/错误数量,在窗口右边的警告图标(三角形)旁边。单击警告图标,就可以显示jmeter窗口底部的jmeter.log文件。只是偶尔会出现JMeter无法捕获和记录的错误;这些将出现在命令控制台上。如果测试的行为不像您期望的那样,请检查日志文件,以防报告任何错误(例如,函数调用中的语法错误)。
在日志文件中通常不报告抽样错误(例如没有找到的HTTP 404文件)。相反,它们作为示例结果的属性存储。示例结果的状态可以在不同的监听器(Listeners)中看到。