测试人员必知必会经典性能面试题

2024-03-26 00:18

本文主要是介绍测试人员必知必会经典性能面试题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

" 阅读本文大概耗时13分钟 " 

1. 性能测试包含了哪些软件测试(至少举出3种)?

参考答案:负载测试;压力测试;容量测试

负载测试(Load Testing):负载测试是一种主要为了测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能。

压力测试(Stress Testing):强度测试也就是压力测试,压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等,压力测试和负载测试最大的差别在于测试目的不同。

容量测试(Volume Testing):确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。

或者在下面选择几项:

a. 并发测试 - 测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题

b. 基准测试 - 比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能。

c. 争用测试:- 核实测试对象对于多个主角对相同资源(数据记录、内存等)的请求的处理是否可以接受。

d. 性能配置 - 核实在操作条件保持不变的情况下,测试对象在使用不同配置时其性能行为的可接受性。

e. 负载测试- 核实在保持配置不变的情况下,测试对象在不同操作条件(如不同用户数、事务数等)下性能行为的可接受性。

f. 强度测试- 核实测试对象性能行为在异常或极端条件(如资源减少或用户数过多)之下的可接受性。

g. 容量测试- 核实测试用户同时使用软件程序的最大数量

2. 请问什么是性能测试、负载测试、压力测试?

答:性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试、压力测试参考答案如上题。

3. 在给定的测试环境下进行,考虑被测系统的业务压力量和典型场景?

答:负载测试。

负载测试是用来测定系统饱和状态、确定阀值。其特点有:

01.这种方法的目的是找到系统处理能力的极限;通过“检测、加压、阀值”手段找到如“响应时间不超过10秒”,“平均CPU利用率低于65%”等指标。

02.这种性能测试方法需要在给定的测试环境下进行,通常也需要考虑被测系统的业务压力量和典型场景、另外HP Mercury LoadRuner在使用该方法进行“加压”的时候必须选择典型场景。

03.这种性能测试方法一般用来了解系统的性能容量,或者是配合性能调优的时候来使用。特别是该的Weblogic 和库的性能调优。

4. 什么时候可以开始执行性能测试?

答:在产品相对比较稳定,功能测试结束后。灵活性比较强。

5. 简述性能测试的步骤。

答:熟悉应用

了解应用的架构、功能逻辑

测试需求:

1. 需要将开发给定的需求转为吞吐量和响应时间。

2. 根据测试目的,细化需求

测试准备:

测试准备包括测试客户端机器准备、测试数据准备、测试脚本准备。

测试执行:

测试的执行中,需要监控测试客户端和服务器性能,监控服务器端应用情况:

a.客户端的系统资源(cpu、io、memory)情况

b. 服务端的系统资源(cpu、io、memory)情况

c. 服务器的jvm运行情况

d. 服务端的应用情况,看是否有异常

e. 响应时间、吞吐量等指标

f. 系统资源监控,linux下可以采用的工具有:vmstat、top、meminfo等。

g. JVM的监控,可以用jprofiler工具,linux下面的jmap、jhat等。

h. 响应时间、吞吐量等,由grinder提供。

上述这些信息,一般在测试结束后,均需要归档整理,已备后续详细分析。

我们自己开发一套脚本,用于以固定的频率获取测试客户端和服务器的vmstat和top输出、grinder的log,并从中截取有用信息保存,用于事后分析。

每次测试运行完以后,肯定会增加很多数据,需要考虑本次执行对数据量的影响,如果数据量的变化对后续测试会有影响,则需要清理数据。

6. 你如何识别性能瓶颈?

答:RBI方法:重点测试“吞吐量”指标,因为RBI认定80%的系统性能瓶颈由吞吐量造成。

按照网络、硬件、数据库、应用服务器、代码的顺序自上而下分析性能工具:IBM、HP、OpenSource工具都支持。需使用分析模块、根据Weblogic、Oracle区别有专门的工具实现RBI。

7. 性能测试时,是不是必须进行参数化?为什么要创建参数?LoadRunner中如何创建参数?

答:是。模拟用户真实的业务操作。创建参数列表,用参数替换固定的文本。

8. 你如何设计负载?标准是什么?

答:负载测试计划多少用户数量、使用什么类型的机器、以及在什么环境下进行。

主要基于两个重要的文档,任务分布图和事务信息,任务分布图告诉我们在负载时间段内,某一个事务使用的用户数,高峰使用率及低峰使用率均来自该文档;事务信息告诉我们事务名及优先级,在设计场景时可以参考。

9.解释5个常用的性能指标的名称与具体含义。

答:响应时间、并发用户数,吞吐量,性能计数器,TPS,HPS

响应时间:指的是“系统响应时间”定义为应用系统从发出请求开始到客户端接收到响应所消耗的时间。把它作为用户视角的软件性能的主要体现。

最大并发用户数:有两种理解方式,一种是从业务的角度来模拟真实的用户访问,体现的是业务并发用户数,指在同一时间段内访问系统的用户数量。

