性能测试工程师面试一定会问的14个面试题型

目录

前言

1、接口测试要在什么环境下测试?

2、压力测试工具能否安装在被测的WEB服务器上进行本地的压力测试?

3、云平台的性能测试

4、如何设置才能保持用户始终在线;

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

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

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

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

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

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

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

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

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

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

结语


前言

相信这些性能测试面试问题,在实际中很多人都会遇到。今天我给大家罗列出了14个高频题型,供大家参考。

性能测试工程师面试一定会问的14个面试题型_第1张图片

1、接口测试要在什么环境下测试?

参考答案:

测试设备允许的情况下,尽量把测试的应用部署到测试服务器上面。并且按照生产环境的部署方式来搭建测试环境。

如果在生产环境通过接口交互的应用在不同服务器,测试环境也要把应用在不同服务器。生产环境使用了,测试环境的服务器最好也是在环境下。

2、压力测试工具能否安装在被测的WEB服务器上进行本地的压力测试?

参考答案:

一般要求是发压和被压机器分离,便于分析压测结果,最好压测和被压的机器放置在同一机房,降低网络及带宽带来的数据波动和因此导致的瓶颈。

这里无论发压和被压,都是会占用资源。当出现系统瓶颈时,如果两个在同一个机器,对你的分析会造成很大的影响。

如果你的上层请求是同内网下的同idc的调用方法,那么你可以选择同idc的机器进行发压参考。

当然,如果你的预期QPS很低,完全不会达到机器瓶颈,只是验证一些内存泄漏等简单并发问题,混布也未尝不可。

3、云平台的性能测试

参考答案:

云平台的性能测试和一般的性能测试也是差不多的,云平台的性能并发容量比较大,用户数多一点。

1.首先分析性能测试点如:发生频率非常高的,关键程度非常高的资源占用非常严重的等;

2.性能指标如:首页打开速度,支持最大在线用户,系统支持的并发用户数等;

3.工具的选择:JMeter,Loadrunner等。

4、如何设置才能保持用户始终在线;

参考答案:

1.录不同的场景在多个里然后controllor里同时并发应该就行了。

2.登录后什么都不做,肯定要超时掉线的。那些保持在线的脚本,应该在action里面定时发送一些能够让服务器认为你仍然在线的请求,比如心跳请求,否则会掉线的。

另一种做法是你就保持思考时间不变,什么都不要发,但是让开发人员修改服务器端的超时时间,变得非常长,也可以达到不掉线的目的。

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

考察点:

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

参考答案:

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

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

考察点:

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

参考答案:

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

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

参考答案:

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

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

参考答案:

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

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

考察点:

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

参考答案:

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

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

考察点:

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

11、如何排查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;

12、介绍下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情况下会影响性能表现;

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

考察点:

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

参考答案:

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

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

考察点:

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

以上就是我在面试性能测试岗位候选人经常问到的一些问题,仅供大家参考。

性能测试工程师面试一定会问的14个面试题型_第2张图片 

结语

这篇贴子到这里就结束了,最后,希望看这篇帖子的朋友能够有所收获。

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

你可能感兴趣的:(软测面试题,经验分享,干货分享,面试,测试工程师,性能测试,面经,求职)