【软件测试】性能测试面试题都问什么?面试官想要什么?回答惊险避坑......

news2025/3/10 15:09:05

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、你认为不同角色关注的软件性能要点分别是?

客户:重点关注打开速度及响应时间;
在进行操作时,每个请求之间的间隔时间;
大量用户在同一时刻在软件系统上操作是否有较好的体验;

开发人员:重点关注响应时间和数据库交互,进行性能调优;
系统架构:架构设计是否合理;
数据库设计:数据库设计是否存在问题;
代码:代码是否存在性能方面的问题,系统中是否有不合理的内存使用方式;
业务逻辑:系统中是否存在不合理的线程同步方式,系统中是否存在不合理的资源竞争;

测试人员:重点关注用户感受到的软件性能;
系统的响应时间;
系统状态的相关信息,如:CPU、内存、应用服务器状态、JVM可用内存、数据库的状态等;
系统的可扩展性,处理并发的能力;
系统可能的最大容量,可能的性能瓶颈,通过更换哪些设备或是进行哪些扩展能够提高系统性能;
长时间运行是否足够稳定,是否能够不间断的提供业务服务等;

2、如何得到性能测试需求?

查看需求文档提取性能测试需求,了解客户实际使用情况;
结合业务信息,设计操作场景从而总结出需要测试的性能关键指标;
执行用例后,提取关键性能指标来分析是否满足性能需求;

3、简述性能测试步骤?

①熟悉应用:了解应用的架构、功能逻辑;
②需求分析:根据测试目的,细化需求;
③测试方案:明确性能测试指标,性能场景及工具选择;
④测试准备:客户端准备、测试数据准备、测试脚本准备;
⑤执行测试:执行测试,监控测试客户端和服务器性能,监控服务器端应用情况;

  • 客户端的系统资源(CPU、IO、Memory)情况;
  • 服务端的系统资源(CPU、IO、Memory)情况;
  • 服务器的JVM运行情况;
  • 服务端的应用情况是否有异常;
  • 响应时间、吞吐量等指标;

⑥性能分析与调优:找出性能瓶颈,提高系统整体性能,满足用户需求;
⑦编写测试报告:测试结束后,归档整理测试报告;

4、需求分析阶段,你从哪几个方面入手性能测试?

明确到底要不要做性能测试,性能测试的目的是什么;
明确被测系统的架构、软硬件配置、网络等;
明确被测系统的基本业务、关键业务、用户行为;
明确被测系统未来的业务拓展规划以及性能需求;
明确工具选型,比如Jmeter、LoadRunner等;
明确性能测试的指标,比如并发、吞吐量、响应时间等;

5、你如何识别性能瓶颈?

①硬件上的性能瓶颈:如CPU、内存、磁盘读写等的瓶颈,为服务器硬件瓶颈;

②应用软件上的性能瓶颈:如服务器操作系统瓶颈(参数配置)、数据库瓶颈(参数配置)、web服务器瓶颈(参数配置)、中间件瓶颈(参数配置)等;

③应用程序上的性能瓶颈:应用程序上的性能瓶颈,如SQL语句、数据库设计、业务逻辑、算法等等;

④操作系统上的性能瓶颈:一般指的是Windows、linux等操作系统,如出现物理内存不足时,或虚拟内存设置不合理(虚拟内存设置不合理,会导致虚拟内存的交换率大大降低,从而导致行为的响应时间大大增加,可以认为在操作系统上出现了性能瓶颈);

⑤网络设备上的性能瓶颈:一般是防火墙、动态负载均衡器、交换机等设备导致;

6、打开浏览器输入网址到页面渲染,响应时间通常可以细分为哪些?

从客户端到服务端的请求时间(请求网络传输时间Request);
从服务端返回数据到客户端的时间(响应网络传输时间Response);
页面渲染时间(客户端浏览器加载页面的时间);
处理器的处理时间(应用服务器+数据库服务器处理时间);

7、软件为什么会有性能问题?

软件是运行在环境当中的,在高负载访问下,业务逻辑比较复杂,不同的软硬件资源都会引起性能问题,还有软件本身的代码、数据库等会引起性能问题。

8、什么是内存泄露?

