JMeter 面试题及详细答案(实战接地气版)_第1页
JMeter 面试题及详细答案(实战接地气版)_第2页
JMeter 面试题及详细答案(实战接地气版)_第3页
JMeter 面试题及详细答案(实战接地气版)_第4页
JMeter 面试题及详细答案(实战接地气版)_第5页
已阅读5页,还剩2页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JMeter面试题及详细答案(实战接地气版)一、基础认知类(初级面试必问)1、简单说下你对JMeter的理解,它是做什么的?参考答案:JMeter是Apache开源的压力测试、性能测试工具,纯Java开发,跨平台使用。主要用来做接口性能测试、压测、并发测试、稳定性测试,也可以做简单的功能接口测试。它最大的优势是免费开源、轻量、支持多协议,日常工作中主要用来模拟大量用户并发请求,检测接口的响应时间、吞吐量、错误率,排查服务性能瓶颈。2、JMeter支持哪些协议?日常常用的有哪些?参考答案:支持的协议很多,日常工作高频使用的就三种:1、HTTP/HTTPS:最常用,所有前后端接口压测都用这个;2、Dubbo:微服务项目常用,直接压测dubbo接口;3、JDBC:数据库压测,测试SQL执行效率、数据库并发能力。除此之外还支持TCP、FTP、MQ、Redis等,但是项目里用得比较少。3、JMeter的核心组件有哪些?各自作用是什么?参考答案:我日常编写脚本常用的核心组件就这几类,分工很明确:1、测试计划:脚本的根节点,所有线程、取样器、配置都在它下面;2、线程组:模拟用户,控制并发数、运行时长、循环次数,是压测的核心;3、取样器:发请求的,比如HTTP请求、Dubbo请求,真正发起接口调用;4、配置元件:提供参数和配置,比如请求头管理器、参数化配置、JDBC连接配置;5、前置/后置处理器:请求前后做处理,前置一般做参数预处理,后置主要提取响应数据、做关联;6、断言:判断接口请求是否成功,自动校验响应结果,代替人工看返回值;7、监听器:查看测试结果,比如响应时间、吞吐量、报错情况,用来分析数据。4、线程组分为哪几种?实际工作中怎么选?参考答案:JMeter三种常用线程组,我根据测试场景区分使用:1、普通线程组:最常用,固定并发数,一直循环执行,适合常规压测、稳定性测试;2、阶梯式线程组(递增线程组):逐步增加并发数,适合做性能拐点测试,找到系统最大承受并发;3、稳定吞吐量线程组:固定TPS跑压测,适合做恒定流量的性能测试,测试系统在固定吞吐量下的稳定性。二、脚本实操类(中级高频)5、JMeter怎么做接口参数化?有几种方式?参考答案:工作中常用三种参数化方式,不同场景用不同的:1、用户自定义变量:适合固定参数、全局通用参数,比如域名、端口,改一处全局生效;2、CSV数据文件设置:最常用,适合批量参数、动态数据,比如批量手机号、账号密码,一行一条数据,循环读取;3、函数助手:用随机数、时间戳、UUID函数,适合需要动态生成数据的场景,比如随机订单号、随机参数。6、什么是接口关联?JMeter怎么实现关联?参考答案:接口关联就是上一个接口的返回值,作为下一个接口的请求参数,比如登录返回token,后续所有接口都要带token请求,这就是最典型的关联。工作中主要用两种后置处理器实现:1、正则表达式提取器:适配大多数普通文本、JSON返回,通用性强;2、JSON提取器:专门针对JSON格式响应,写法简单、精准,不会匹配错误,现在项目基本优先用这个。7、JMeter断言你常用哪些?怎么判断压测结果是否合格?参考答案:常用三种断言:响应断言、JSON断言、持续时间断言。1、JSON断言:最常用,校验JSON返回的状态码、提示信息,比如code=200;2、响应断言:校验响应文本、响应码,适配非JSON接口;3、持续时间断言:限制接口最大响应时间,超过阈值直接判定失败,符合性能测试需求。压测合格标准一般看:断言无失败、错误率为0、平均响应时间达标、TPS稳定、无报错超时。8、JMeter中定时器的作用是什么?常用定时器有哪些?参考答案:定时器主要用来控制请求间隔,避免请求无限连发,模拟真实用户操作间隔,防止压测流量过于极端,和真实场景脱节。常用两种:1、固定定时器:固定间隔,每个请求之间休眠固定时间;2、高斯随机定时器:随机间隔,更贴近真实用户手动操作的随机性,压测结果更真实,正式压测优先用这个。9、你平时怎么做接口Cookie、Session保持?参考答案:直接在测试计划或线程组下添加HTTPCookie管理器即可。它会自动捕获接口返回的Cookie、Session,自动携带到下一次请求,不需要手动提取,同一个线程下全程保持会话,完全模拟用户登录状态。三、性能压测核心(进阶面试重点)10、解释下TPS、QPS、响应时间、并发数的区别?参考答案:这几个是性能测试核心指标,我日常分析数据天天用:并发数:同一时刻同时发起请求的用户/线程数,代表系统承受的同时请求量;响应时间(RT):接口从请求发起到返回结果的总时间,越小接口越快;QPS:每秒查询数,侧重单次请求查询,偏向业务查询接口;TPS:每秒事务数,一个事务可以包含多个请求,是压测核心指标,代表系统每秒处理的业务量,性能瓶颈主要看TPS。11、压测中错误率高,你一般怎么排查问题?参考答案:我会按从简单到复杂的顺序排查,效率很高:1、先看JMeter报错日志:区分是请求参数错误、超时、连接失败、还是服务器返回500/400;2、核对脚本问题:参数化数据是否失效、token是否过期、请求头是否缺失、关联是否出错;3、查看服务器监控:CPU、内存、磁盘IO、网络带宽是否打满;4、查看服务日志:看接口是否抛异常、数据库是否慢SQL、连接池是否耗尽;5、最后确认是否是系统瓶颈:比如TPS上不去、线程阻塞、数据库锁等待等。12、JMeter压测超时一般是什么原因?怎么解决?参考答案:常见原因分客户端和服务端:客户端原因:JMeter超时时间设置太短、本机性能不足、机器资源瓶颈;服务端原因:接口响应慢、数据库慢SQL、服务器CPU/内存满载、线程池耗尽、网络延迟高。解决方式:先适当调大JMeter请求超时时间,再排查服务器资源,优化慢接口、优化SQL、调整服务配置。13、大并发压测时,JMeter本机瓶颈怎么解决?参考答案:JMeter单机并发有限,并发太高会出现本机CPU、内存占满,导致压测结果不准,我日常有几套固定优化方案:1、修改JMeterJVM堆内存,增大内存配置,避免内存溢出;2、关闭所有多余监听器,压测时只保留必要结果统计,减少资源占用;3、使用分布式压测,一台主控机、多台压力机,分担并发压力;4、压测脚本优化,减少多余处理器、循环逻辑,精简脚本。14、什么是分布式压测?为什么要用?简单说下流程参考答案:分布式压测就是多台机器一起施压,解决单机JMeter并发上限的问题。单机一般只能支撑1000以内并发,大并发场景必须用分布式。执行流程:1、多台从机启动JMeter服务,开启远程监听;2、主控机配置从机IP,统一管理脚本;3、主控机下发压测任务,所有从机同时执行压测;4、所有从机结果汇总到主控机,统一生成测试报告。四、实战场景&面试挖坑题15、JMeter能不能做功能测试?和Postman有什么区别?参考答案:可以做简单的接口功能测试,但日常基本不用,各司其职。Postman:主打功能调试、接口开发自测、单接口调试,操作简单、可视化强,适合日常开发联调;JMeter:主打性能、压测、高并发测试,功能测试效率低、操作繁琐,不适合单接口调试。16、压测中TPS波动很大,不稳定,是什么原因?参考答案:常见几个原因:1、服务器资源不稳定,CPU、内存波动大;2、数据库有慢查询、缓存失效、频繁GC;3、脚本有问题,参数不均匀、部分请求耗时极高;4、网络抖动、带宽不稳定;5、服务有定时任务、日志打印过多,抢占资源。17、你怎么定义一个接口性能达标?你的压测标准是什么?参考答案:我一般按照项目需求和行业通用标准判定:1、错误率:0报错,极端场景不超过0.01%;2、响应时间:普通接口200ms以内,复杂查询500ms以内;3、TPS:满足项目预估峰值并发,且长时间稳定不下降;4、资源使用率:CPU不超过75%,内存无溢出、无持续上涨。18、JMeter运行报错内存溢出(OOM),怎么解决?参考答案:1、修改jmeter.bat配置文件,调大JVM堆内存,默认内存太小;2、压测时禁用所有监听器,不要实时查看结果;3、减少脚本中多余的变量、数据存储,避免内存堆积;4、高并发场景使用分布式压测,分摊压力。五、报告输出类19、你平时怎么生成JMeter压测报告?报告核心内容有哪些?参考答案:我一般用命令行执行压测,生成HTML可视化报告,比GUI运行更稳定、结果更准确。报告核心内容:1、压测基础信息:并发数、压测时长、接口地址;2、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论