Jemeter

Jemeter 接口大多测试接口软件工程领域接口API Application Programming Interface是一组预先定义的规则、协议和工具用于构建软件和应用程序。明确规定了不同软件组件之间如何进行交互和数据交换。接口测试则是一种直接对应用程序的编程接口进行测试的软件测试类型绕过了用户界面UI直接验证系统核心业务逻辑的正确性数据的安全可靠性以及服务的性能表现。接口测试的核心价值实现测试左移极大地提前了发现问题的时间降低了修复成本提升测试效率接口测试的执行速度要快几个数量级增强测试覆盖率保障系统稳定性集成测试的一种Jmeter安装Jmeter本身是一个纯Java开发的应用程序其运行依赖于Java虚拟机JVM。因此安装JMeter之前必须确保系统中已正确安装和配置JDK。区分手动安装和自动安装的区别自动安装解压配置环境变量注册表。安装Jmeter我就不说到官网下载即可。然后配置环境变量并添加到path中。启动Jmeter可以有两种方式在解压目录中bin目录中点击jmeter.bat或者直接命令行输入jmeter界面与组件启动时会默认打开命令行不要关闭命令行。如上所示的分区文件的管理组件的管理实现的管理辅助的按钮组件的列表组件的面板核心组件在测试过程中必不可少的内容测试计划Test Plan是所有测试元素的顶级容器描述了一系列测试步骤的执行逻辑任何测试脚本都必须置于测试计划之下线程组Thread Group用于模拟一组虚拟用户执行用例决定了用户总数、启动的节奏、测试的执行次数或时长取样器Sampler用于模拟用户的具体动作通常是向服务器发送请求有多种类型其中最常用的是HTTP取样器因为绝大部分是Http接口。是大部分非核心组件的服务对象辅助组件监听器Listener展示取样器工作细节和结果配置元件Cofig Element配置修改取样器的设置定时器Timer延迟取样器的执行断言Assertion:判断取样器的执行前置处理器Pre Processor取样器之前自动执行后置处理器Post Processor取样器之后自动执行逻辑控制器Logic Controller对取样器进行逻辑控制分支、条件、循环、跳过实战放置多个接口可以通过按钮实现禁用与启动的切换。如图所示可以创建多个线程组每个线程组如果同时测多个接口可以创建多个接口请求或者创建多个线程组每个线程组可以设置不同线程数量进行测试。然后双击线程组新增取样器中HTTP请求找一个访问接口例如请求URL为http://xx.xxx.xx.xxx/api/user/login显然这是按照协议、域名、端口、路径构成的所以可以对应拆分到HTTP请求面板中进行填写要看请求结果怎么样可以添加辅助组件的监听器——》查看结果树。后续性能测试会用到汇总报告、聚合报告等。注意修改请求头例如要求application/json但实际请求请求头为对返回数据格式可以按照json格式展示。如何修改请求头可以利用辅助组件中的配置元件。添加Http信息头管理器性能测试响应时间图和TPS曲线图性能测试过程中通常需要观测接口TPS和响应时间的曲线图从而明确整个压测过程中接口性能是否表现稳定接口TPS和响应时间的曲线图也是性能测试报告中必不可少的内容。这两个内容对应了Jmeter中监听器为Response Times Over TimeTransactions per Second上述Jmeter没有自带影刺需要安装插件然后在插件中安装插件下载地址下载插件后把jar包放到 lib/ext 目录然后重启Jmeter可以在选项最后看到安装的插件上述监听器需要安装Standard Set插件然后重启即可。然后就可以添加响应时间曲线图TPS曲线图了。响应时间图直观看到响应时间趋势能看到响应时间随时间的变化趋势不同百分位的响应时间实时更新的曲线图。主要用于监听整个测试期间响应时间的变化趋势帮助判断系统是否存在性能退化。分析技巧如果曲线持续上升说明系统性能在恶化如果曲线平稳说明系统性能稳定关注90%和95%分位值它们反映大多数用户的体验坐标轴含义横坐标 (X轴)测试运行的持续时间Elapsed time通常以秒sec或毫秒为单位的时间间隔。纵坐标 (Y轴)响应时间Response times单位为毫秒ms。代表从发送请求到接收完整响应所耗费的时间。能看出的信息与诊断平稳的直线理想状态。说明在当前的并发压力下系统处理每个请求的能力非常稳定。持续上升的趋势最典型的“性能衰减”信号。如果曲线随着测试进行不断攀升说明系统遇到了瓶颈。常见原因包括内存泄漏、数据库连接池未释放、缓存失效或慢 SQL 导致的数据积压。突然的毛刺或飙升如果响应时间在某个时间点突然急剧增加可能意味着系统在该时刻遇到了突发异常如垃圾回收 GC 停顿、外部依赖超时或触发了限流机制。TPS 图用于分析系统的吞吐量处理能力反映了系统在同一时间内处理业务的最大能力。坐标轴含义横坐标 (X轴)测试运行的持续时间Elapsed time通常以秒为单位。纵坐标 (Y轴)每秒处理的事务数/请求数TPS/QPS。数值越高说明系统处理能力越强。在部分插件中通常会用不同颜色如红色代表成功绿色代表失败来区分事务状态。能看出的信息与诊断平稳的直线理想状态。说明在压力恒定的情况下系统整体处理能力稳定没有发生性能退化。持续下降的趋势危险信号。如果 TPS 曲线开始持续走低往往意味着系统处理能力在衰减。这通常与响应时间图“持续上升”同时出现说明请求处理变慢导致单位时间内能完成的请求数减少。剧烈波动说明系统性能不稳定可能在临界负载下频繁触发熔断、降级或资源争抢。先上升后趋于平稳这是压测寻找“拐点”时的正常表现。随着并发量增加TPS 逐渐升高当达到系统处理极限时TPS 会达到峰值并保持水平。在性能分析中这两张图必须联动观察才能得出准确结论最佳状态响应时间曲线平稳 TPS 曲线平稳。性能瓶颈预警响应时间曲线持续上升 TPS 曲线持续下降。这说明系统正在走向崩溃请求开始大量排队必须立即停止加压并排查瓶颈如优化数据库、扩容或修复代码泄漏。此外还要随时观测服务器状况例如右键监听器-添加jpgc-Transactions per Second组件jpgc-Response Times Over Time组件jpgc - PerfMon Metrics Collector组件。组件依次查看的内容是TPSRT监控服务器资源如cpu、内存、IO。压测步骤https://blog.csdn.net/weixin_45720473/article/details/128221771https://blog.csdn.net/weixin_72982596/article/details/134011108聚合报告性能测试中需要重点关注的数据有请求数、平均响应时间、最小响应时间、最大响应时间、吞吐量和错误率JMeter 的聚合报告Aggregate Report是性能测试中最核心的结果分析工具。可将这些指标分为三大类基础负载指标、响应时间指标和系统能力指标基础负载指标这部分反应测试的整体规模和稳定性Label每个 JMeter 的元素如 HTTP请求都有一个 Name 属性Label显示的就是 Name 属性的值#样本总共发给服务器的请求数表示这次测试中一共发出了多少个请求。如模拟100个线程数即100个用户每个线程迭代10次这里就显示100*10 1000Error%异常率容错率失败请求占总请求的百分比通常要求错误率1%, 如果5%说明系统存在严重问题。平均值平均响应时间默认情况下是单个请求的平均响应时间。响应时间指标反映了用户真实的等待体验单位通常为毫秒ms平均值所有请求响应时间的算数平均值容易受到极端慢请求的拉高影响因此不能仅凭平均值判断性能中位数50 用户的响应时间比平均值更能反应典型用户的体验不受极端值的影响90%/ 95%/ 99% 百分位90%/ 95%/ 99% 用户的响应时间反映了绝大多数用户的真实体验如果 90% Line 和 Average 差距过大说明系统存在明显的响应时间波动长尾效应可能存在慢查询或缓存失效。最小值最小响应时间最大值最大响应时间Max值通常是性能瓶颈的警示指标异常%请求错误率即错误请求数/请求总数吞吐量——默认情况下表示每秒完成的请求数Request per Second接收KB/Sec每秒从服务器端接收到的数据量发送KB/Sec每秒发送到服务器端的数据量系统能力指标这部分反映了服务器的处理效率和网络状况。Throughput吞吐量系统每秒处理的请求数Requests per Second。分析指南这是衡量系统处理能力的核心指标类似 TPS。吞吐量越高说明服务器处理能力越强。Received KB/sec Sent KB/sec接收/发送吞吐量每秒从服务器接收或发送到服务器的数据量KB。分析指南用于评估网络带宽压力。如果这两个值达到了服务器或压测机的带宽上限说明瓶颈在网络而非代码。Jmeter响应时间和tps监听器使用教程Jmeter专栏JMeter的基本使用与性能测试完整入门篇保姆式教程Jmeter响应时间和tps监听器使用教程导出等