『动善时』JMeter基础 — 6、使用JMeter发送一个最基础的请求
当我们第一次打开JMeter的时候,树形标签栏中只有一个“测试计划”。
如果想要发送一个最基础的请求,需要操作如下步骤:
步骤1:创建一个测试计划
打开JMeter会默认有一个创建好的测试计划。
一个测试计划描述了一系列JMeter运行时要执行的步骤。一个完整的测试计划包含一个或者多个线程组,逻辑控制器,取样控制器,监听器,定时器,断言和配置元件。(测试计划必须至少具有一个线程组)
提示:
如果需要创建一个新的测试计划,点击“文件” —> "新建",会开启新的JMeter窗口。
(JMeter原则上是希望一个窗口只可以修改或编辑一个测试计划)
步骤2:创建线程组
首先需要选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组,如下图:
说明:
setUp线程组
:在线程组之前运行。tearDown线程组
:在线程组之后运行。如果你还安装了其他的组件和插件的话,还会有一些其他的线程选项。
步骤3:创建取样器
选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求(以HTTP请求为例)
步骤4:创建监听器
选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树
步骤5:完善信息
开始编辑树形标签栏中每个标签的内容。
(1)测试计划标签
- 名称:默认为测试计划,在实际的工作中,你需要修改成xxx项目的测试计划。
- 注释:就是对该测试项目的一些描述。
- 添加目录或jar包到ClassPath:当我们需要引用一些外部jar包的时候,点击“浏览”进行添加。之后我们在写测试脚本的时候,就可以引用这些jar包中的内容了。
(其他的选项和内容我们之后再说明,这里就先简单介绍一些基本用法)
(2)线程组标签
- 名称:线程组就相当于一个流程,也就是定义该流程的名字,例如:访问百度。
- 注释:对该线程组的说明。
(其他内容保持默认即可)
(3)HTTP请求标签
- 名称:对于我们来说一个HTTP请求就相当于调用一个接口。一个流程(线程组)中可以有多个接口(HTTP请求)。换句话说,在一个流程中,要访问多少个接口,就添加多少个HTTP请求。
该名称可以修改成访问接口的名字,例如:访问百度。 - 注释:对该HTTP请求的说明。
- 协议(必填):写你需要使用的协议,如访问百度网站需要使用
http协议
或者https
协议。 - 服务器名称或IP(必填):也就是需要请求服务器的域名或者IP地址。例如访问百度网站,填写
www.baidu.com
。(注意此处不要加协议) - 端口号:有指定访问的端口号就需要填写,访问百度网站则不需要填写,会使用默认端口号,如80或者443。
- 方法:也就是选择请求方式,我们访问百度网站,选择
GET
方式即可。
(其他内容保持默认即可)
填写完如下图:
步骤6:保存测试计划
此时就可以点击工具栏中的“启动”按钮,运行这个测试计划。
点击"启动"按钮后,JMeter会弹出一个警告,如下图:
提示你再测试计划执行前,请先保存该测试计划。点击YES就会弹出保存窗口。
我们就先把这个测试计划保存到桌面。
保存完成后,JMeter会自动执行该测试计划。
结果去察看结果树中查看。
步骤7:查看结果
点击树形标签栏中测试计划的“察看结果树”来查看该测试计划的执行结果。
察看结果树会显示测试计划中所有请求数据,请求数据中展示了每一个取样器的结果、请求信息和响应信息。除此之外还可以查看获得响应所花费的时间,以及一些响应代码等信息。这些内容可以帮助我们去分析脚本是否存在问题。
察看结果树内容如下图:
察看结果树可以说是JMeter中最常用的监听器,通过它就可以看到请求的发送和返回信息。
总结:JMeter测试计划要素
JMeter中一个脚本就是一个测试计划,也是一个管理单元。JMeter的请求模拟与并发数设置都在脚本文件中一起设置。
测试计划要素如下:
- 要素一:脚本中测试计划只能有一个JMeter测试计划。
同一时刻场景固然只能有一个,JMeter脚本在GUI中显示是树型结构,测试计划是根节点。根节点当然只能有一个。 - 要素二:测试计划中至少要有一个线程组。
JMeter负载是通过线程组驱动的,所以计划中至少要出现一个线程组。
JMeter测试计划支持多个线程组,我们可以在计划下面建立多个线程组,把不相关的业务分布在不同的线程组。(也就是一个测试计划中可以个多个流程,一个流程就代表一个线程组) - 要素三:至少要有一个取样器。
测试的目的就是要模拟用户请求,没有取样器脚本就毫无意义。
也就是在一个流程下可以有多个请求,一个接口对应一个HTTP请求。 - 要素四:至少有一个监听器。(收集结果)
测试结果用来衡量系统性能,我们需要从结果中分析系统性能。
说明
我们这里只是简单了介绍了JMeter发送一个请求最基础的一些步骤。
关于每个步骤中具体的操作和更多的细节都没有展开说明,以后会逐一展开详细说明,我们先对使用JMeter发送请求有一个最基础的认识就可以了。