内存泄漏 是指对象不再被应用程序使用,但是垃圾回收器却不能回收它们,因为它们正在被引用。

对于长时间运行的程序来说,内存泄漏会使程序占用的内存一直增加,最后就会出现内存耗尽而导致宕机,即使不宕机也会是系统的运行越来越慢,还有就是内存有其他资源,比如数据库连接,网络连接等等。

9、什么是内存溢出?

内存溢出 应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存。

10、敏捷开发模型,如何开展性能测试?

①每个迭代目标中包含明确的性能目标;
②建立不同层次的性能测试;
③完全或接近完全自动化的性能测试;
④使用测试驱动方法保证性能与优化性能;

11、性能测试什么时间做?

系统性能测试在功能测试之后,系统比较稳定的时候开展。不同阶段都可能做性能测试,如单接口性能测试,集成性能测试。

12、有验证码的功能,怎么做性能测试?

方案1、将验证码暂时屏蔽,完成性能测试后,再恢复。
方案2、使用万能验证码。

13、常见性能测试工具?

Loadrunner、JMeter、SoapUI、Tsung等,根据不同的测试场景选择适合的工具。

14、如何识别性能瓶颈?

查看系统日志,如果日志记录的全面,很容易通过日志发现问题。比如,系统宕机时,系统日志打印了某方法执行是抛出out of memory的错误,很快定位到导致内存溢出的问题在哪里。

利用性能监控工具,比如:linux系统环境下通过nmon来监控系统性能。
设计合理的性能测试场景,好的测试场景能更加快速的发现瓶颈。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

道德可以弥补智慧上的缺陷,但智慧永远弥补不了道德上的缺陷。人的两种力量最有魅力:一种是人格的力量,一种是思想的力量。

成功的第一个条件是真正的虚心,对自己的一切敝帚自珍的成见,只要看出同真理冲突,都愿意放弃。

压力是不可避免的,失眠是无可奈何的,所以不要着急,不要烦躁,心平气和地接受。躲不开就接着,晚上睡不着那就白天睡。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/386201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

A Bio-Inspired Multi-Exposure Fusion Frameworkfor Low-light Image Enhancement

Abstract弱光图像的能见度较低,不利于人类观察和计算机视觉算法。尽管许多图像增强技术已经被提出来解决这个问题,现有的方法不可避免地引入对比度增强不足和过度。受人类视觉系统的启发,我们设计了一个用于微光图像增强的多曝光融合框架。在…

机器学习错题集(1)

生成模型与判别模型的区别: 在机器学习中,对于有监督学习可以将其分为两类模型:判别式模型和生成式模型。简单地说,判别式模型是针对条件分布建模,而生成式模型则针对联合分布进行建模。已知输入变量x: 生成…

深度学习之卷积神经网络学习笔记二

1. 引言在学习笔记一中,我们介绍了几种常用的分类模型框架,如VGGNet,GoogleNet,和ResNet,并且介绍了几种简单的分割模型。如FCN,UNet,SegNet和Deeplab。从深度学习兴起到现在,模型一…

UML1——用图说话

目录 一、前言 二、使用工具 三、UML面对对象 四、UML图标 4.1 事物 4.2 关系 4.3 关系线数字 4.4 关系图示例 五、UML开发思路 一、前言 不管是系统项目工程师,还是开发人员,熟悉使用UML都必不可少。UML 是一种为面向对象开发系统的产品进行说明…

2月刚上岸字节跳动测试岗面经

这时候发应该还不算太晚,金三银四找工作的小伙伴需要的可以看看。 一、测试工程师的工作是什么? 测试工程师简单点说就是找bug,然后反馈给开发人员,不要小看这个工作。 首先很明显的bug开发人员有时候自己就能找到,测…

一文2000字从0到1学习接口自动化测试必备知识(建议收藏)

在所有的测试中,接口测试是必不可少的一项。有效且覆盖完整的接口测试,不仅能保障新功能的开发质量,还能让开发在修改功能逻辑的时候有回归的能力,同时也是能优雅地进行重构的前提。编写接口测试要遵守哪些原则?测试代…

Python读取文字并点击对应的图片

本来想写了一大堆今天遇到的需求,想想还是删了,我直接说出本文的功能,读取A列的Excel(全是名字),然后点击名字所对应的图片: 名字所对应的图片 直接看视频,是不是你想要的结果! 我循环了三次&a…

