JMeter是Apache的开源压测工具,支持参数化、断言等功能。其丰富的开源生态提供了各种协议和控制器的扩展。本文将介绍如何使用JMeter来录制压测脚本,包括安装JMeter、配置代理、录制测试用例等步骤。
(可选)步骤一:安装JMeter
首先需要安装JMeter工具。如果您已经在本地安装过JMeter,可忽略该步骤,直接执行步骤二:配置代理。
在macOS系统中,您可以按照以下步骤安装JMeter。
下载JMeter。
访问JMeter官网,在左侧导航栏选择 ,进入Download Apache Jmeter页面。
单击Binaries的
apache-jmeter-5.x.zip
,下载JMeter。说明apache-jmeter-5.x.zip
:其中,5.x中的x表示JMeter的版本,JMeter官网版本会不断升级,这里建议下载最新的JMeter版本。
解压下载的JMeter压缩包,例如您可以解压至apache-jmeter-5.x目录下。
apache-jmeter-5.x目录下,运行Jmeter脚本,启动JMeter工具。
若为Windows系统,则运行bin/jmeter.bat脚本。
若为Linux和Mac系统,则运行bin/jmeter脚本。
步骤二:配置代理
在使用JMeter录制压测脚本之前,需要先配置代理。代理的作用是将浏览器发送的HTTP/HTTPS请求拦截下来,并将请求转发给JMeter工具进行录制。配置代理的具体操作如下。
在左侧区域右键单击TestPlan,然后选择 ,添加JMeter代理录制器。
在左侧区域右键单击TestPlan,然后选择 ,添加ThreadGroup,用来保存录制到的接口。
设置HTTP(S) Test Script Recorder。
在Target Controller区域选择上一步骤中创建的ThreadGroup。即可将录制结果,自动转为ThreadGroup中的HTTP接口。
在HTTPS Domains区域填写需要录制的域名,然后过滤掉其他域名不需要压测的接口。
重要本示例录制电商网站Demo,其域名地址为:eshop.cfd289b4595734d9e9b2c847e63412a08.cn-hangzhou.alicontainer.com。
单击Request Filtering页签(图标①),设置Content-Type过滤器,如果是REST接口,建议将Include设置为application/json(图标②),过滤掉JS、CSS等静态资源。
添加URL过滤。
说明建议按照您的接口前缀添加URL过滤,避免无关URL被录制到压测脚本中。
由于本示例中,所有后端接口包含/api,因此添加URL过滤的具体步骤如下:
即需要在URL Patterns to Include区域下方,单击Add(图标①),然后输入.*/api/.*(图标②)。
重要这里需要按照您的接口名称来设置,/api仅作为示例。
单击Start(图标①),开启JMeter代理录制器,此时代理端口为Global Setting中port,默认为8888。,然后在弹出的对话框中单击OK(图标②),即启动了JMeter代理录制器。
在客户端配置代理。
如果是浏览器客户端:
推荐使用PTS的Chrome录制器插件,无需代理配置,即可录制出JMeter脚本。
如果是移动端客户端:
这里以Android系统为例,您可以在设置中找到WLAN,然后进入当前连接的WIFI网络,如下图所示,在代理区域选择手动(图标①),主机名填写JMeter启动的机器IP(图标②),端口填写8888(图标③),然后单击保存。
步骤三:录制测试用例
配置代理后,即可开始录制测试用例。具体操作如下。
在浏览器中,输入要测试的网址,并访问该Demo域名地址:
eshop.cfd289b4595734d9e9b2c847e63412a08.cn-hangzhou.alicontainer.com
,此时,JMeter代理会拦截下浏览器发送的HTTP/HTTPS请求。在JMeter工具中,打开Thread Group,可以看到拦截到的请求信息。您可以根据需要记录请求参数和响应结果。
重复上述步骤1~2,模拟用户的操作,直到录制完整的测试用例。
停止录制。
单击JMeter工具界面左侧的HTTP(S) Test Script Recorder,然后单击Stop,停止JMeter代理,并在自己的客户端,移除代理配置。
保存测试用例。
将录制的测试用例保存为JMeter测试脚本jmx文件,并上传至PTS的JMeter场景,调试并开始压测。具体操作,请参见创建JMeter场景。