使用JMeter轻松录制压测脚本

JMeter是Apache的开源压测工具,支持参数化、断言等功能。其丰富的开源生态提供了各种协议和控制器的扩展。本文将介绍如何使用JMeter来录制压测脚本,包括安装JMeter、配置代理、录制测试用例等步骤。

(可选)步骤一:安装JMeter

首先需要安装JMeter工具。如果您已经在本地安装过JMeter,可忽略该步骤,直接执行步骤二:配置代理

在macOS系统中,您可以按照以下步骤安装JMeter。

  1. 下载JMeter。

    1. 访问JMeter官网,在左侧导航栏选择Download > Download Releases ,进入Download Apache Jmeter页面。

      dn

    2. 单击Binariesapache-jmeter-5.x.zip,下载JMeter。

      说明

      apache-jmeter-5.x.zip:其中,5.x中的x表示JMeter的版本,JMeter官网版本会不断升级,这里建议下载最新的JMeter版本。

      mo

  2. 解压下载的JMeter压缩包,例如您可以解压至apache-jmeter-5.x目录下。

    lo

  3. apache-jmeter-5.x目录下,运行Jmeter脚本,启动JMeter工具。

    • 若为Windows系统,则运行bin/jmeter.bat脚本。e

    • 若为Linux和Mac系统,则运行bin/jmeter脚本。rt

步骤二:配置代理

在使用JMeter录制压测脚本之前,需要先配置代理。代理的作用是将浏览器发送的HTTP/HTTPS请求拦截下来,并将请求转发给JMeter工具进行录制。配置代理的具体操作如下。

  1. 在左侧区域右键单击TestPlan,然后选择Add > Non-Test Elements > HTTP(S) Test Script Recorder,添加JMeter代理录制器。

    mo

  2. 在左侧区域右键单击TestPlan,然后选择Add > Threads(Users) > Thread Group,添加ThreadGroup,用来保存录制到的接口。

    et

  3. 设置HTTP(S) Test Script Recorder。

    1. Target Controller区域选择上一步骤中创建的ThreadGroup。即可将录制结果,自动转为ThreadGroup中的HTTP接口。

      eg

    2. HTTPS Domains区域填写需要录制的域名,然后过滤掉其他域名不需要压测的接口。

      重要

      本示例录制电商网站Demo,其域名地址为:eshop.cfd289b4595734d9e9b2c847e63412a08.cn-hangzhou.alicontainer.com。

      et

    3. 单击Request Filtering页签(图标①),设置Content-Type过滤器,如果是REST接口,建议将Include设置为application/json(图标②),过滤掉JS、CSS等静态资源。

      erp

    4. 添加URL过滤。

      说明

      建议按照您的接口前缀添加URL过滤,避免无关URL被录制到压测脚本中。

      由于本示例中,所有后端接口包含/api,因此添加URL过滤的具体步骤如下:

      即需要在URL Patterns to Include区域下方,单击Add(图标①),然后输入.*/api/.*(图标②)。

      重要

      这里需要按照您的接口名称来设置,/api仅作为示例。

      qw

  4. 单击Start(图标①),开启JMeter代理录制器,此时代理端口为Global Setting中port,默认为8888。,然后在弹出的对话框中单击OK(图标②),即启动了JMeter代理录制器。

    wl

  5. 在客户端配置代理。

    • 如果是浏览器客户端:

      推荐使用PTS的Chrome录制器插件,无需代理配置,即可录制出JMeter脚本。

    • 如果是移动端客户端:

      这里以Android系统为例,您可以在设置中找到WLAN,然后进入当前连接的WIFI网络,如下图所示,在代理区域选择手动(图标①),主机名填写JMeter启动的机器IP(图标②),端口填写8888(图标③),然后单击保存

      wr

步骤三:录制测试用例

配置代理后,即可开始录制测试用例。具体操作如下。

  1. 在浏览器中,输入要测试的网址,并访问该Demo域名地址:eshop.cfd289b4595734d9e9b2c847e63412a08.cn-hangzhou.alicontainer.com,此时,JMeter代理会拦截下浏览器发送的HTTP/HTTPS请求。

    de

  2. 在JMeter工具中,打开Thread Group,可以看到拦截到的请求信息。您可以根据需要记录请求参数和响应结果。

    rl

  3. 重复上述步骤1~2,模拟用户的操作,直到录制完整的测试用例。

  4. 停止录制。

    单击JMeter工具界面左侧的HTTP(S) Test Script Recorder,然后单击Stop,停止JMeter代理,并在自己的客户端,移除代理配置。

  5. 保存测试用例。

    将录制的测试用例保存为JMeter测试脚本jmx文件,并上传至PTS的JMeter场景,调试并开始压测。具体操作,请参见创建JMeter场景