Jmeter接口并发测试

news2025/5/14 2:46:30

Apache JMeter 是一款开源的性能测试工具,广泛用于接口并发测试、负载测试和压力测试。以下是使用 JMeter 进行接口并发测试的详细步骤:

一、准备工作

  1. 安装 JMeter

    • 下载地址:Apache JMeter 官网

    • 确保已安装 Java 环境(JMeter 依赖 Java 运行)。

  2. 准备测试接口

    • 获取待测试的接口地址(URL)、请求方法(GET/POST 等)及参数。

    • 如果需要认证(如 Token),准备好认证信息。


二、创建测试计划

  1. 启动 JMeter

    • 解压下载的 JMeter 文件,运行 bin/jmeter.bat(Windows)或 bin/jmeter.sh(Linux/Mac)。

  2. 添加线程组

    • 右键点击“测试计划” -> 添加 -> 线程(用户) -> 线程组。

    • 配置线程组参数:

      • 线程数(用户数):并发用户数量(如 100)。

      • Ramp-Up 时间(秒):用户启动时间(如 10 秒,表示 10 秒内启动 100 个用户)。

      • 循环次数:每个用户的请求次数(如 1 次或无限循环)。

  3. 添加 HTTP 请求

    • 右键点击“线程组” -> 添加 -> 取样器 -> HTTP 请求。

    • 配置 HTTP 请求参数:

      • 协议:HTTP 或 HTTPS。

      • 服务器名称或 IP:接口的域名或 IP 地址。

      • 端口号:接口的端口号(默认 HTTP 为 80,HTTPS 为 443)。

      • 路径:接口的路径(如 /api/v1/user)。

      • 请求方法:GET、POST、PUT 等。

      • 参数:如果需要传递参数,在“参数”选项卡中添加键值对。

  4. 添加监听器

    • 右键点击“线程组” -> 添加 -> 监听器 -> 查看结果树、聚合报告、图形结果等。

    • 查看结果树:查看每个请求的详细响应数据。

    • 聚合报告:查看测试结果的统计信息(如平均响应时间、吞吐量等)。

    • 图形结果:以图表形式展示测试结果。


三、配置并发测试

  1. 设置并发用户数

    • 在“线程组”中调整“线程数”为并发用户数(如 100)。

  2. 设置定时器(可选)

    • 如果需要控制请求的发送频率,可以添加定时器:

      • 右键点击“线程组” -> 添加 -> 定时器 -> 固定定时器。

      • 设置“延迟时间”(如 1000 毫秒,表示每秒发送一次请求)。

  3. 设置断言(可选)

    • 如果需要验证接口返回结果,可以添加断言:

      • 右键点击“HTTP 请求” -> 添加 -> 断言 -> 响应断言。

      • 设置断言规则(如检查响应代码是否为 200)。

  4. 设置 CSV 数据文件(可选)

    • 如果需要使用不同的参数进行并发测试,可以配置 CSV 数据文件:

      • 右键点击“线程组” -> 添加 -> 配置元件 -> CSV 数据文件设置。

      • 指定 CSV 文件路径,并在 HTTP 请求中使用变量(如 ${username})。


四、运行测试

  1. 保存测试计划

    • 点击菜单栏的“文件” -> 保存,将测试计划保存为 .jmx 文件。

  2. 启动测试

    • 点击工具栏的“启动”按钮(绿色三角形)开始测试。

  3. 查看结果

    • 在“监听器”中查看实时测试结果。

    • 重点关注以下指标:

      • 响应时间:接口的平均响应时间。

      • 吞吐量:单位时间内处理的请求数。

      • 错误率:请求失败的比例。


五、优化与分析

  1. 调整并发用户数

    • 逐步增加并发用户数,观察系统的性能变化。

  2. 监控服务器资源

    • 使用工具(如 JConsole、Grafana)监控服务器的 CPU、内存、网络等资源使用情况。

  3. 分析瓶颈

    • 如果响应时间过长或错误率升高,可能是服务器性能不足或代码存在瓶颈。

  4. 生成报告

    • 使用 JMeter 的“生成报告”功能,导出 HTML 格式的测试报告。


