面试官经常问的性能测试面试题有哪些?该怎么回答?
前言
我近几日时常会收到朋友们关于性能测试面试题的咨询,想着写一篇关于性能测试面试题的文章。不过这类测试通常用得较少的知识点,在实际面试中却常常会被涉及到底线是什么?我想通过这篇文章来探讨一下相关问题。为什么会想到分享这个话题呢?因为我身边有个同事前几天 similarly went through a similar situation. 在一次面试中正好碰到了关于性能测试的问题, 当时回答不上来结果自然是不合格了. 这件事给我留下了深刻的印象, 于是决定系统地整理一下相关内容.

大家好呀!我想和大家分享一些关于性能测试面试题的经验总结呢!这些都是我自己收集整理而来的经验总结哦。
1.常见的性能测试策略有哪些
参考答案:
基准场景测试,并发(边界条件)并发模拟中继, 复杂业务场景模拟, 性能压力条件下系统响应评估, 疲劳运行状态下的系统稳定性验证, 极限性能检测, 大规模数据吞吐量实验
2.完成一个性能测试项目,请阐述你的实施流程:
参考答案:
测试设计阶段:
1)了解被测系统的性能需求,定义测试目标和范围;
2)了解系统的技术信息,如系统架构等;
确定测试方案、进度安排,并制定相应的测试计划;同时明确场景模拟方案及相关的测试数据需求。
4)同相关人员协商讨论测试方案;
5)创建数据采集模板;在进行不同项目的性能测试时,应根据项目需求分别收集相应的数据;设计一个更适合当前需求的数据采集模板。
测试环境准备:
1)技术准备工作;
2)确定性能测试工具的选择;
3)在制定测试方案时需考虑的技术要点;
4)数据收集方案的具体实施步骤;
5)例如,在实际操作中需要关注哪些资源监控细节?
2)搭建测试环境;
3)创建初始数据;如虚拟用户使用的账号等;
测试执行阶段:
1)录制脚本;
2)调试脚本;
3)执行场景;
4)收集测试数据,并简单整理;
测试分析阶段:
1)分析测试数据,报告整理
3.性能指标解释:
1)并发:
用户在同一时刻对系统执行操作,一般指做同一件事情或操作。
2)请求响应时间:
从 client 端发出请求到得到响应的整个时间;
包括:client 端响应时间+网络响应时间+Server 端响应时间。
3)TPS(Transaction Per Second)
秒内可处理的交易或事务数量。它是用来衡量系统处理能力的重要指标。TPS在LoadRunner中是一个关键的性能参数指标。
秒内可处理的交易或事务数量。它是用来衡量系统处理能力的重要指标。TPS在LoadRunner中是一个关键的性能参数指标。
4)资源利用率
对不同资源的使用程度,如 CPU,I/O,内存,网络
4.性能测试中tps如果上不去原因有哪些?
1、网络带宽
在压力测试实验中时有需求场景需要模拟成千上万条用户并发请求。若短时间内发送的数据包数量超过网络带宽承载能力,则会导致网络资源竞争现象发生。最终影响服务端接收处理请求的数量未达到预期处理上限。
2、连接池
由于可利用的连接数量不足, 会导致请求长时间挂起. 连接池通常分为常见的服务器端... (比如 Tomcat) 和数据库端... (也可视为最大允许的数量).
3、应用问题,如垃圾回收机制
在常见的应用服务器中(例如Tomcat),由于Java堆栈内存采用动态分配策略,并且其具体的垃圾回收机制基于特定算法设计。系统运行过程中会频繁地进行Minor garbage collection(GC)操作以释放Eden区和Survivor区的空间;而老年代执行Full GC操作较为频繁。这些持续的操作将导致系统的吞吐量(TPS)受到影响;此外还需注意到垃圾回收过程自身会消耗一定资源
4、数据库配置
在高并发场景下,当应用程序向系统发送请求数据时,在同时涉及多个数据库表的操作时(即进行跨表查询操作),若数据库连接池的最大连接数不足,并且所使用的SQL语句未索引也未绑定变量;或者未实施主从分离和读写分离策略,则会导致相应的事务处理速度降低,并进而影响系统的吞吐量(TPS)。
5、通信连接机制
采用顺序连接、并行处理、延迟连接以及数据传输通道等多种数据传输方式时,在不同场景下也会间接影响其吞吐量(TPS)。
6、硬件资源
包括CPU(配置、使用率等)、内存(占用率等)、磁盘(I/O、页交换等)。
7、压力机
例如JMeter,在单机端的负载能力较为受限的情况下,在实际应用中若模拟环境中的用户请求量超过单机处理能力时,则会间接导致TPS指标受到影响。此时建议采用分布式压力测试的方式来缓解单机处理压力。
8、业务逻辑
业务解耦度较低,较为复杂,整个事务处理线被拉长导致的问题。
9、系统架构
例如涉及缓存服务是否存在、缓存服务器的配置参数设置以及相关的性能指标如命中率、穿透概率和过期机制等因素都会对测试结果产生影响。
性能测试执行时,是否有必要进行参数化设置?这种做法的主要原因是什么?在使用JMeter进行测试时,请指导如何配置测试用例参数?
是。模拟用户真实的业务操作。
创建参数列表,用参数替换固定的文本
6.请问您是如何得到性能测试需求?怎样针对需求设计、分析是否达到需求?
在查看需求文档,从中提取性能测试需求 ,制定性能测试范围;
基于业务信息构建针对不同用户的典型行为路径进行模拟测试,并通过分析和评估确定需要重点关注的性能参数。
执行场景用例后根据提取关键性能指标来分析是否满足性能需求。
7.吞吐量和响应时间的关系?
吞吐量是指正常情况下,设备能接受的最大速率
响应时间是指从指令发出到返回所用的时间
响应时间越短说明吞吐量越大。
8.Loadrunner的三大组件是什么
Virtual User Generator虚拟用户生成组件,录制和调试脚本。
Controller 场景控制组件,用于设置场景,运行脚本,监控资源
Analysis 结果分析组件,用于查看脚本运行结果,分析性能测试结果
9.画出系统架构图?
示意图:

总结
文章就写到这里了哈,喜欢的记得点赞收藏加关注哟。

