最近有童鞋找我问一些性能测试相关的问题,其中问的次数最多的,还是面试性能测试岗位,一般会问哪些问题?
我个人做过一段时间性能测试,年初也面试过几家公司的全职性能测试岗位,其中互联网医疗、物流、电商、金融行业的公司都有,企业规模大小兼具。
这篇博客,就将我面试时候遇到的问题整理一番,并附带其中一些问题的简略回答或相关资料,供大家参考。。。
面试岗位:性能测试工程师
职位类型:全职
面试问题:详见下文
一、基础篇
1、较为完整的性能测试的流程
2、性能测试的基础理论、常见术语
3、性能测试模型、类型
4、HTTP、TCP协议相关知识
5、连接池、线程相关知识
二、工具篇
1、Jmeter
①、Jmeter的工作原理是什么?
②、常用的元件、插件有哪些?各自的作用是什么?
③、几个典型的场景,如何基于jmeter设计测试脚本?
比如:参数化、关联、控制TPS、接口加密验签、阶梯式加压、集合点、检查点等;
④、是否会二次开发?如果会,怎么二次开发的(介绍大概过程和原因)?
2、Loadrunner
3、其他开源/商业性能测试工具
比如:Ngrinder、Locust、Wrk、Artillery等;
4、前端、服务器、数据库性能监测工具
三、系统架构篇
1、服务集群
2、负载均衡
负载均衡原理、实现方式
3、容量规划
4、缓存应用
缓存原理、缓存优点、缓存命中、缓存穿透、多层缓存
4、分布式框架
分布式的特点、面临的挑战:CAP理论(数据一致性、服务可用性、分区容错性)
5、全链路压测
四、服务器&中间件篇
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、性能优化的常见方法
以上为我个人面试过程中遇到的一些问题,当然面试遇到的问题限于企业类型、技术栈等各方面有所不同,仅供参考。。。