当前位置: 首页 > news >正文

从面试官角度告诉你高级性能测试工程师面试必问的十大问题

目录

1、介绍下最近做过的项目,背景、预期指标、系统架构、场景设计及遇到的性能问题,定位分析及优化;

2、项目处于什么阶段适合性能测试介入,原因是什么?

3、性能测试场景设计要考虑哪些因素?

4、对于一个新开发的应用,上线前需要做性能测试,你会考虑哪些因素?

5、介绍下你在工作中使用过的监控和分析工具,各自有什么特点?

6、了解过全链路压测吗?阐述一下你的理解或者实践经验;

7、如何排查CPU耗用比较多的线程方法;

8、介绍下JVM堆内存的结构,YGC,FGC的原理是什么?

9、线上系统出现了MQ的消息积压,这个时候应该怎么做?

10、如果让你负责团队的性能测试,你会从哪方面考虑和开展工作?

总结感谢每一个认真阅读我文章的人!!!

重点:配套学习资料和视频教学


1、介绍下最近做过的项目,背景、预期指标、系统架构、场景设计及遇到的性能问题,定位分析及优化;

考察点:

  1. 对项目的了解情况;
  2. 需求分析和场景设计思路;
  3. 问题分析思路及优化验证手段;

参考答案:

  1. 最近做了一个XXX项目,背景是老服务重构,预期指标是在原有系统基础上性能提升3倍,架构设计是XXX。针对这个项目我梳理了核心应用和接口有XXX个,对应的场景有XXX,我的压测策略是XXX。测试过程中发现了XXX问题,问题表现是XXX,通过XXX(日志、工具)分析原因为XXX,最终优化策略是XXX,优化后结果为XXX。

2、项目处于什么阶段适合性能测试介入,原因是什么?

考察点:

  1. 对业务迭代是否足够了解;
  2. 对项目质量把控和评估分析的能力;

参考答案:

  1. 这个问题要根据项目类型和具体情况来分析,以我公司为例,日常的迭代频次是XXX,一般我在XXX阶段介入性能测试,原因为XXX,这样做的好处是XXX;
  2. 如果是独立项目或者倒排期项目,那我认为应该在XXX阶段介入,这样做的原因为XXX,好处为XXX;
  3. 还有针对性能测试体系建设不太好的团队,我建议先从XXX做起,然后XXX,尽可能保证质量和投入成本平衡;

         

 

3、性能测试场景设计要考虑哪些因素?

参考答案:

  1. 业务模型,流量模型,数据模型,调用关系等;

4、对于一个新开发的应用,上线前需要做性能测试,你会考虑哪些因素?

参考答案:

  1. 该应用的线上配置(几核几G);
  2. 上线后要承接的流量大小;
  3. 该应用的业务类型(读写缓存还是DB);

5、介绍下你在工作中使用过的监控和分析工具,各自有什么特点?

考察点:

  1. 工具的了解和掌握程度;

参考答案:

  1. 监控工具我常用的是zabbix/Prometheus/grafana/skywalking,分别用他们来查看XXX指标;
  2. 分析工具我常用的是arthas,jvm自带的命令分析工具,分别用他们来进行XXX分析;
  3. 我还了解和自己研究过XXX工具,发现它的特点很适合XXX类型的问题分析和排查;

6、了解过全链路压测吗?阐述一下你的理解或者实践经验;

考察点:

  1. 是否对业内比较前沿的技术有了解和实践;

7、如何排查CPU耗用比较多的线程方法;

考察点:

  1. 考察对Linux的命令熟悉程度;

参考答案:

  1. top命令:找到CPU%最高的进程PID;
  2. top -H -p pid:查看进程下的线程,找到资源耗用率最高的线程pid;
  3. shell命令:printf ”%x\n“ pid(%x,表示 十六进制,\n是换行);
  4. jstack分析:jstack pid (十六进制) 1> xxx.tmp;

                   

 

8、介绍下JVM堆内存的结构,YGC,FGC的原理是什么?

考察点:

  1. 对JVM原理和常见的影响性能的因素理解程度;

参考答案:

  1. JVM堆内存主要分为新生代(Young Gen)、老年代(Tenured Gen)、持久代(Perm Gen);
  2. 新生代划分为伊甸区(Eden)、幸存区from区(Servivor from)、幸存区to区(To Servivor);
  3. 老年代的特点是占用内存大,垃圾回收操作频率低;
  4. 持久代主要存放类定义、字节码和常量等很少会变更的信息;
  5. YGC的原理是XXX,FGC的原理是XXX;
  6. 一般FGC在XXX情况下会影响性能表现;

