如何面试性能测试
最近,在Q群或者微信群里经常看到有测试朋友在问有没有性能测试面试的资料?如何面试性能测试岗位?
因为自己也一直在做性能测试,大大小小的项目加起来也好几十个了,而且,公司招聘性能测试,也面试过很多应聘者(极少令人满意,有些连linux命令都不会),这里就做个性能面试概要总结分享给大家吧,可能你看了会懵逼,因为需要一定的基础,你可以点击左侧加群来聊聊。
性能招聘要求
投递简历前,我们需要先了解对方的招聘要求,虽然招聘要求都是互相copy的,我们还是从某招聘网找一个20k+的性能测试招聘要求看看:
是不是觉得要求很多?所以,不会的,就查漏补缺吧。参考:https://www.processon.com/view/link/603259997d9c0872a676e584#map
性能面试准备
做性能测试需要掌握的知识面很宽泛,包括linux、数据库、各种中间件服务等等,而且还需要一定的深度,这样才能去做性能分析、定位、调优。总之就是架构师的知识面了,架构师精通的,你都要熟悉或者至少了解,像nginx,tomcat,mysql,redis,linux,jvm这几个常用的,基本上是面试必问的。
同时,最好再掌握1-2门编程语言及常用算法,最佳组合是python + java,我是用python造测试数据及数据库存量数据,用java开发jemter没有的取样器(比如jmeter没有自带dubbo协议接口的取样器,虽然现在已经有dubbo的第三方插件了,但是如果你面试的时候说是自己开发的,那逼格提升好几个档次),说明一下,jmeter是现在主流的客户端并发工具,市场使用率已经50%+了。
性能等级
有人说,我会做性能脚本,会跑并发了,我会做性能测试了,下面来看下到底自己几斤几两,能面个什么等级,或者你压根儿就还是个性能外行
网上有些资料是这么定义的:
性能外行:会做简单的脚本跑并发(复杂的,比如dubbo接口这些需要写代码的,就搞不定了);
性能初级:会性能监控;
性能中级:会常见性能问题的定位调优;
性能高级:会调优,性能自动化预警监控、容量规划。
如何面试性能
一般来说,面试性能,围绕以下几个方面去说就可以了:
介绍性能测试流程
参考:https://www.cnblogs.com/uncleyong/p/10860321.html
列举性能测试常见问题
性能测试结果中,我们关注的指标是tps和art(当然,也会关注各个服务器的各种资源情况),如果tps低,或者响应时间长,或者服务器资源紧张,那就需要我们去定位性能问题了,
常见的性能问题(有些只是表象,需要深层次定位): a.服务器 cpu:us & sy 内存:使用率及交换率 磁盘io:读写慢 磁盘容量 b.网络带宽:看当前收、发速度及有没有丢包、端口使用情况 c.cpu高:看线程信息;是否fgc等 d.队列问题(负载高):磁盘io队列(物理读高);线程队列(线程阻塞、锁竞争) e.各种连接池问题:不足、未释放 f.死锁问题:线程死锁、数据库死锁 g.sql问题:索引(未加、使用不当)、慢sql(全表扫描、循环插入 or 更新、查询结果未分页展示、sql逻辑)、长事务 h.应用log级别:设置不正确 i.缓存设置问题、没有利用好缓存 j.缺乏消息中间件 k.代码:业务逻辑代码冗余、遍历Map
上述问题详细分析、定位,请关注后续总结分享。
详细举例遇到的1-2个性能测试问题
参考:
小小建议
机会是留给有准备的人的,不要在机会来临时,才发现自己各种不足,建议大家充分利用上下班路上的时间,人的差距是下班后的几个小时产生的。
你可以任性的裸辞,但是切忌毫无准备的裸面,裸面就是浪费时间、浪费机会。
今天早上微信群一个群友发笔试题让大家助力,里面至少85%在我的博客中都能找到答案,^_^,所以,知识需要积累,全栈测试干货汇总目录:https://www.cnblogs.com/uncleyong/p/10530261.html
__EOF__
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!