性能测试岗位常见面试题

 

一、基础篇

1、较为完整的性能测试的流程

性能测试岗位常见面试题_第1张图片

2、性能测试的基础理论、常见术语

3、性能测试模型、类型

4、HTTP、TCP协议相关知识

5、连接池、线程相关知识

二、工具篇

1、Jmeter

①、Jmeter的工作原理是什么?

②、常用的元件、插件有哪些?各自的作用是什么?

③、几个典型的场景,如何基于jmeter设计测试脚本?

比如:参数化、关联、控制TPS、接口加密验签、阶梯式加压、集合点、检查点等;

④、是否会二次开发?如果会,怎么二次开发的(介绍大概过程和原因)?

2、Loadrunner

3、其他开源/商业性能测试工具

比如:Ngrinder、Locust、Wrk、Artillery等;

4、前端、服务器、数据库性能监测工具

三、系统架构篇

1、服务集群

2、负载均衡

负载均衡原理、实现方式

3、容量规划

4、缓存应用

缓存原理、缓存优点、缓存命中、缓存穿透、多层缓存

5、分布式框架

分布式的特点、面临的挑战:CAP理论(数据一致性、服务可用性、分区容错性)

6、全链路压测

关于全链路压测

四、服务器&中间件篇

1、JVM

JVM原理、启动参数配置、堆栈原理、垃圾回收原理、OOM原因和表现

2、Tomcat

配置、使用方法、启动参数配置

3、Nginx

配置、使用方法

4、Dubbo

服务注册、消息队列

5、RabbitMQ/Kafka

本身的特点、生产者、消费者如何管理

五、数据库篇

1、锁

2、索引

3、读写分离

4、分库分表

六、方案篇

1、设计性能测试方案需要考虑哪些问题?

时间成本、人力成本、环境&脚本可复用性、实现难度

2、针对某些情况,你会如何设计、优化方案?

七、案例篇

1、如何测试MQ?

2、压测中TPS上不去的原因分析?

3、测试环境和生产环境服务器配比如何选择?

服务器配置版本保持一致,容量测试后等量代换、考虑边际递减效应、容灾方案

4、发现瓶颈,如何分析?

自上而下,从局部到整体,瓶颈分析粒度

5、如何准备测试数据?如何防止数据污染?

生产数据备份、数据隔离、测试数据落入影子库、挡板、mock

6、性能优化的常见方法

关于性能优化之空间时间可靠性思考

八、常见4类问题汇总

问题一、接口测试要在什么环境下测试?

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

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

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

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

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

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

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

问题三、云平台的性能测试

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

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

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

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

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

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

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

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

总结:

相信这些常见面试问题,在实际中很多人都会遇到。作为软件测试工程师,对面试问题的严谨,注意提升自己良好的沟通和表达能力,在面试过程中体现出扎实的软件测试基础知识,足够的耐心、细心、信心、责任心,善于自我总结、自我督促和不断学习的能力,相信大家都能在面试中有出色的表现,找到心仪的工作。

你可能感兴趣的:(性能测试岗位常见面试题)