9、线上系统出现了MQ的消息积压,这个时候应该怎么做?

考察点:

  1. 是否有线上异常容灾处理经验;

参考答案:

  1. 首先要快速解决消息积压问题,比如加大consumer数量,消费频次;
  2. 如果消息太多评估是否丢弃消息或者重启MQ;
  3. 保留日志,线上业务止血后快速排查问题出现的原因,是否有其他类似场景存在同样问题;
  4. 组织复盘,评估后续优化方案,及时跟进落地优化的进度和效果;

10、如果让你负责团队的性能测试,你会从哪方面考虑和开展工作?

考察点:

  1. 是否有完整的性能测试技术体系总结;
  2. 根据实际情况的分析和落地执行能力;
  3. 是否注重团队配合、成员培养和质量把控能力;

总结
感谢每一个认真阅读我文章的人!!!

如果下面这些资料用得到的话可以直接拿走:

1、自学开发或者测试必备的完整项目源码与环境

2、测试工作中所有模板(测试计划、测试用例、测试报告等)

3、软件测试经典面试题

4、Python/Java自动化测试实战.pdf

5、Jmeter/postman接口测试全套视频获取

6、Python学习路线图

                         

 

重点:配套学习资料和视频教学

那么在这里我也精心准备了上述大纲的详细资料包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如下,需要的点击下方名片加我VX免费领取。

            

 

相关文章:

从面试官角度告诉你高级性能测试工程师面试必问的十大问题

目录 1、介绍下最近做过的项目,背景、预期指标、系统架构、场景设计及遇到的性能问题,定位分析及优化; 2、项目处于什么阶段适合性能测试介入,原因是什么? 3、性能测试场景设计要考虑哪些因素? 4、对于一…...

通过知识库深度了解用户的心理

自助服务知识库的价值是毋庸置疑的,如果执行得当,可以帮助减少客户服务团队的工作量,仅仅编写内容和发布是不够的,需要知道知识库对客户来说是否有用,需要了解客户获得的反馈,如果你正确的使用知识库软件&a…...

HiveSQL一天一个小技巧:如何将分组内数据填充完整?

0 需求1 需求分析需求分析:需求中需要求出分组中按成绩排名取倒数第二的值作为新字段,且分组内没有倒数第二条的时候取当前值。如果本题只是求分组内排序后倒数第二,则很简单,使用row_number()函数即可求出,但是本题问…...

【亲测可用】BEV Fusion (MIT) 环境配置

CUDA环境 首先我们需要打上对应版本的显卡驱动: 接下来下载CUDA包和CUDNN包: wget https://developer.download.nvidia.com/compute/cuda/11.6.2/local_installers/cuda_11.6.2_510.47.03_linux.run sudo sh cuda_11.6.2_510.47.03_linux.runwget htt…...

【调试方法】基于vs环境下的实用调试技巧

