关注性能小课,成长不止一点点
本篇将讲述如何在JMeter中创建测试计划(「Test Plan」)
创建测试计划(Test Plan)
测试计划(「Test Plan」)描述了「JMeter」运行时将要执行的一系列步骤。完整的测试计划是由包含一个或者多个的线程组、逻辑控制器、取样器、监听器、定时器、断言以及配置元件等组成部分所组成。
1.添加和删除元件
可以通过右键单击树中的元素,然后从“ 添加 ”列表中选择一个新元件来将元件添加到测试计划中。或者,通过选择“ merge ”或“ open ”选项从文件中加载和添加元件。
删除元件前,需先确保该元件已被选择。右键单击该元件,然后选择“ 删除 ”选项,即可删除被选择元件。
2.加载和保存元件
如果从文件中加载元件,需先右键单击要向其中添加已加载元件的现有树元件,然后选择“合并”选项,选择保存元件的文件,此时,「JMeter」会将元件合并到树中。要保存树元件,可右键单击元件,然后选择“ 将选择另存为... ”选项,此时,「JMeter」将会保存选定的元件及其下的所有子元件。此操作用以保存测试树片段或单个元件,供以后使用。
小提示:工作台不会自动保存测试计划,但允许被单独保存。
3.配置树元件
在测试树中,任何元件的详细配置都会在选中该元件后,显示在「JMeter」的右侧窗口中。所有被罗列显示的这些配置项,主要方便用户对测试元件的细节行为做进一步配置。因此,对于一个元件能被如何配置,取决于它是一个什么类型的元件。
在测试树中,任何元件的显示控件也都会在选中该元件后,显示在「JMeter」的右侧窗口中。这些控件主要方便用户对测试元件的特定行为做进一步配置。可配置的内容取决于元件的类型。
小提示:测试树中的元件支持拖拽操作。
4.保存测试计划
强烈建议在运行测试计划之前,对测试计划进行保存。
保存测试计划,可从“文件”菜单中选择“ 保存 ”或“ 将测试计划另存为... ”这两种方式。
5.运行测试计划
通过点击“ 运行 ”菜单项中的“ 开始 ”(「Control + r」),可对测试计划进行运行。当「JMeter」运行测试计划时,其菜单栏下方的右端会显示一个小绿色框。绿色框左侧的数字是活动线程数/线程总数。该统计数字仅针对本地运行的测试;当使用客户端-服务器模式时,该统计数字是不包括在远程系统上启动的任何线程的。
小提示:调试测试计划时,应使用GUI模式。运行实际负载测试时,应使用CLI模式。
6.停止测试
菜单中有两种类型的停止命令:
-
停止(「Control + .」)-执行此命令,将会立即停止线程。许多采样器都是可中断的,这意味着如果执行该命令,将会提前终止活动采样。stop命令将检查所有线程是否已在默认超时(5000 ms = 5秒)时间内停止。如果线程尚未停止,则会显示一条消息。此时,可以重试stop命令,但如果失败,则必须退出JMeter进行清理。 注:默认超时(5000 ms = 5秒)时间可以通过「JMeter」的属性「jmeterengine.threadstop.wait」进行更改。 -
关机(「Control + ,」)-执行此命令,将会请求线程在任何当前工作结束时停止,但不会中断任何活动样本。模态关闭对话框将保持活动状态,直到所有线程停止。
如果关机时间太长,可关闭“关机”对话框,选择“运行/停止”,或按组合键「Control+.」。
在CLI模式下运行「JMeter」时,是没有菜单的,且「JMeter」也不会对诸如Control + . 之类的组合键作出响应。因此,JMeter CLI模式将监听特定端口上的命令(默认为4445,参见JMeter属性jmeterengine.nongui.port)。如果使用默认端口,JMeter则支持自动选择备用端口。此时,JMeter将尝试监听下一个更高的端口号,一直到JMeter属性jmeterengine.nongui.maxport的默认最大端口号4455为止。如果maxport小于或等于port,将不会进行端口扫描。
7.作用域规则
「JMeter」测试树所包含的元件是分等级和顺序的。在测试树中,一些元件是严格分级的(监听器、配置元件、后置处理器、前置处理器、断言、定时器),一些是有序的(控制器、取样器)。创建测试计划时,将会创建一个有序的取样请求(通过取样器)列表,请求列表主要描述了一组步骤的执行。参考如下测试树:
测试树例子: 请求的顺序是 「One,Two,Three」。
一些控制器影响它的子元件的顺序,你可以在组件参考读到特定的控制器。其他元素是分等级的。例如,一个断言在测试树中是分等级的。如果它的父元件是请求,它就被应用于那个请求。如果它的父元件是控制器,它就影响所有那个控制器下的所有请求。
如下测试树:分级例子 Assertion #1 仅被应用于请求 One, Assertion #2 仅被应用于 请求 Two 和 Three。
另一个例子,这次使用定时器:复杂的例子
在这个例子里,请求的命名表现它们被执行的顺序。Timer #1 应用于 请求 Two, Three (注意对于分等级的元件怎样的顺序是不相关的)。Assertion #1 应用于请求Three。Timer #2 对所有请求有效。
8.错误报告
「JMeter」会将警告、错误报告以及有关测试运行本身的一些信息输出到jmeter.log文件中。JMeter 会在其窗口右端的警告图标(三角形)旁边显示「jmeter.log」文件中所记录的警告/错误数量。单击警告图标可以在「JMeter」窗口的底部显示「jmeter.log」文件。但有时,可能也会有一些错误,是JMeter所无法捕获和记录,这些错误,将会显示在命令控制台上。当测试不符合预期时,需随时检查日志文件,以防报任何错误(例如:函数调用中的语法错误)。
通常不会在日志文件中报告采样错误(例如:HTTP404-未找到文件),但会将它们存储为样本结果的属性。样本结果的状态可以在各种不同的监听器中进行浏览。
小结
GUI与CLI的区别
「GUI」(图形用户界面):「Graphical User Interface」(图形用户接口),用图形的方式,来显示计算机操作的界面,这样方便更直观。
「CLI:Command line User Interface」(命令行用户接口) 最常见的DOS命令操作。需要记忆一些常用的命令,操作不直观。
END
欢迎加入我们:
扫码加入公开课学习交流群②
已在公开课学习交流群①
的小朋友请勿重复加群
免费技术支持微信:15712862196
咨询QQ:2657535456
咨询微信号:huice666
慧测公众号
/product.mdnice.com/articles/




