性能测试面试题

本文分享了一位经验丰富的性能测试专家整理的面试常见问题,涵盖了项目背景、使用的性能工具(如jmeter、loadrunner)、测试场景、监控的系统指标、测试文件产出、脚本开发要点、数据库压力测试方法以及性能测试计划和难点。此外,文章还讨论了稳定性测试的重要性以及性能测试报告的内容结构。
摘要由CSDN通过智能技术生成
从事过多年性能测试,被面试过,也面试过别人。整理了一份被问得多的面试题,希望对你有用!
  • 性能测试的项目经历

描述下在那个项目背景下进行了性能测试;

用的是什么性能工具(比如:jmeter、loadrunner);

测试的场景涉及到哪些业务(比如:登录,注册,下单等);

一般会监控哪些指标(平均响应时间,TPS,交易成功率,CPU、内存、数据库慢sql);

会产出什么文件(测试脚本、测试场景、测试报告、调优报告)

  • loadrunner/jmeter使用过程中,用了哪些协议?使用那些函数?

loadrunner测试过程中使用socket、webservice、http协议(需要熟悉下这些协议脚本的编写);

比如,会用lr_eval_string(),进行返回结果的判断,多用在断言;

jmeter测试过程中使用dubbo协议和http协议;

比如:__Random随机函数

__RandomDate随机日期,一般用在在参数化部分;

__javaScript函数用来做数据的格式处理

  • 脚本开发中哪些是最基本的?

一个完整的脚本从业务开始,梳理清楚要测试的业务。用录制的方式或自己编写的方式进行开发。

过程中基本的点:参数化、关联、断言都是最基本的。

需要注意的是,参数化,最好不要使用beanshell去生成,最好还是外部引用的方式。自己写的脚本也有可能成为性能瓶颈。

  • jmeter压测数据库是怎么操作的?

需要对应数据库的jdbc安装,之后对数据库进行链接;

编写对应的sql操作,对数据库进行压测;(一般测试查询类的会多一点),主要关注是否是有慢sql,对数据库服务器的压力;

  • 性能测试过程中关注那些指标?你是怎么监控这些指标?

服务器一般关注:CPU、内存使用率、FGC等情况;

中间件一般关注:redis的读写情况;具体看项目用的什么中间件。

业务方面会对接口的平均响应时间,90%响应时间,TPS,交易成功率进行监控;

数据库关注:服务器CPU、内存使用情况,是否有慢sql。

监控方式:看公司,如果小型公司,服务器一般会采用nmon或者top命令进行实时或者持续的数据监控;

运维团队完整的公司,有自己的平台,会用granfana、pinpoint等进行监控。

目前很多服务器是在阿里云部署,阿里云也支持平台监控(包括服务器资源、慢sql这种);

  • 监控的基准是什么?怎么获取这些基准信息?

如果有运维数据,就会根据运维数据设置指标。比如:线上的下单导致服务器最高在多少,那么压测的时候可以将这个数据,作为基准。

如果没有数据支持,像平均响应时间(采用常规约定:2~5~8规则),CPU在80%以下,做为基准(80%是服务器能良好运行,也是高额负荷的一个阶段)

  • 性能测试场景怎么设置的?根据什么指标,设置性能测试场景?

性能场景的设置:一般根据业务指标,或者线上数据配比、或者同类型系统数据得到;

设置的场景一般包括:基准测试(主要是看在最基础的情况下,单用户迭代100次的TPS响应时间,即属于冒烟测试,也是为混合场景的业务配比做基准参考)

单场景测试(目的是获取接口所能达到的最优结果)

混合场景测试(混合场景的测试业务配比可能是根据TPS来配置,也可能是根据业务上的并发线程数来配置)主要目的是为了验证在混合的业务里面,对接口是否有很大的性能影响,找到一些单场景测试不出来的性能瓶颈;

稳定性场景测试(去混合场景中最优的一组,设置24、48小时等,进行测试。主要目的是未来验证系统是否存在内存泄漏)

  • 测试过程中会使用哪些linux命令进行问题排查?

top(CPU的监控)、free(内存的监控)、iostat(磁盘读写监控)、jstact、jstack

  • top命令的使用场景?怎么使用?

top命令一般用在性能测试实时观察CPU等指标的时候;

执行top命令可以看到进程、CPU、内存的使用信息;再根据ps N (N 是进程编号),查看详情;也可以通过top获取的进程,进行jstack查看进程信息

  • 性能测试计划包括那些?

一般包括:时间、负责人、压测的数据准备、脚本准备、场景准备、方案、报告的编写(主要是时间规划)

  • 压测的数据来源?接口来源?

数据、接口来源:一般是业务方提供,或者生产数据推理(比如:大促的时候会对接口进行整理,可以得到接口的实际调用量,得到一些接口占比。数据量和监控指标也是类似)

  • 压测测试数据怎么造

sql插入、自己跑性能脚本或自动化脚本造数据,或者自己洗生产上的数据到测试环境。具体情况,具体分析。

测试数据包括两部分:一个是铺底数据,一个是参数化数据。

  • 性能测试过程中的难点、痛点

前期的需求调研、后期的调优、及脚本和参数文件的管理,都是痛点;

需求的调研,影响着场景的设置(很多情况下也对方并不知道自己要什么,所以只能在有限的基础上,一直加压,获取接口顶峰数据(比如:CPU在80%,响应时间满足2、5、8定律,失败率不能高于3%))

调优是需要多方共同协作的事情,比如压测某个接口,在压测过程中,100的虚拟用户并发TPS不高,但是服务器、数据库CPU的使用率很高。此时需要对链路进行分析,查看整个调用链路,那个接口耗时长,需要足够的耐心,一步步分析,调优,再压。

压测结束,对性能测试脚本、参数文件的管理,因为会涉及到文件的复用、公用问题。最好的方式是开发一个性能测试平台,在上面进行性能的压测,脚本的存储。

  • 稳定性测试是为了测试什么?

稳定性测试,一般采用的场景是压测的最优数据进行(比如:TPS满足的情况下,CPU在80%左右的场景),稳定性场景压测最短在24小时,主要是为观察是否有内存泄露问题的存在;

  • 会编写性能测试报告吗?会涉及那些内容?

性能测试报告一般包括:背景、压测的目的、压测的环境、压测的拓扑图、压测涉及的数据量、压测的场景、不同场景压测的结果、压测数据总结。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值