前言: 对万千程序猿来说,在这个世界上如果有比写程序更痛苦的事情,那一定是亲手找出自己编写的程序中的bug(漏洞)。作为新手在我们日常写代码中,经常会出现报错的情况(好的程序员只是比我们见过…...

单目标应用:蜣螂优化算法DBO优化RBF神经网络实现数据预测(提供MATLAB代码)

一、RBF神经网络 1988年,Broomhead和Lowc根据生物神经元具有局部响应这一特点,将RBF引入神经网络设计中,产生了RBF(Radical Basis Function)。1989年,Jackson论证了RBF神经网络对非线性连续函数的一致逼近性能。 RBF的基本思想是…...

MTK平台开发入门到精通(Thermal篇)热管理介绍

文章目录 一、热管理组成二、Linux Thermal Framework2.1、thermal_zone 节点2.2、cooling_device 节点三、Thermal zones沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇文章将介绍MTK平台的热管理机制,热管理机制是为了防止模组在高温下工作导致硬件损坏而存在的…...

最好的 QML 教程,让你的代码飞起来!

想必大家都知道,亮哥一直深耕于 CSDN,坚持了好很多年,目前为止,原创已经 500 多篇了,一路走来相当不易。当然了,中间有段时间比较忙,没怎么更新。就拿 QML 来说,最早的一篇文章还是 …...

笔记(六)——stack容器的基础理论知识

stack是堆栈容器&#xff0c;元素遵循先进后出的顺序。头文件&#xff1a;#include<stack>一、stack容器的对象构造方法stack采用模板类实现默认构造例如stack<T> vecT&#xff1b;#include<iostream> #include<stack> using namespace std; int main(…...

Web前端学习:四 - 练习

三九–四一&#xff1a;百度页面制作 1、左右居中&#xff1a; text-align: center; 2、去掉li默认的状态 list-style: none; li中有的有点&#xff0c;有的有序&#xff0c;此代码去掉默认状态 3、伪类&#xff1a;hovar 一般显示为color: #0f0e0f&#xff0c; 当鼠标接触时…...

odoo15 标题栏自定义

odoo15 标题栏自定义 如何显示为自定义呢 效果如下: 代码分析: export class WebClient extends Component {setup() {this.menuService = useService("menu");this.actionService = useService("action");this.title = useService("title&…...

视觉SLAM十四讲 ch3 (三维空间刚体运动)笔记

本讲目标 ●理解三维空间的刚体运动描述方式:旋转矩阵、变换矩阵、四元数和欧拉角。 ●学握Eigen库的矩阵、几何模块使用方法。 旋转矩阵、变换矩阵 向量外积 向量外积&#xff08;又称叉积或向量积&#xff09;是一种重要的向量运算&#xff0c;它表示两个向量所形成的平行…...

问题解决:java.net.SocketTimeoutException: Read timed out

简单了解Sockets Sockets&#xff1a;两个计算机应用程序之间逻辑链接的一个端点&#xff0c;是应用程序用来通过网络发送和接收数据的逻辑接口 是IP地址和端口号的组合每个Socket都被分配了一个用于标识服务的特定端口号基于连接的服务使用基于tcp的流Sockets Java为客户端…...

前端代码优化方法

1.封装的css样式&#xff0c;增加样式复用性。如果页面加载10个css文件,每个文件1k&#xff0c;那么也要比只加载一个100k的css文件慢 2.减少css嵌套&#xff0c;最好不要嵌套三层以上 3.不要在ID选择器前面进行嵌套&#xff0c;ID本来就是唯一的而且权限值大&#xff0c;嵌套完…...

【批处理脚本】-1.16-文件内字符串查找增强命令findstr

"><--点击返回「批处理BAT从入门到精通」总目录--> 共9页精讲(列举了所有findstr的用法,图文并茂,通俗易懂) 在从事“嵌入式软件开发”和“Autosar工具开发软件”过程中,经常会在其集成开发环境IDE(CodeWarrior,S32K DS,Davinci,EB Tresos,ETAS…)中…...

三天吃透Redis面试八股文

本文已经收录到Github仓库&#xff0c;该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点&#xff0c;欢迎star~ Github地址&#xff1a;https://github.com/…...

数据湖架构Hudi(三)Hudi核心概念

三、Apache Hudi核心概念 3.1 基本概念 Hudi 提供了Hudi 表的概念&#xff0c; 这些表支持CRUD操作&#xff0c; 可以利用现有的大数据集群比如HDFS做数据文件存储&#xff0c; 然后使用SparkSQL或Hive等分析引擎进行数据分析查询。 Hudi表的三个主要组件&#xff1a; 有序的…...

在数字优先的世界中打击知识产权盗窃

在当今数据驱动的世界中&#xff0c;全球许多组织所面临的期望和需求正在达到前所未有的水平。 为了迎接挑战&#xff0c;数据驱动的方法是必要的&#xff0c;需要有效的数字化转型来提高运营效率、简化流程并从遗留技术中获得更多收益。 但是&#xff0c;虽然数字优先方法可…...

机器学习算法原理——逻辑斯谛回归

文章目录逻辑斯谛回归二项逻辑斯谛回归模型极大似然估计多项逻辑斯谛回归模型总结归纳逻辑斯谛回归 写在前面&#xff1a;逻辑斯谛回归最初是数学家 Verhulst 用来研究人口增长是所发现的&#xff0c;是一个非常有趣的发现过程&#xff0c; b 站有更详细的背景及过程推导&…...

【华为OD机试 】最优资源分配/芯片资源占用(C++ Java JavaScript Python)

文章目录 题目描述输入描述输出描述备注用例题目解析C++JavaScriptJavaPython题目描述 某块业务芯片最小容量单位为1.25G,总容量为M*1.25G,对该芯片资源编号为1,2,…,M。该芯片支持3种不同的配置,分别为A、B、C。 配置A:占用容量为 1.25 * 1 = 1.25G配置B:占用容量为 …...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...