六、常见问题

  1. JMeter 运行卡顿

    • 减少监听器的数量(如只保留“聚合报告”)。

    • 增加 JMeter 的 JVM 内存(修改 jmeter.bat 或 jmeter.sh 中的 HEAP 参数)。

  2. 接口返回错误

    • 检查接口地址、参数、认证信息是否正确。

    • 使用“查看结果树”查看详细的请求和响应数据。

  3. 如何模拟高并发

    • 使用分布式测试:在多台机器上运行 JMeter,通过主节点控制。

    • 调整线程组的 Ramp-Up 时间,模拟用户逐步增加。


通过以上步骤,您可以使用 JMeter 完成接口并发测试,并根据测试结果优化系统性能。如果需要更高级的功能(如分布式测试、动态参数化),可以参考 JMeter 官方文档或社区资源。

一些示例截图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2306393.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL-增删改查

一、Create(创建) 📖 语法: INSERT INTO table_name(value_list); 当我们使用表的时候,就可以使用这个语法来向表中插入元素~ 我们这边创建一个用于示范的表(Student)~ create table student( id int, name varchar(20), chinese int, math…

开源堡垒机 JumpServer 社区版实战教程:发布机的配置与Website资产配置使用

文章目录 开源堡垒机 JumpServer 社区版实战教程:发布机的配置与Website资产配置使用一、功能简述二、应用发布机2.1 版本要求2.2 创建应用发布机2.2.1 通过WinRM的协议进行应用发布机的创建2.2.2 通过OpenSSH的协议进行应用发布机的创建2.2.2.1 下载OpenSSH2.2.2.2…

代码随想录算法训练day64---图论系列8《拓扑排序dijkstra(朴素版)》

代码随想录算法训练 —day64 文章目录 代码随想录算法训练前言一、53. 117. 软件构建—拓扑排序二、47. 参加科学大会---dijkstra(朴素版)总结 前言 今天是算法营的第64天,希望自己能够坚持下来! 今天继续图论part!今…

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(四)

2024-2025 学年广东省职业院校技能大赛 “信息安全管理与评估”赛项 技能测试试卷(四) 第一部分:网络平台搭建与设备安全防护任务书第二部分:网络安全事件响应、数字取证调查、应用程序安全任务书任务 1:应急响应&…

单片机的串口(USART)

Tx - 数据的发送引脚,Rx - 数据的接受引脚。 串口的数据帧格式 空闲状态高电平,起始位低电平,数据位有8位校验位,9位校验位,停止位是高电平保持一位或者半位,又或者两位的状态。 8位无校验位传输一个字节…

动态规划(背包问题)--是否逆序使用的问题--二进制拆分的问题

动态规划&#xff08;背包问题&#xff09; 题目链接01背包代码 完全背包问题代码 多重背包问题 I代码 什么时候适用逆序多重背包问题 II&#xff08;超百万级的复杂度&#xff09;代码 关于二进制拆分 题目链接 01背包 代码 #include <iostream> #include <vector&…

Mac 版 本地部署deepseek ➕ RAGflow 知识库搭建流程分享(附问题解决方法)

安装&#xff1a; 1、首先按照此视频的流程一步一步进行安装&#xff1a;(macos版&#xff09;ragflowdeepseek 私域知识库搭建流程分享_哔哩哔哩_bilibili 2、RAGflow 官网文档指南&#xff1a;https://ragflow.io 3、RAGflow 下载地址&#xff1a;https://github.com/infi…

姿态矩阵/旋转矩阵/反对称阵

物理意义&#xff0c;端点矢量角速率叉乘本身向量&#xff1b; 负号是动系b看固定系i是相反的&#xff1b; 一个固定 在惯性导航解算中&#xff0c;旋转矢量的叉乘用于描述姿态矩阵的微分方程。你提到的公式中&#xff0c; ω i b b \boldsymbol{\omega}_{ib}^b \times ωibb…

【大语言模型】【整合版】DeepSeek 模型提示词学习笔记(散装的可以看我之前的学习笔记,这里只是归纳与总结了一下思路,内容和之前发的差不多)

以下是个人笔记的正文内容: 原文在FlowUs知识库上&#xff0c;如下截图。里面内容和这里一样&#xff0c;知识排版好看一点 一、什么是 DeepSeek 1. DeepSeek 简介 DeepSeek 是一家专注于通用人工智能&#xff08;AGI&#xff09;的中国科技公司&#xff0c;主攻大模型研发与…

ollama无法通过IP:11434访问

目录 1.介绍 2.直接在ollama的当前命令窗口中修改&#xff08;法1&#xff09; 3.更改ollama配置文件&#xff08;法2&#xff09; 3.1更新配置 3.2重启服务 1.介绍 ollama下载后默认情况下都是直接在本地的11434端口中运行&#xff0c;绑定到127.0.0.1(localhost)&#x…

Bugku CTF CRYPTO

Bugku CTF CRYPTO 文章目录 Bugku CTF CRYPTO聪明的小羊ok[-<>]散乱的密文.!? 聪明的小羊 描 述: 一只小羊翻过了2个栅栏 fa{fe13f590lg6d46d0d0} 分 析&#xff1a;栅栏密码&#xff0c;分2栏&#xff0c;一个栏里有11个 ①手动解密 f a { f e 1 3 f 5 9 0 l g 6 d 4 …

【洛谷】【ARC100E】Or Plus Max(高维前缀和)

传送门&#xff1a;Or Plus Max 高维前缀和 题目描述 長さ 2N の整数列 A0​, A1​, ..., A2N−1​ があります。&#xff08;添字が 0 から始まることに注意&#xff09; 1 ≤ K ≤ 2N−1 を満たすすべての整数 K について、次の問題を解いてください。 i,j を整数と…

SmolLM2:多阶段训练策略优化和高质量数据集,小型语言模型同样可以实现卓越的性能表现

SmolLM2 采用创新的四阶段训练策略&#xff0c;在仅使用 1.7B 参数的情况下&#xff0c;成功挑战了大型语言模型的性能边界&#xff1a; 在 MMLU-Pro 等测试中超越 Qwen2.5-1.5B 近 6 个百分点数学推理能力&#xff08;GSM8K、MATH&#xff09;优于 Llama3.2-1B在代码生成和文…

《Effective Objective-C》阅读笔记(中)

目录 接口与API设计 用前缀避免命名空间冲突 提供“全能初始化方法” 实现description方法 尽量使用不可变对象 使用清晰而协调的命名方式 方法命名 ​编辑类与协议命名 为私有方法名加前缀 理解OC错误模型 理解NSCopying协议 协议与分类 通过委托与数据源协议进行…

Hbase客户端API——语句大全

目录 创建表&#xff1a; 插入数据&#xff1a; 删除数据&#xff1a; 修改数据&#xff1a; 查询数据&#xff1a;Get 查询数据&#xff1a;Scan 查询数据&#xff1a;过滤查询 创建表&#xff1a; 检验&#xff1a; 插入数据&#xff1a; 验证 一次多条数据插入 验证&…

MQ(Message Queue)

目录 MQ(Message Queue)基本概念 为什么要使用消息队列&#xff1f; 使用消息队列有什么缺点&#xff1f; 如何保证消息不丢失?(如何保证消息的可靠性传输?/如何处理消息丢失的问题?) 通用的MQ场景&#xff1a; RabbitMQ如何保证消息不丢失&#xff1f; 生产者丢数据…

计算机网络————(三)

前文二 前文一 Websocket协议 是一种存在TCP协议之上的协议 当客户端需要了解服务器是否更新就需要不断给客户端发送请求询问是否更新&#xff0c;这行会造成服务端压力很大 而Websocket相当于服务器一旦更新了就会给客户端发送消息表明自己更新了&#xff0c;类似客户端订阅…

【音视频】音视频录制、播放原理

一、音视频录制原理 通常&#xff0c;音视频录制的步骤如下图所示&#xff1a; 我们分别从音频和视频开始采样&#xff0c;通过麦克风和摄像头来接受我们的音频信息和图像信息&#xff0c;这通常是同时进行的&#xff0c;不过&#xff0c;通常视频的采集会比音频的采集慢&…

deepseek 导出导入模型(docker)

前言 实现导出导入deepseek 模型。deepseek 安装docker下参考 docker 导出模型 实际生产环境建议使用docker-compose.yml进行布局&#xff0c;然后持久化ollama模型数据到本地参考 echo "start ollama" docker start ollama#压缩容器内文件夹&#xff0c;然后拷贝…

基于Redis 的分布式 session 图解

Redis 分布式 Session 工作原理 1. 传统 Session 的问题 在传统单服务器环境中&#xff0c;HTTP Session 存储在应用服务器的内存中。这在分布式系统中会导致问题&#xff1a; 用户的请求可能被分发到不同服务器&#xff0c;导致会话不一致服务器宕机会导致会话丢失需要依赖…