【JAR包打包为EXE】javafx/java项目(适用jdk1.8)通过Gradle插件打包为exe,包含jre,客户机无需安装JDK(含代码)

前言: 通常在采用javafx或tornadofx等框架编写的桌面软件后,若要分发给客户机进行使用,就需要先在目标客户机安装合适版本的JDK,对于客户机来说并不需要关注这一步骤,这也增加了多台客户机分发及使用的成本&#xff0…

宾语从句it做形式主语的句子

It代替从句作形式主语的常见句型 一、it 代替连词 that 引导的从句作形式主语。 1、it be 过去分词 that 从句: It’s said that Tom has come back from abroad . It was reported that dozens of children died in the accident . 可用于该句型的过去分词还有&#xf…

Qt学习2-Qt Creator新建项目小tips(哔站视频学习记录)

放送两个小tips: 1、MinGW和MSVC的区别 QT学习笔记(二):QT MinGW 和 MSVC 编译方式_Leon_Chan0的博客-CSDN博客 2、如何安装QT对应版本的MSVC (1)问题描述:Qt5.12.8支持MSVC2015和MSVC2017,但是系统安装的是Visual…

大数据技术——函数式编程基础

函数定义与使用定义函数最通用的方法是作为某个类或者对象的成员,这种函数被称为方法。其定义的基本语法为:def 方法名(参数列表):结果类型方法体}字面量包括整数字面量、浮点数字面量、布尔型字面量、字符字面量、字符串字面量、符号字面量、函数字面量…

hdfs的读写数据流程

读: (1)客户端通过DistributedFileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。 (2)挑选一台DataNode(就近原则,然后随机&…

学习机器学习应该看哪些书籍?

机器学习是一种人工智能技术,它通过利用计算机算法和数学模型,使计算机系统能够自动从数据中学习,从而不断改进其性能。它是一种数据驱动的方法,可以让计算机从经验中学习,而无需明确地编程。具体来说,机器…

python学习——【第一弹】

前言 Python是一种跨平台的计算机程序设计语言,是ABC语言的替代品,属于面向对象的动态类型语言,最初被设计用于编写自动化脚本,随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。 从这篇…

怎样成为一名黑客:六个方法让你无所不能

黑客这个名字一直是伴随着互联网发展而来,给大家的第一印象就是很酷,而且技术精湛,在网络世界里无所不能。目前几乎所有的公司企业甚至国家相关部门都会争相高薪聘请技术精湛的黑客作为互联网机构的安全卫士,所以黑客也是很多人比…

【老王读Spring Transaction-7】一个数据源的事物管理配置 与 多数据源的事物管理配置

前言 大多数 Spring 应用程序只有一个数据源,只需要一个事务管理器(TransactionManager)。 但是在多个数据源的情况下,我们就需要在一个应用程序中配置多个独立的事务管理器。 我们可以通过 Transactional 的 value 或 transactionManager 属性来指定让…

shell数值计算

P23 回顾shell基础知识 shell执行多条命令 一行内,分号分割多条命令。比如cd /tmp ;echo hello ;cd - 其中cd -为回到此行命令开始前的目录多行echo和转义字符 双引号里输出$n等特殊字符时,实用\转义,来原样输出字符单引号中字符不进行替换&…

ES6的简单使用

1.ES6基本介绍1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标准。次年,ECMA 发布 262 号标准文件(ECMA-262)的第一版,…

Vue表单数据修改与删除

学习来源:视频p6 书接上文 目录页面修改修改对话框视频教程的做法后端提供接口前端调用接口修改完成后提交删除功能后端开设接口前端调用最终成果展示页面修改 将之前的 BookManage 页面的按钮改为想要的功能 可以注意到修改按钮的标签以及绑定了事件 handleClick…

RK3568核心板以太网大数据测试报告-万象奥科

1. 测试对象HD-RK3568-IOT 底板基于HD-RK3568-CORE工业级核心板设计(双网口、双CAN、5路串口),接口丰富,适用于工业现场应用需求,亦方便用户评估核心板及CPU的性能。适用于工业自动化控制、人机界面、中小型医疗分析器…