另一种是从服务器端承受的压力来考虑,这里的“并发用户数”指的是同时向服务器端发出请求的客户数,该概念一般结合并发测试(Concurrency Testing)使用,体现的是服务端承受的最大并发访问数。

吞吐量:是指“单位时间内系统处理的客户请求的数量”,直接体现软件系统的性能承载能力。

性能计数器(Counter)是描述服务器或操作系统性能的一些数据指标。例如,对Windows 系统来说,使用内存数(Memory In Usage),进程时间(Total Process Time)等都是常见的计数器。

思考时间(Think Time),也被称为“休眠时间”,从业务的角度来说,这个时间指的是用户在进行操作时,每个请求之间的间隔时间。

从自动化测试实现的角度来说,要真实地模拟用户操作,就必须在测试脚本中让各个操作之间等待一段时间,体现在脚本中,具体而言,就是在操作之间放置一个Think 的函数,使得脚本在执行两个操作之间等待一段时间。

TPS:Transaction per second,每秒钟系统能够处理的交易或者事务的数量。它是衡量系统处理能力的重要指标。

点击率:HPS,每秒钟用户向WEB服务器提交的HTTP请求数。

10. 描述不同的角色(用户、产品开发人员、系统管理员)各自关注的软件性能要点。

答:用户:重点关注打开速度及响应时间

开发:重点关注响应时间和数据库交互

管理员:重点关注用户感受到的软件性能;如何利用管理功能进行性能调优;如何利用其他软硬件手段进行性能调优

11. 请分别针对性能测试、负载测试和压力测试试举一个简单的例子?

答:性能测试例子:公司开发了一个小型项目管理系统,上线前需要做负载、压力、大数据量、强度测试等。

负载测试:逐步加压,从而得到“响应时间不超过10秒”,“服务器平均CPU利用率低于85%”等指标阀值。

压力测试:逐步加压,从而使“响应时间超过10秒”,“服务器平均CPU利用率高于90%”等指标来确定系统能承受的最大负载量。

12. 请问您是如何得到性能测试需求?怎样针对需求设计、分析是否达到需求?

答:在查看需求文档,从中提取性能测试需求,与用户交流,了解实际使用情况。结合业务信息设计操作场景总结出需测试的性能关键指标。执行用例后根据提取关键性能指标来分析是否满足性能需求。

THE END

题图:本文来源于网络,文章所包含的文字来源于原作者。如因内容或版权等问题,请联系Python测试社区进行删除

最近接到很多私信,说以后尽量多出点试题着这样的文章,最近小编也是一致在发现总结中,希望对大家有所帮助

[ 刷试题,在于积累,你悄悄来,请记得带走一丝云彩 ]

[ 微信搜索:" Python测试社区 "关注本公众号,回复“989”“python”领取4G资料 ] 

支持作者,可以将文章分享到朋友圈或点个在看,感谢大家的阅读!Bey , 下期再见

这篇关于测试人员必知必会经典性能面试题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/846725

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正在不断推陈出新,推出具有更低时延和更高 IOPS 性能的云硬盘产品。 8 月 22 日 2024 DTCC 大会上(第十五届中国数据库技术大会),XSKY星辰天合正式公布了基于星

荣耀嵌入式面试题及参考答案

在项目中是否有使用过实时操作系统? 在我参与的项目中,有使用过实时操作系统。实时操作系统(RTOS)在对时间要求严格的应用场景中具有重要作用。我曾参与的一个工业自动化控制项目就采用了实时操作系统。在这个项目中,需要对多个传感器的数据进行实时采集和处理,并根据采集到的数据及时控制执行机构的动作。实时操作系统能够提供确定性的响应时间,确保关键任务在规定的时间内完成。 使用实时操作系统的

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

一些其他面试题

阿里二面:那你来说说定时任务?单机、分布式、调度框架下的定时任务实现是怎么完成的?懵了。。_哔哩哔哩_bilibili 1.定时算法 累加,第二层每一个格子是第一层的总时间400 ms= 20 * 20ms 2.MQ消息丢失 阿里二面:高并发场景下引进消息队列有什么问题?如何保证消息只被消费一次?真是捏了一把汗。。_哔哩哔哩_bilibili 发送消息失败

zookeeper相关面试题

zk的数据同步原理?zk的集群会出现脑裂的问题吗?zk的watch机制实现原理?zk是如何保证一致性的?zk的快速选举leader原理?zk的典型应用场景zk中一个客户端修改了数据之后,其他客户端能够马上获取到最新的数据吗?zk对事物的支持? 1. zk的数据同步原理? zk的数据同步过程中,通过以下三个参数来选择对应的数据同步方式 peerLastZxid:Learner服务器(Follo

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

HotSpot虚拟机的经典垃圾收集器

读《深入理解Java虚拟机》第三版笔记。 关系 Serial、ParNew、Parallel Scavenge、Parallel Old、Serial Old(MSC)、Concurrent Mark Sweep (CMS)、Garbage First(G1)收集器。 如图: 1、Serial 和 Serial Old 收集器 2、ParNew 收集器 3、Parallel Sc