二、Jmeter Web压测

Jmeter Web压测

一、JMeter简介

Apache JMeter是一款开源的性能测试工具,主要用于对软件系统进行负载测试、压力测试和性能测试,它可以模拟大量用户并发访问Web应用程序等各种系统,以评估系统的性能、稳定性和资源利用情况。

二、安装JMeter

  1. 下载JMeter
  2. 配置环境(可选)
    • 对于Windows系统,解压后可以将JMeter的bin目录添加到系统环境变量的Path中,方便在命令行中直接启动JMeter。
    • 对于Linux系统,需要在解压后的目录下,编辑.bashrc或者.bash_profile文件,添加类似export PATH=$PATH:/path/to/jmeter/bin(其中/path/to/jmeter是JMeter的实际解压路径),然后执行source.bashrcsource.bash_profile使配置生效。
  3. 具体安装方法请看主页

三、使用JMeter进行Web压测的基本步骤

(一)创建测试计划
  1. 打开JMeter

    • 启动JMeter后,会看到一个空白的测试计划界面。测试计划是JMeter测试的最高级别元素,它包含了所有的测试配置和测试元素。
  2. 添加线程组

    • 右键点击测试计划,选择"添加"->"线程(用户)"->"线程组"。线程组用于定义模拟的用户数量、用户请求的频率等参数。

    • 在"线程组"配置界面中:

      • 线程数(用户数):例如设置为100,表示将模拟100个用户同时访问。
      • Ramp - Up时间(秒):用于设置所有线程启动的时间间隔。如果设置为10秒,那么100个线程会在10秒内逐步启动,平均每秒启动10个线程。这样可以模拟更真实的用户访问场景,避免所有用户同时请求对服务器造成过大冲击。
      • 循环次数 :可以设置每个线程发送请求的次数。如果设置为"永远",则线程会一直循环发送请求,直到手动停止测试。
(二)添加HTTP请求
  1. 添加HTTP请求默认值(可选)

    • 右键点击线程组,选择"添加"->"配置元件"->"HTTP请求默认值"。在这里可以设置服务器的IP地址或域名、端口号(默认HTTP为80,HTTPS为443)等公共信息。这样在后续添加具体的HTTP请求时,就不需要重复设置这些基本信息。
  2. 添加HTTP请求

    • 右键点击线程组,选择"添加"->"取样器"->"HTTP请求"。
    • 在"HTTP请求"配置界面中:
      • 协议:可以选择HTTP或者HTTPS。
      • 服务器名称或IP:填写要测试的Web服务器的域名或IP地址。
      • 端口号:根据实际情况填写,如果是HTTP默认是80,HTTPS默认是443。
      • 路径 :填写Web应用程序中的具体资源路径,如/index.html或者/api/user等。
(三)添加监听器
  1. 查看结果树

    • 右键点击线程组,选择"添加"->"监听器"->"查看结果树"。这个监听器可以让我们查看每个请求的详细信息,包括请求头、请求体、响应头、响应体等内容。在测试过程中,可以通过它来检查请求是否正确发送,以及服务器返回的响应是否符合预期。
  2. 汇总报告

    • 右键点击线程组,选择"添加"->"监听器"->"汇总报告"。汇总报告提供了测试的总体统计信息,如平均响应时间、最小响应时间、最大响应时间、吞吐量(每秒处理的请求数)等。这些统计信息可以帮助我们评估系统的性能。
(四)运行测试
  1. 保存测试计划
    • 在运行测试之前,最好先保存测试计划,方便以后再次使用和修改。选择"文件"->"保存",并选择一个合适的保存位置和文件名。
  2. 启动测试
    • 点击工具栏上的"启动"按钮或者选择"运行"->"启动"来开始测试。在测试过程中,可以通过监听器查看测试结果。
  3. 分析测试结果
    • 根据汇总报告中的数据,如响应时间过长或者吞吐量过低,可能表示系统存在性能瓶颈。可以进一步分析查看结果树中的请求和响应,查找可能的原因,如网络问题、服务器配置不足、代码逻辑复杂等。

四、高级应用

(一)添加断言
  1. 响应断言

    • 右键点击HTTP请求,选择"添加"->"断言"->"响应断言"。在响应断言中,可以设置预期的响应内容,如包含特定的文本、匹配某个正则表达式等。例如,可以断言响应中包含"success"字样,来验证请求是否成功处理。
  2. 断言结果

    • 为了查看断言的结果,需要添加"断言结果"监听器。右键点击线程组,选择"添加"->"监听器"->"断言结果"。在测试过程中,如果断言失败,会在断言结果监听器中显示相应的错误信息。
(二)参数化
  1. CSV数据文件设置

    • 右键点击线程组,选择"添加"->"配置元件"->"CSV数据文件设置"。通过配置CSV文件,可以将测试数据从文件中读取并用于请求参数。例如,在测试用户登录功能时,可以将用户名username和密码password存储在CSV文件中,每行代表一组用户名和密码,然后在变量名称中补充需要使用的变量名称,多个变量名用英文逗号隔开,HTTP请求中将参数设置为从CSV文件中读取的值,使用${变量名},例如${username}
  2. 用户自定义变量

    • 右键点击测试计划,选择"添加"->"配置元件"->"用户自定义变量"。在这里可以定义一些变量,如服务器的URL等,然后在HTTP请求等元素中引用这些变量。这样可以方便地修改测试配置,而不需要在多个地方进行修改。
(三)分布式测试
  1. 设置主从服务器
    • JMeter支持分布式测试,可以将测试负载分布到多个从服务器上执行。首先,在主服务器的JMeter安装目录下,编辑jmeter.properties文件,设置remote_hosts属性,指定从服务器的IP地址,多个IP地址之间用逗号分隔。
  2. 启动从服务器
    • 在从服务器上,进入JMeter的bin目录,执行jmeter -s -Jserver.rmi.ssl.disable=true(如果没有启用SSL)来启动从服务器。
  3. 在主服务器上运行分布式测试
    • 在主服务器的测试计划中,右键点击线程组,选择"远程启动"来启动分布式测试,测试请求会被分配到各个从服务器上执行,从而提高测试的负载能力。
  4. 详细分布式测试见主页

四、附图

相关推荐
崔庆才丨静觅4 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60615 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了5 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅5 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅5 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅6 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment6 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅6 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊6 小时前
jwt介绍
前端
爱敲代码的小鱼6 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax