性能测试常见面试(精华版)

起因

测试工程师对性能测试人员的具体工作内容、进度及效果缺乏了解,难以有效协助和控制整个测试流程。因此,本文旨在帮助测试经理深入理解性能测试的进展与质量,并提供相关指导。

目的

了解并掌控性能测试的执行过程

确保性能测试的质量

明确性能测试介入的时间点、类型以及分析需求的方法

掌握衡量系统性能的标准

了解性能测试能做什么、不能做什么

学习如何检验性能测试的质量‍

十问

Q1. 性能测试何时介入?

在开发生命周期的不同阶段,性能测试应适时介入,包括单元测试(开发人员进行代码层面效率、资源占用等测试)、组件/服务/接口测试(由测试人员完成功能模块验证)以及系统测试(模拟用户行为全面测试整体性能)。尤其在系统测试阶段,应在稳定版形成之前尽早介入,确保不会因为晚期发现性能问题导致功能测试返工。依据性能方案中的用户模型,确定合适的介入时间和所需流程数据。

Q2. 性能测试的过程是怎样的?

无论是传统还是敏捷模式,性能测试都应包含明确的文档编写与执行阶段,并强调迭代确认与修正。目前面临的问题在于执行过程往往不透明,可通过规范执行流程和建立检查制度来解决。

Q3. 是否有必要进行性能测试?

新项目或新版本在用户量增加、数据量增长、架构实现变化等因素影响下,通常需要进行性能测试。即使新增功能,也可能引起用户模型变动,若确实有变,则需重新测试以保证系统性能。为提高复用性和降低测试成本,建议将性能测试向组件/服务/接口级别靠拢,并提升企业级虚拟化环境建设水平。

Q4. 性能测试有哪些类型?

基准测试:设立标准供后续对比。

负载测试:施加适量压力确保系统正常运行。

压力测试:测试系统在预期最大压力下的表现。

容量测试:探寻系统瓶颈以规划未来发展。

稳定性测试:长期运行检测系统稳定性。

每种测试类型都有其特定价值,一般情况下多种测试结合使用才能得到准确结果。稳定性测试时长取决于提供的详尽数据能否证明系统的长期稳定性。

Q5. 如何分析性能需求?

作为测试负责人,在审核性能需求时应关注其全面性、可行性、可量化程度和灵活性。从用户感受、业务角度和技术角度进行多维度考量,并确保性能指标明确且具有代表性。

Q6. 如何衡量性能?

性能评价基于用户感受和明确的性能指标(如响应时间、页面展现时间、吞吐量、TPS等),并确保所选指标在技术上可检测。在测试设计阶段明确性能评价标准,便于测试负责人进行审查。

Q7. 性能测试能做到什么?

模拟用户实际行为,通过建立用户模型来测试web系统性能。

注意性能测试并不能覆盖所有功能,主要目标是找出系统瓶颈而非缺陷。

Q8. 如何检验性能测试的质量?

制定执行规范,设立关键检查点并指派专人检查。

记录完整的执行过程和参数调整信息,保持测试过程的持续交互与确认。

输出的数据应能有力支持结论,性能报告应以数据为基础,避免主观判断。

Q9. 性能测试工程师应掌握哪些技能? 性能测试工程师需具备以下核心技能:

精通软件测试的基本理论、方法和测试技术

熟练运用 LoadRunner、JMeter、Locust 等主流性能测试工具

掌握 Oracle、MySQL 等数据库的使用及基础 SQL 调优、数据库性能优化技巧

深入了解并能操作 Unix/Linux 操作系统及其基础调优手段

熟悉 WebLogic/WebSphere 等应用服务器的使用和基本调优策略

了解 WEB Application 的基础架构设计原理

具备综合分析与定位系统性能瓶颈的能力,熟悉 WEB 或 Mobile 应用常见性能问题的原因分析

拥有实际发现、诊断性能问题的经验

Q10. 性能测试中的典型术语有哪些? 在性能测试中,常用的术语包括:

并发用户:指在同一时刻执行相同或相似操作的用户数量。并发场景设置会根据具体需求变化。

并发用户数量:表示同一时间窗口内与服务器进行交互的在线用户数,它直接影响服务器负载。

请求响应时间:从客户端发起请求到接收到服务器最后一个响应字节所经历的时间。

事务响应时间:衡量业务层面用户的宏观响应时间,通常涉及一系列请求组合而成的完整事务。

吞吐量:在一次性能测试过程中网络传输的数据总量。

吞吐率(TPS):单位时间内系统处理的请求数量或数据流量,如“字节数/秒”或“请求数/秒”。

点击率:每秒钟客户端向服务器提交HTTP请求的数量,是衡量WEB应用性能的一个指标。

资源利用率:反映服务器、操作系统、数据库服务器、网络等资源被使用的程度,是性能瓶颈分析的重要依据。

Q11. 性能测试的一般流程是什么?

收集并分析性能测试需求

制定性能测试计划

设计性能测试策略

编写和设计性能测试脚本

构建工作负载模型(Workload Modeling)

执行性能测试,选择合适的测试工具

分析性能测试结果

编写性能测试报告

提出性能改进意见和建议

Q12. 性能测试的类型有哪些?

并发测试:检验多个用户同时访问同一系统时是否存在性能问题。

负载测试(Load Testing):在预期负载下评估系统的性能表现,确定其能否满足预定性能指标。

压力测试(Stress Testing):在超过正常工作负载的情况下验证系统的稳定性,找出系统崩溃点或性能急剧下降的阈值。

耐久性测试(Endurance Testing):对系统施加长时间连续负载,检测内存泄漏等问题,确保系统长期稳定运行。

强度测试:在非标准工作环境或极端条件下评估系统的最低性能指标,以检验其健壮性和稳定性。

尖峰试验(Spike Testing):模拟短时间内用户数和负载陡增的情况,检查系统能否快速恢复并继续正常运作。

容积测试(Volume Testing):通过加载大量数据来测试系统在高数据量情况下的性能表现。

Q13. 如何理解性能测试中的“并发”概念?

并发在性能测试中具有特定含义,分为客户端并发和服务端并发。客户端并发用于模拟多用户访问场景,而服务端并发则关注服务器在同一时刻处理的请求数量。虽然客户端并发数可能远大于服务端并发数,但真正决定有效并发能力的是系统资源利用状况,如网络连接数、带宽、内存、CPU占用以及磁盘I/O繁忙程度等。有效的并发是指在保证较低响应时间的前提下,系统能够承受的最大并发请求量。在压力测试过程中,随着并发数增加,如果响应时间显著上升,则表明系统并发能力已接近极限,继续增大并发将导致总体性能下降。

 

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:


这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值