大概去年這個時候,寫過一篇博客:性能測試崗位常見面試題。當時是出於一個求職者的角度,對本身遇到的一些性能崗位面試問題進行了整理概括。html
最近這一年,對性能測試有了更多的認知,也作了大半年性能團隊的Leader,最近部門開放了性能測試工程師崗位,也面試了幾位候選人。linux
這篇博客,說說我對性能測試工程師的定位、須要的技能以及我面試候選人時會問的一些問題,僅供參考。。。面試
1、崗位定級算法
以我以前作性能團隊Leader時候的經從來說,對性能崗位的定級,大概是按照以下內容劃分:docker
崗位定級 | 崗位職責 | 薪資範圍(參照市場價) |
初級 | 編寫&執行腳本,數據收集統計,能在指導下完成簡單的性能測試工做 | 10-15k |
中級 | 獨立完成常規的性能測試工做,有必定的性能瓶頸分析能力 | 14-20k |
高級 | 能獨立或帶領team推進完成較爲複雜的性能測試工做,分析定位瓶頸並參與調優 | 20-30k |
資深/專家 | 從業務或架構角度,事前預防、事中定位調優、過後覆盤總體優化,更好的服務業務,迭代進化team水準 | 30-50k |
PS:如上定級和崗位職責描述,稍顯粗略,每一級都默認具備上一級的職責和能力。shell
2、面試問什麼緩存
以我今天面試了一個候選人的例子來講,我問了以下幾方面的問題:網絡
一、性能測試流程架構
重點:需求分析調研、預期指標設定、場景建模、環境數據準備、監控分析;併發
細節:如何分析性能需求?測試的目的、範圍如何界定?預期指標怎麼獲得?須要哪些數據和手段來評估?壓測環境配置模型如何抉擇?測試數據如何準備?
二、網絡協議
重點:HTTP、TCP、Dubbo及其餘RPC框架接口;
細節:三次握手、http和https的區別、AES和RSA的區別、RPC框架的原理、常見的RPC框架;
三、系統架構
重點:微服務、分佈式、SLB、ESB;
細節:docker&K8S&Prometheus、分佈式的系統,測試時要注意哪些?負載均衡實現原理?涉及到ESB類型的系統,如何進行性能測試?
四、中間件
重點:MQ&kafka、Redis、Tomcat、JVM、鏈路監控工具(cat、pinpoint、skywalking);
細節:MQ和kafka各自的優勢、如何測試MQ的性能、Tomcat參數配置&線程池、緩存穿透&緩存雪崩、Redis的緩存淘汰算法LRU&LRU、JVM堆的構成、OOM的原理&如何監控?
五、壓測&監控工具
重點:jmeter、locust、PTS、nmon、zabbix
細節:jmeter參數化&事務控制&二次開發&分佈式壓測、對其餘壓測工具的瞭解及使用程度、nmon使用&二次開發、zabbix監控部署、對監控實時可視化的瞭解;
六、linux相關
重點:常見的監控分析命令、查看日誌的幾種方式、CPU的工做原理、shell腳本;
七、常見性能瓶頸分析
重點:TPS上不去、負載不均衡、高併發下大量請求報錯、TPS波動大;
八、性能場景
重點:容量規劃、性能基線、全鏈路壓測;
PS:上面的問題會根據候選人具體的面試表現來針對性的提問,由淺到深,並非所有都會問到。
3、如何成爲一名合格的性能測試工程師?
一、快速學習,瞭解基礎的理論,學習常見的壓測監控分析工具;
二、在功能測試完成前提下,主動承擔性能測試工做,大量實戰;
三、尋找合適優秀的社區學習交流分享,思考沉澱;
四、加入我司,上面的幾點均可以獲得☺☺☺
此處插入一則招聘廣告,我司招人啦:高級性能測試工程師
如感興趣,可私信聯繫我內推或者BOSS投遞簡歷。。。
最後,正經來講,這是一篇性能測試崗位面試常見問題的blog,應該也表明了業內大部分該崗位的面試問題,非水貼。。。