JMeter简介

JMeter是Apache组织开发的基于Java的压力测试工具。它可以用于测试静态和动态资源,可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

JMeter下载地址https://jmeter.apache.org/download_jmeter.cgi

下载完毕后解压到任意文件夹,打开apache-jmeter-5.1.1\bin\ApacheJMeter.jar程序,如果打开遇到问题请参考apache-jmeter-5.1.1\README.md文件,打开后窗口如下图:

创建Web测试计划

以5个用户(设备)向一个网络地址发送请求为例,说明基本测试计划的创建。测试过程重复2次,所以总的HTTPS请求次数为\(5*2=10\),创建测试计划时需要关注:线程组,HTTP请求和图形图表结果。

添加用户

添加线程组(即虚拟用户),JMeter使用线程组模拟用户,鼠标右击测试计划,点击线程组添加,如下图所示:

线程组添加完毕,线程组控制面板如下图:

下一步是根据我们定好的数据修改线程组参数:

  • 根据需要修改名称栏,这里可以修改为“烟感设备”;
  • 修改线程数为5,代表5个用户(设备);
  • Ramp-Up时间使用默认值,这个参数用于配置每个用户线程启动的间隔时间。例如,如果Ramp-Up时间设置为5秒,那么所有用户将在5秒内启动完毕,5个用户在5秒内启动完毕,也就是每个用户启动间隔是1秒(5个用户/5秒=1秒启动一个用户线程)。若该参数设置为0,所有用户会在开始时刻同时启动;
  • 修改循环次数为2,测试过程将进行2次,如果要一直测试可以勾选“永远”前面的复选框。

线程组配置完毕,如下图所示:

添加HTTP请求

如下图所示,鼠标右击烟感设备标签,点击“HTTP请求”:

添加完毕,点击“HTTP请求”标签,名称也可以修改为合适的名字,在“HTTP请求”栏目中,将方法选为“POST”,路径填入服务器地址(这里以百度地址为例),点击消息体数据填入所要发送的数据(如果有数据)。

添加HTTP头信息

协议、地址、数据都有了,下面添加HTTP协议头,仿照之前的添加过程,在“HTTP请求”标签上右击鼠标,找到”HTTP协议头管理工具“,点击之后添加完毕,如下图:

点击下方的“添加”按钮,在名称栏填写Content-Type,值栏填写application/json,如下图:

添加响应断言

HTTP请求发出后,服务器会发送回应数据,其中header部分包含状态返回代码,成功的状态返回码为200 OK,按照前述方式,在在“HTTP请求”标签上右击鼠标,添加响应断言,测试字段选择”响应头“,模式匹配规则选择”包含“,在下发点击”添加“按钮,输入200 OK,还可自定义失败信息,这里默认不设置,如下图所示:

添加分析结果

最后添加分析结果,可以是图、表、图表符合报告,每个报告页面有相应的参数可配置,可以自行调整。

配置完毕,点击“启动”按钮(菜单栏绿色的箭头)开始测试,等待右上角的运行状态图标变绿(运行)再变灰(空闲),点开“用表格查看结果”栏目,查看运行结果,status栏绿色图表代表该条测试成功(从管控平台网页上自检信息栏能够查询到刚刚的测试信息,注意这里发送的所有数据内容信息都是一样的),如果该图标是红色,需要检查配置,或者检查服务器是否可用:

分析性能

测试计划创建完毕,配置成功后,现在能够结合运行结果的图表分析服务器性能了。以上图为例:

  • Latency:发送Http request到收到response的时间(毫秒);
  • Sample Time:整个请求服务花费的时间(毫秒),包含Latency+response的时间。

根据上图结果,Sample Time的区间在49ms-263ms。该结果可能受地理距离影响比较大,距离越远,延迟越大。除了距离还和requested请求包含的数据量有关,数据量越大,传输时间越久。上图有个有趣的现象:随着测试的进行,后面的请求比前面的请求Sample Time少,这可能和网络缓存有关。

插件安装

JMter已经自带了许多默认分析器,但它强大的地方在于能够安装功能扩展插件,可以根据项目的需要安装带有相应功能的插件。插件安装地址:https://jmeter-plugins.org/,也可以使用插件管理器安装你需要的插件:https://jmeter-plugins.org/wiki/PluginsManager/。

posted @ 2019-09-11 13:41  Liam-Ji  阅读(542)  评论(0编辑  收藏  举报