性能测试面试题库总结(40道精选题目)
共 4940字,需浏览 10分钟
·
2021-09-27 14:41
1) 什么是性能测试?
答案:系统在一定的压力情况下,查看cpu,内存,磁盘,网络带宽,TPS、响应时间、并发用户数、等各项指标,通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求,就是在特定的运行条件下验证系统的能力状况。
2) 什么是负载测试?
答案:负载测试主要是考察软件系统在既定负载下的性能表现。就是站在用户的角度去观察一定条件下软件系统的性能表现。期望结果是用户的性能指标需求得到满足。性能指标一般体现为响应时间、并发量等。
3) 性能测试包含的方法有哪些(至少列举5种)?
答案:SEI 负载测试计划过程,RBI方法,性能下降曲线分析法,Loadrunner和segue提供的性能测试方法,PTGM模型。
4) 描述性能测试的步骤?
1、业务学习
2、需求分析
3、工作评估
4、设计模型
5、计划编写
6、脚本开发
7、测试环境准备
8、测试数据的准备
9、测试执行
10、缺陷管理
11、性能分析
12、性能调优
13、测试报告
5) 什么时候开始执行性能测试?
答案:功能测试已完成并稳定运行,性能测试环境已搭建
6) 软件性能测试的应用领域有哪些(至少列出三种)?
l 能力验证
l 能力规划
l 性能调优
l 缺陷发现
7) 请描述SEI软件性能测试过程?
答案:SEI 负载测试计划过程将目标、用户、用例、生产环境、测试环境和测试场景6个区域作为负载测试计划需要重点关注和考虑的内容,重点关注以下几个方面的内容:
生产环境和测试环境的不同
用户分析
用例
8) 请描述RBI软件性能测试过程?
答案:RBI方法是Empirix公司提出的一种用于快速识别系统性能瓶颈的方法,该方法基于以下一些事务:
1. 80%的系统性能瓶颈由吞吐量制约。
2. 并发用户数和吞吐量瓶颈之间存在关联。
3. 采用吞吐量测试能够更快速的定位问题。
RBI方法先访问“小页面”和“简单应用”,从应用服务器、网络等基础层次上去了解系统吞吐量表现;再选择不同场景、设定不同并发数,使吞吐量保持趋势增长,观察系统的性能表现。按照“自上而下”的方式进行分析,首先确定是并发还是吞吐量引发的性能表现限制,然后从网络、数据库、应用服务器、代码本身4个环境确定系统性能具体的瓶颈。
9) 请描述LR性能测试过程?
1. 计划测试: 测试需求收集、典型场景确定。
2. 测试设计: 测试用例设计。
3.创建VU脚本: 根据用例创建脚本。
4. 创建测试场景: 测试场景设计和设置,包括监控指标设定。
5. 运行测试场景: 执行测试场景,收集相应数据。
6. 分析结果: 结果分析和报告工作
10) 对于采用敏捷流程开发的项目,性能测试该如何开展?
答案:
每个迭代目标中包含明确的性能目标
建立不同层次的性能测试
完全或接近完全自动化的性能测试
使用测试驱动方法保证性能与优化性能
11) 对于Web系统的响应时间,行业中被广泛认可的用户可以接受的时间是多少秒?
答案:2/5/10S,不同行业业务也有不同,非绝对。
在2秒之内给客户响应被用户认为是“非常有吸引力”的用户体验。
在5秒之内给客户响应被用户认为是“比较不错”的用户体验。
在10秒之内给客户响应被用户认为是“糟糕”的用户体验。
12) RBI软件性能测试过程认为,多少比例的性能瓶颈问题是由吞吐量导致的?
答案:80%
13) 在性能测试中,通常需要关注哪些性能指标?
答案:响应时间、并发数、吞吐量、系统性能计数器、思考时间。
14) 请描述什么是吞吐量?
答案:单位时间内系统处理用户的请求数。
从业务角度看,吞吐量可以用:请求数/秒、业务数/秒、人数/天或处理业务数/小时等单位来衡量
从网络角度看,吞吐量可以用:字节/秒来衡量
对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,它能够说明系统的负载能力
15) 一个web系统,用户从打开浏览器输入网址页面显示在浏览器中,这个过程当中,页面给用户总的响应时间通常可以细分为哪些?
答案:从客户端到服务端的请求时间(请求网络传输时间request),从服务端返回数据到客户端的时间(响应网络传输时间response),页面渲染时间(客户端浏览器加载页面的时间),处理器的处理时间(应用服务器+数据库服务器处理时间)。
16) 请举例说明什么时候广义并发和严格并发?
答案:广义并发:广义的并发实际上是在一个时间内操作事务的虚拟用户,是存在。
对地铁这个系统而言,每个时间都有新来的人,也有走的人,大家做的事情基本都相同,乘地铁。假定某个时刻地铁大厅中有10000人,检票口候车的有100人,刚刚开走的地铁上乘有2000人,那此时对考察的系统(列车)而言,并发就是2000人,而如果考察的是检票处,则并发为100人,同样,如果考察的系统是地铁大厅,那此时的并发就是10000人。这种并发我们一般称之为“广义并发”。
严格并发:是指大量用户在同一时刻在软件系统上做完全相同的功能操作或相同类型的功能操作。例如双十一的秒杀商品
17) 一个web系统,用户最关注的性能指标是什么?
答案:响应时间
18) 一份性能测试计划,通常包含哪些内容?
答案:测试目的,测试质量目标,测试环境,测试阶段和范围,测试策略,测试时间安排,测试用例
19) 软件为什么会有性能问题?
答案:软件在高负载访问下,业务逻辑比较复杂。软件是运行在环境当中的,不同的软硬件资源都会引起性能问题,还有软件本身的代码、数据库等引起的性能问题。
20) 响应时间和吞吐量直接的关系是什么?
答案:
吞吐量图显示的是虚拟用户每秒钟从服务器接收到的字节数。当和响应时间比较时,可以发现随着吞吐量的降低,响应时间也降低,同样的,吞吐量的峰值和最大响应时间差不多在同时出现。
平均响应时间越短,系统吞吐量越大;平均响应时间越长,系统吞吐量越小;
21) 如何识别性能瓶颈?
答案:找出最先出问题的点,即短板,再进行分析。
首先,要先做一份现有系统的性能测试报告,如CPU消耗、内存消耗、磁盘I/O、网卡I/O、带宽、页面交换等,如果发现其中一项或多项达到瓶颈,那么就要考虑是硬件不够导致性能上不去,还是系统实现不合理导致满了;如果是硬件问题,那么就早考虑扩容;如果是资源都没到极限或确认系统实现有问题,那么就要针对性的对系统相应功能进行相应的拆解或者是监控函数级的耗时。
RBI+变量控制法
22) 性能测试过程中,需要监控OS的哪些资源?
答案:cpu,内存,磁盘,网络
23) 性能测试过程中,需要监控OS的哪些资源?
答案:cpu,内存,磁盘,网络
24) 请解释什么是内存泄露,内存泄露的危害有哪些?
答案:内存泄漏是指对象不再被应用程序使用,但是垃圾回收器却不能回收它们,因为它们正在被引用。
对于长时间运行的程序来说,内存泄漏会使程序占用的内存一直增加,最后就会出现内存耗尽而导致宕机,即使不宕机也会是系统的运行越来越慢,还有就是有些内存有其他资源,比如数据库连接,网络连接等等这些,如果在网上会出现阻塞。
25) 请解释什么是资源竞争,场景的资源竞争有哪些?
答案:多个用户都去用同一个东西,但这个东西被一人锁定,就产生了资源竞争。
java多线程资源竞争
26) 验证系统在100 TPS下,响应时间小于3s,对于这样的需求,应该采用哪种性能测试方法?
答案:能力评估
27) 如何设计系统负载策略?标准是什么?
答案:加压实行减半,标准是系统的性能基线,就是在系统的cpu、内存都不低于75%,响应时间小于3s时测出来的用户数和标准为参考基线。
28) 什么是think time ?它的作用是什么?
答案:思考时间是指用户在进行操作时,每个请求之间的间隔时间
在测试脚本中,思考时间体现为脚本中两个请求语句之间的间隔时间。
设置思考时间是为了更加真实的模拟用户操作。
29) 从管理员角度视角,主要关注系统性能的哪些指标?
答案①系统的响应时间;
②系统状态的相关信息,如:CPU、内存、应用服务器状态、JVM可用内存、数据库的状态等;
③系统的可扩展性,处理并发的能力;
④系统可能的最大容量,可能的性能瓶颈,通过更换哪些设备或是进行哪些扩展能够提高系统性能;
⑤长时间运行是否足够稳定,是否能够不间断的提供业务服务等;
30) 从开发工程师视角,主要关注系统性能哪些指标?
答案(1)系统架构:架构设计是否合理;
(2)数据库设计:数据库设计是否存在问题;
(3)代码:代码是否存在性能方面的问题,系统中是否有不合理的内存使用方式;
(4)设计与代码:系统中是否存在不合理的线程同步方式,系统中是否存在不合理的资源竞争;
31) 请描述压力测试和负载测试的区别?
答案:压力测试的预期结果就是系统出现问题,我们考察的是系统处理问题的能力。
负载测试是考察软件系统在既定负载下的性能表现。
压力测试是能让我们识别系统的弱点和在极限负载下程序将如何运行。
32) 请描述什么时候性能平坦区?
答案:系统性能最优秀的区间,该区域可被用作基线。性能不断加压,没有什么变化。
33) 请描述什么是系统性能拐点?
答案:性能开始急剧下降的点。
34) 对于一个缺乏性能明确需求的项目,你是如何提取性能需求的?
答案:与客户交流,查看历史日志,跟同类产品对比,根据以往的经验。
35) 一个完整的性能测试用例应该包含哪些内容?
答案:测试用例编号,项目标题,测试标题,重要级别,预置条件,输入,操作步骤,输出,测试结果,测试者和时间
36) 请描述功能测试、性能测试、自动化测试、接口测试他们之间的关联性?
答案:功能测试->接口测试 ->性能测试->自动化测试
接口测试也算是功能测试的一种
37) 你自认为你自己的优势在哪里,对性能测试有没有你自己的理解?
答案:jmeter linux监控 脚本编程
38) 你自认为你本人做性能测试工作的优势在哪里?
答案:主要是描述你的技术强 业务适应ne
39) 你找工作时,最重要的考虑因素是什么?
答案:是否有发展空间
40) 你在五年内的个人目标和职业目标分别是什么?
答案:个人目标就是不断的积累性能方面的知识,达到高级性能测试工程师
重磅消息: 由狂师老师授课主讲的「全栈测试开发技能训练营」2期已经开课了,课程内容非常值得推荐!课程大纲:重磅消息 | 2021年最新全栈测试开发技能实战指南(第2期)
END
长按二维码/微信扫码 添加作者
阅读原文