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

下载本文档

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

文档简介

JMeter接口测试面试题及详细答案(实战版)一、基础认知类(入门必问)1、你日常用JMeter主要做什么工作?说说你的使用场景参考答案:我工作中主要用JMeter做接口功能测试、接口回归测试、简单的接口性能压测。日常迭代中,新开发的接口会用JMeter调试参数、校验返回数据、验证异常场景;版本上线前会批量跑接口回归脚本,保证迭代不影响旧功能;同时会针对核心支付、登录、查询接口做并发压测,排查接口瓶颈。2、JMeter的核心组件有哪些?各自的作用是什么?参考答案:常用核心组件主要分五类,都是日常高频使用的:测试计划:JMeter脚本的根节点,所有线程组、取样器、配置都在测试计划下,是整个脚本的容器。线程组:控制测试的并发用户数、执行次数、运行时长,所有接口请求都要放在线程组下执行。常用的有普通线程组、阶梯式线程组。取样器:核心请求组件,用来发送各类接口请求,比如HTTP请求、Dubbo请求、JDBC数据库请求,是真正发起接口调用的组件。配置元件:用来统一配置参数,不用每个请求单独设置。比如HTTP信息头管理器、参数化CSV文件、用户自定义变量、Cookie管理器。断言:自动校验接口返回结果是否正确,替代人工看返回值。常用响应断言、JSON断言、大小断言、持续时间断言。监听器:查看测试结果和日志,比如查看结果树、聚合报告、SummaryReport,主要用来分析接口响应时间、成功率、报错信息。前置/后置处理器:前置处理器在请求发起前执行,比如获取token、加密参数;后置处理器在请求结束后执行,常用正则提取器、JSON提取器,用来提取接口返回的参数,供下一个接口调用。3、JMeter为什么适合做接口和性能测试?相比Postman有什么区别?参考答案:Postman更偏向于接口调试、单次请求测试,操作简单,适合开发自测、单接口快速验证,但不支持高并发,批量执行和压测能力很差。而JMeter主打批量接口回归、高并发压测、分布式测试,支持多线程模拟真实用户并发,能精准统计TPS、响应时间、错误率,还能搭配插件做稳定性测试,适合测试人员做系统化的接口自动化和性能测试,这也是工作中我们优先用JMeter做接口测试的核心原因。4、JMeter支持哪些协议的接口测试?参考答案:日常工作中常用的都支持,主要包括HTTP/HTTPS、TCP、Dubbo、Redis、JDBC数据库、FTP,同时支持MQ消息队列测试,基本覆盖后端主流接口协议,我日常主要测HTTP/HTTPS和Dubbo接口。二、实操核心类(面试重点)1、说说你在JMeter中怎么做接口参数化?有几种方式?参考答案:工作中常用三种参数化方式,根据场景选择使用:用户自定义变量:适合固定不变的公共参数,比如接口域名、固定端口,一次定义,所有接口引用,修改时只改一处即可。CSV数据文件设置:最常用,适合批量动态参数,比如批量账号登录、批量新增数据。准备txt/csv参数文件,一行一组参数,JMeter逐行读取,实现不同请求传不同参数,支持循环遍历。函数助手参数化:适合随机参数,比如随机手机号、随机数字、时间戳,用__random、__time、__UUID函数生成动态参数,不用手动维护参数文件。2、接口之间有依赖,比如登录token给后续接口使用,你怎么处理?参考答案:通过后置处理器提取参数+变量引用解决接口依赖,具体步骤:第一步,执行登录接口,在登录接口下添加JSON提取器(现在接口基本都是JSON返回,比正则提取更精准);第二步,配置提取器,设置变量名、JSON路径表达式,精准提取返回的token值;第三步,后续需要token的接口,在请求头中引用变量${token},即可实现参数传递。如果是老旧非JSON接口,会用正则表达式提取器提取参数,适配不同场景。3、JMeter中HTTP信息头管理器和Cookie管理器的作用是什么?什么时候用?参考答案:HTTP信息头管理器:统一管理请求头参数,比如Content-Type、token、设备信息、签名参数。所有接口需要公共请求头时,放在线程组全局生效,不用每个接口单独添加,简化脚本。Cookie管理器:自动存储和携带接口返回的cookie,适合传统会话登录的接口场景。登录后服务端返回的cookie,管理器自动保存,后续请求自动携带,维持会话状态,不用手动提取cookie。现在多数项目用token替代cookie,但老旧项目仍会用到。4、你怎么用JMeter做接口断言?常用的断言方式和场景?参考答案:断言是为了自动判断接口请求成功或失败,不用人工核对返回值,常用四种:响应断言:通用型,校验响应体、响应头、响应码是否包含指定关键字,比如校验返回“success”“200”,适配所有接口。JSON断言:针对JSON格式返回,精准校验某个字段的返回值,比如校验code=200、status=true,精准度最高,日常使用最多。持续时间断言:性能测试常用,校验接口响应时间是否在预期范围内,比如设置接口响应不超过500ms,超时直接判定失败。大小断言:校验响应数据大小,防止接口返回异常空数据或超大数据。5、JMeter脚本如何实现接口自动化回归?参考答案:我会搭建完整的回归脚本套件,步骤如下:首先,按业务模块拆分线程组,比如登录模块、用户模块、订单模块,每个模块下编写对应接口脚本,做好参数化、断言、依赖参数提取;其次,配置全局变量、请求头、cookie管理器,保证脚本通用性,切换测试环境、预发环境只需修改域名变量;最后,通过批量执行测试计划,搭配监听器生成完整报告,版本迭代后直接运行整套脚本,快速验证所有接口功能是否正常,替代人工逐个测接口,提升回归效率。三、性能测试进阶类(中高级面试必问)1、说说JMeter中线程数、并发数、TPS、响应时间的关系参考答案:线程数:模拟的虚拟用户数,线程数越多,并发压力越大;并发数:同一时刻同时发起请求的用户数,线程数设置合理的循环时间,就能实现持续并发;TPS:每秒服务器处理的请求数,代表接口的吞吐能力,TPS越高接口性能越好;响应时间:客户端发起请求到接收完整响应的时间,包含网络、服务处理、数据库查询时间。正常场景下,在服务器承载范围内,增加线程数,TPS会同步上升,响应时间基本稳定;当线程数超过服务器瓶颈后,TPS会下降,响应时间会大幅飙升,错误率升高,这就是服务器性能瓶颈点。2、你做压测时,阶梯压测和固定并发压测怎么选?参考答案:阶梯压测(步进线程组):适合找接口最大并发瓶颈。逐步增加并发数,比如每30秒增加10个用户,观察TPS、响应时间、错误率变化,找到接口能承载的最大稳定并发数。固定并发压测(普通线程组):适合稳定性压测。确定合理并发数后,长时间持续压测(10分钟、30分钟),排查接口是否存在内存泄漏、连接池耗尽、超时堆积等问题,模拟线上稳定运行场景。3、压测中聚合报告核心看哪几个指标?指标多少算合格?参考答案:核心看4个指标:错误率:最核心指标,正常业务接口压测错误率必须为0,超过0%说明接口存在异常、超时、报错;平均响应时间:普通查询接口一般要求500ms以内,复杂查询、报表接口1s以内;90%响应时间:比平均值更真实,排除极端值影响,90%的请求都能在预期时间内返回,是企业验收核心指标;TPS:结合业务需求判断,核心交易接口要求高TPS,普通后台接口TPS要求相对较低,满足线上峰值即可。4、JMeter压测时,本机瓶颈和服务端瓶颈怎么区分?参考答案:压测出现TPS上不去、响应时间高时,先排查本机,再排查服务端:本机瓶颈特征:电脑CPU、内存占用率满负荷,JMeter控制台卡顿,TPS稳定不变且很低,优化方式:增加JMeter堆内存、关闭多余监听器、使用分布式压测。服务端瓶颈特征:本机资源空闲,服务器CPU、内存、数据库CPU、连接池占用过高,接口报错、超时增多,TPS达到峰值后下降,这就是服务端性能瓶颈,需要后端优化代码、SQL、缓存。5、什么是JMeter分布式压测?什么时候需要用?参考答案:单台电脑性能有限,并发数过高时本机资源会先顶满,无法模拟高并发场景。分布式压测就是用一台主控机、多台压力机,统一执行脚本,分担压力,汇总测试结果。一般需要模拟1000并发以上、大流量压测时,会使用分布式压测,解决单机器压力不足的问题。四、报错排查&实战问题类(高频面试真题)1、JMeter请求返回401、403、404、500,分别是什么原因?怎么排查?参考答案:404:接口地址错误、路径写错、服务未部署,核对请求URL、环境地址即可。401:未授权、token失效、未携带登录凭证,重新获取有效token,检查请求头是否正常携带。403:权限不足、接口禁止访问、IP被拦截,排查账号权限、服务白名单、接口访问权限配置。500:服务端代码报错、SQL异常、空指针、参数不合法,优先查看服务端日志,核对入参格式、参数是否缺失。2、JMeter压测过程中,接口偶尔超时,怎么定位问题?参考答案:分四步排查:第一,查看请求入参,确认参数是否正常,是否存在参数缺失、格式错误导致服务处理超时;第二,查看网络情况,测试环境网络波动也会导致偶发超时;第三,查看服务端日志、数据库监控,是否存在SQL慢查询、数据库锁表、缓存失效导致响应变慢;第四,查看服务器资源,CPU、内存、连接池是否耗尽,高并发下资源不足会引发批量超时。3、JMeter运行脚本报错:连接超时、连接被重置,如何解决?参考答案:大概率是并发过高,服务端连接数不足或防火墙限制。解决方式:一是适当降低并发数,观察是否恢复;二是检查服务端Tomcat、连接池最大连接数配置;三是增加JMeter请求超时时间,关闭多余监听器减少资源占用。4、为什么JMeter压测时,关闭所有监听器性能会更好?参考答案:监听器是实时记录、展示请求数据的组件,开启后会占用大量本机CPU和内存资源。高并发压测时,过多的日志打印、数据展示会消耗本机性能,导致压测结果不准。正式压测时,只保留聚合报告,关闭查看结果树等可视化监听器,能最大程度减少本机性能损耗,保证压测数据真实。五、面试加分拓展题1、你如何保证JMeter测试脚本的稳定性?参考答案:第一,所有动态参数全部做参数化、动态提取,不写死固定参数;第二,完善断言,不仅校验状态码,还要校验核心业务字段,避免假成功;第三,添加异常处理,用响应断言、结果判断规避无效请求

温馨提示

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

评论

0/150

提交评论