网站并发压力测试实战指南(基于 JMeter)

在网站或 API 上线前,我们通常需要知道服务器能同时扛住多少人访问(即“高并发”)。如果只是自己用鼠标疯狂刷新,根本无法模拟真实的压力场景。这时候,我们就需要用到专业的开源压测工具:JMeter

这篇文章专为零基础小白编写,跟着以下步骤,你将能从零开始,独立完成一次标准、真实的 100 并发压力测试。

阶段一:环境准备与安装

JMeter 是一款基于 Java 开发的软件,所以我们需要先配置好基础环境。

1. 安装 Java 环境 (JDK)

  1. 去 Oracle 官网或搜索下载 JDK 8 或更高版本(推荐 JDK 11 或 17)。
  2. 一路点击“下一步”完成安装,并确保配置好了系统的环境变(打开电脑的命令行/终端,输入 java -version,如果能输出版本号,说明安装成功)。

2. 下载并启动 JMeter

  1. 前往 Apache JMeter 官网 下载最新版的 .zip 压缩包(如 apache-jmeter-5.6.3.zip)。
  2. 将压缩包解压到你的电脑里(建议放在没有中文路径的目录下,例如 D:\jmeter)。
  3. 启动软件
  • Windows 系统:进入解压后的 bin 文件夹,双击运行 **jmeter.bat**。
  • Mac/Linux 系统:在终端进入 bin 目录,执行 ./jmeter.sh


4. 稍等几秒,你就会看到一个全英文的图形化界面(GUI),这就是我们要配置脚本的地方。


阶段二:手把手配置压测脚本 (最容易踩坑!)

我们将以测试某个网址(例如 [https://s.nnu.cn/](https://s.nnu.cn/))为例,模拟 100 个人同时访问。

第一步:新建“线程组”(模拟用户)

线程组的作用是告诉 JMeter 我们要模拟多少个用户,以及怎么模拟。

  1. 在左侧树状图的 Test Plan (测试计划) 上点击右键

  2. 依次选择 Add (添加) -> Threads (Users) -> Thread Group

    ⚠️ 避坑警告: 一定要选最普通的 Thread Group,千万不要选带 Open Model 字样的,否则脚本会瞬间运行结束,没有任何反应!

  3. 在右侧弹出的界面中,设置以下三个关键数字:

  • Number of Threads (users): 填写 100(代表模拟 100 个人)。
  • Ramp-up period (seconds): 填写 10(代表在这 10 秒内,把这 100 个人陆续放进去。千万别填 1,否则瞬间并发会被防火墙当成黑客攻击拦截)。
  • Loop Count: 填写 10(代表每个人重复请求 10 次。这样总计会发送 1000 个请求)。

第二步:配置 HTTP 请求(告诉工具去访问谁)

  1. 在刚刚建好的 Thread Group 上点击右键
  2. 依次选择 Add -> Sampler -> HTTP Request
  3. 在右侧面板填写你要测试的网址,这是小白最容易填错的地方,必须拆开填
  • Protocol [http]: 填写 https (如果没有 s 就填 http)。
  • Server Name or IP: 填写域名,例如 s.nnu.cn。(⚠️千万不要带前面的 https://,也不要带后面的斜杠 /,且末尾绝对不能有空格)。
  • Path: 填写 / (如果是主页就填斜杠。如果是具体页面如 /s/lTFRo4,必须以斜杠开头)。
  1. 重定向设置: 找到下方的复选框,取消勾选 “Redirect Automatically”,勾选 “Follow Redirects”(跟随重定向),防止请求在中途丢失。

第三步:伪装成浏览器(防止被拦截)

很多网站有防爬虫机制,看到是测试工具就会返回 404 错误。我们需要伪装成正常的浏览器。

  1. Thread Group 上点击右键 -> Add -> Config Element -> HTTP Header Manager
  2. 在右侧面板下方点击 Add (添加) 按钮,新增一行:
  • Name 框输入:User-Agent
  • Value 框输入:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

第四步:添加结果查看器(用于调试)

  1. Thread Group 上点击右键 -> **Add -> Listener -> View Results Tree (察看结果树)**。
  2. 点击顶部工具栏绿色的 Play (启动) 按钮。
  3. 会弹出提示让你保存脚本。将它保存到桌面上,命名为 test.jmx
  4. 点击左侧的“察看结果树”,如果看到列表里出现了绿色的盾牌,说明单次请求测试成功!

阶段三:正式发起高并发压测 (命令行模式)

🚨 官方严厉警告: 永远不要在图形化界面里直接进行高并发测试!图形界面极度消耗电脑内存,会导致你的电脑卡死,测出来的数据也会完全不准。图形界面仅仅是用来写脚本调试单次请求的。

正确的做法是关闭 JMeter 图形界面,用黑框框(命令行)来跑。

1. 确保输出目录干净

JMeter 在生成测试报告时,如果发现指定的文件夹里已经有旧数据,就会直接报错罢工。
因此,在跑测试前,请确保你要保存报告的地方(比如桌面)没有 result.jtl 文件,也没有 report 文件夹。如果有,请手动删除它们。

2. 执行压测命令

  1. 打开终端(Windows 系统建议在桌面空白处右键,选择 Open Git Bash here,或者按 Win+R 输入 cmd 打开命令提示符)。

  2. 通过 cd 命令进入你刚刚解压的 JMeter 的 bin 目录。例如:

    1
    2
    cd D:\jmeter\apache-jmeter-5.6.3\bin

  3. 复制并执行以下标准压测命令(请把路径换成你自己电脑里的实际路径):

    1
    2
    3
    4
    5
    6
    7
    8
    # Windows 使用 jmeter.bat,Mac/Linux 使用 ./jmeter.sh
    # -n: 无界面模式
    # -t: 你刚刚保存的脚本文件路径
    # -l: 原始数据保存为 jtl 格式
    # -e -o: 自动生成 HTML 网页版可视化报告文件夹

    ./jmeter.bat -n -t "C:\Users\你的电脑用户名\Desktop\test.jmx" -l "C:\Users\你的电脑用户名\Desktop\result.jtl" -e -o "C:\Users\你的电脑用户名\Desktop\report"

  4. 回车运行后,你会看到屏幕上每隔几秒跳出一行带有 summary 字样的数据。当看到 ... end of run 时,恭喜你,压测圆满结束!


阶段四:看懂你的压测报告

压测结束后,不要去看那个密密麻麻的 .jtl 文件。

  1. 直接去你的桌面上,找到刚刚生成的 report 文件夹。
  2. 双击打开里面的 index.html 文件(会自动用你的浏览器打开)。
  3. 这是一个极具专业感的数据大屏,你需要重点关注两项核心指标:
  • 仪表盘 (Dashboard) -> APDEX (Application Performance Index): 这个表格里的 **Error % (错误率)**。如果不是 0%,说明服务器在压力下出现了崩溃或拒绝服务。
  • 吞吐量 (Throughput): 也就是常说的 QPS。代表在你的服务器在没有报错的前提下,每秒最多能处理多少次请求。数字越大,说明你的服务器性能越强悍!