?????? 對于性能測試來說,個人認為知識面要比知識深度更加重要一點,除了測試工具和輪,至少要同時要對操作系統(tǒng)、網(wǎng)絡(luò)、數(shù)據(jù)庫、前端、語言、通訊協(xié)議都有所了解。然而在當今這個信息高速傳遞的社會,特別是IT行業(yè),先進的知識與技術(shù)是一個企業(yè)立于不敗之地關(guān)鍵因素。因此新技術(shù)新架構(gòu)新思想也是我們需要了解和熟悉的。
????? 作為一個合格性能測試工程師,必須要有大局觀和系統(tǒng)化的思維,要站在整個系統(tǒng)測試的角度看問題。一個優(yōu)秀的性能工程師必須要有相當?shù)闹R廣度。否則在測試期間,你必須依賴外界援助,例如:開發(fā)、運維、DBA。不僅效率不高,更關(guān)鍵的是可能會被誤導,漏掉很多性能BUG。我常常遇到團隊童鞋們在壓測時一看到TPS降了或者升不上去,就死盯著應(yīng)用,就著急的去分析線程或做CPU Profiling。找不到原因后有時問到我時,我習慣的第一句總是:系統(tǒng)架構(gòu)是怎么樣的?你看過數(shù)據(jù)庫碼?看過壓測客戶端碼?一定要先從全局看問題,系統(tǒng)(操作系統(tǒng)、數(shù)據(jù)庫、應(yīng)用程序)整體配置和常見優(yōu)化是否到位,然后再隔離到是應(yīng)用層面、DB層面抑或是壓測客戶端層面后再進一步深入定位問題。
一名合格的性能工程師應(yīng)該包含如下能力:
????? 1)熟悉Java(包括JVM內(nèi)在機理)/c/c++。理由很簡單,主站大部分的外圍應(yīng)用和中間件都是?? JAVA寫的,底層核心系統(tǒng)是c/c++寫的。
?? ?? 2)精通linux管理和shell編程。理由更簡單,shell熟練與否非常大程度決定了一個工程師的工作效率。例如可以用腳本實現(xiàn)linux基本配置的優(yōu)化,jdk、監(jiān)控自動化安裝等。
????? 3)對數(shù)據(jù)庫管理和性能優(yōu)化有自己的實踐和心得(數(shù)據(jù)庫永遠是個性能要點)
????? 另外,性能測試還會接觸各種各樣的組件,MQ、hadoop、Elasticsearch、Flume、FastFDS等等,我們很難對每個組件都進行深入研究,但是需要了解它的原理和應(yīng)用場景,方便定位和問題的排除。說到底,做性能一是有相當?shù)闹R廣度,二是經(jīng)驗積累。
下面是我吸取前人的經(jīng)驗整理出來的性能測試技術(shù)體系:
性能測試的常識你知道幾個?
性能測試環(huán)境的重要性和需要注意,你知道多少?
下面就是性能測試專家需要考慮的內(nèi)容了
來個全的,可能看不清楚,想要獲取全量的請到飛測QQ群獲取。
百度網(wǎng)盤:
鏈接:http://pan.baidu.com/s/1dE5fwYH 密碼:mw4k