示例接口:https://www.google.com/search?q=谷歌&oq=谷歌 jmeter脚本下载:jmeter basic demo.jmx
创建一个测试计划(Test Plan)
测试计划(Test Plan)描述了一系列Jmeter运行时将要执行的一系列步骤。完整的测试计划包含一个或者多个线程组,逻辑控制器,取样发生控制,监听器,定时器,断言和配置元件组成。
1. 添加元件(线程组)
可以通过右键单击树中的元素,然后从“ 添加 ”列表中选择一个新元件来将元件添加到测试计划中。或者,可以通过选择“ merge ”或“ open ”选项从文件中加载和添加元素。 要删除元件,请确保已选择该元件,右键单击该元件,然后选择“ 删除 ”选项。
要从文件中加载元件,请右键单击要向其中添加已加载元件的现有树元素,然后选择“ 合并 ”选项。选择保存元素的文件。JMeter将元素合并到树中。 要保存树元素,请右键单击元素,然后选择“ 将选择另存为… ”选项。JMeter将保存选定的元素及其下的所有子元素。这样,您可以保存测试树片段和单个元素以供以后使用。
右键点击“Test Plan” -> “Add” -> “Threads(Users)” -> “Thread Group” 点击“Thread Group” ,可以配置线程组名称,线程数,线程时长,循环次数,调度器等参数:
2.配置树元件(http请求)
在测试树中的任何元件都在JMeter的右侧框架显示配置。那些配置允许你配置测试元件的细节行为,对于一个元件什么能被配置依赖于它是一个什么类型的元件。测试树中的任何元素都将在JMeter的右侧框中显示控件。这些控件使您可以配置特定测试元素的行为。元素可配置的内容取决于元素的类型。
右键点击“Thread Group” -> “Add” -> “Sampler” -> “HTTP Request” HTTP Request信息填写可以参考下图: 右键点击“HTTP Request” -> “Add” -> “Config Element” -> “HTTP Header Manager” ”HTTP Header Manager“常用的Content-Type默认为“text/html”, HTTP Body为json时为“application/json”,HTTP Body为为Form表格时为“application/x-www-form-urlencoded”。
3. 配置监听器(察看结果树 & 聚合报告)
右键点击“Thread Group” -> “Add” -> “Listener” -> “View Result Tree” 右键点击“Thread Group” -> “Add” -> “Listener” -> “Summary Report”,用以存放性能测试报告
4.配置断言
右键点击“HTTP Request” -> “添加”-> “断言” -> “响应断言” 。校验HTTP response中是否包含搜索词“谷歌”。如下: 断言结果:右键点击“HTTP Request” -> “Add”-> “Listener” -> “Assertion Results” 。如下:
5.保存并运行测试计划
尽管不是必需的,但我们建议您在运行测试计划之前将其保存到文件中。要保存测试计划,请从“文件”菜单中选择“ 保存 ”或“ 将测试计划另存为… ”(对于最新版本,不再需要先选择“测试计划”元素)。
注意:敲黑板,敲脑壳啦!!!JMeter允许您保存整个测试计划树或仅保存其中的一部分。要仅保存位于“测试计划”树的特定“分支”中的元素,请在树中选择要从其开始“分支”的“测试计划”元素,然后单击鼠标右键以访问“ 另存为… ” 。 ”菜单项。或者,选择适当的测试计划元素,然后从“编辑”菜单中选择“ 将选择另存为… ”。
要运行测试计划,请从“ 运行 ”菜单项中选择“ 开始 ”(Control + r)。当JMeter运行时,它在菜单栏下方部分的右端显示一个小绿色框。您也可以检查“ 运行 ”菜单。如果禁用了“ 开始 ”,并且启用了“ 停止 ”,则JMeter正在运行您的测试计划(或者至少认为它是这样)。
绿色框左侧的数字是活动线程数/线程总数。这些仅适用于本地运行的测试;使用客户端-服务器模式时,它们不包括在远程系统上启动的任何线程。
注意:敲黑板,敲脑壳啦!!!仅在调试测试计划时,才应使用此处所述的GUI模式。要运行实际负载测试,请使用CLI模式。
运行Http请求,修改响应数据格式为“HTML Source Formatted”,可以看到返回结果页面搜索为”谷歌“。如下:
6.停止测试
菜单中有两种类型的停止命令:
停止(Control + .)-如果可能,立即停止线程。许多采样器都是可中断的,这意味着可以提前终止活动采样。stop命令将检查所有线程是否已在默认超时(5000 ms = 5秒)内停止。[这可以使用JMeter属性jmeterengine.threadstop.wait进行更改]如果线程尚未停止,则会显示一条消息。可以重试Stop命令,但是如果失败,则必须退出JMeter进行清理。 关机(Control + ,)-请求线程在任何当前工作结束时停止。不会中断任何活动样本。模态关闭对话框将保持活动状态,直到所有线程停止。 如果关机时间太长。关闭“关机”对话框,然后选择“运行/停止”,或仅按Control+.。
在CLI模式下运行JMeter时,没有菜单,并且JMeter不会对诸如Control + . 之类的组合键作出反应。。因此,JMeter CLI模式将监听特定端口上的命令(默认为4445,请参见JMeter属性jmeterengine.nongui.port)。如果使用默认端口(例如,另一个JMeter实例),JMeter支持自动选择备用端口。在这种情况下,JMeter将尝试下一个更高的端口,直到到达JMeter属性jmeterengine.nongui.maxport)为止,该属性默认为4455。如果maxport小于或等于port,那么将不会进行端口扫描。 所选端口显示在控制台窗口中。 当前支持的命令是:
Shutdown -正常关机 StopTestNow-立即关闭 可以分别使用shutdown [.cmd|.sh]或stoptest [.cmd|.sh]脚本发送这些命令。这些脚本可以在JMeter bin目录中找到。仅当脚本从同一主机运行时,才会接受命令。
作用域规则
JMeter测试树包含元件总是分等级和顺序的。在测试树中的一些元件是严格分级(监听器,配置元件,后置处理器,前置处理器,断言,定时器),一 些主要是有序的(控制器,取样器)。当你创建测试计划时,你将创建一个有序的取样请求(通过取样器)列表,那些请求描述了一组步骤的执行。那些请求常组织 在也有序的控制器中。给出如下测试树:
测试树例子
请求的顺序是 One,Two,Three,Four。
一些控制器影响它的子元件的顺序,你可以在组件参考读到特定的控制器。
其他元素是分等级的。例如,一个断言在测试树中是分等级的。如果它的父元件是请求,它就被应用于那个请求。如果它的父元件是控制器,它就影响所有那个控制器下的所有请求。如下测试树:
分级例子
Assertion #1 仅被应用于请求 One, Assertion #2 仅被应用于 请求 Two 和 Three。
另一个例子,这次使用定时器:
复杂的例子
在这个例子里,请求的命名表现它们被执行的顺序。Timer #1 应用于 请求 Two, Three, 和 Four (注意对于分等级的元件怎样的顺序是不相关的)。Assertion #1 应用于请求Three。Timer #2 对所有请求有效。
希望那些例子使你弄清了配置(分等级的)元件如何被应用。如果你想每个请求都被树分叉拒绝,到它的父元件,到它的父元件的父元件,等等,每次收集所有它的父元件的配置元件,你将看到它如何工作的。
元件首部管理器, Cookie 管理器和授权管理器的配置和默认元件的配置被视为是不同的.默认元件配置的设置被并入取样器可以到达的一组值里了。然而来自管理器的设置没有并入。如果多于一个管理器在一个取样器范围中,仅仅一个被使用,但是现在没有办法指定那个被使用。
GUI与CLI的区别
GUI(图形用户界面) Graphical User Interface(图形用户接口) 用图形的方式,来显示计算机操作的界面,这样方便更直观。 CLI Command line User Interface(命令行用户接口) 最常见的DOS命令操作。 需要记忆一些常用的命令,操作不直观。
|