想要做性能測(cè)試,那必須得先從工具入手,針對(duì)目前市場(chǎng)上幾款主流的壓力工具,介紹介紹。
商業(yè)工具:
HP LoadRunner:這個(gè)工具放在第一個(gè)說,是因?yàn)樵缧┠曜鲂阅軠y(cè)試的時(shí)候,基本市場(chǎng)上都是使用這個(gè)工具。LR工具功能齊全,對(duì)于復(fù)雜場(chǎng)景的處理能力和對(duì)結(jié)果數(shù)據(jù)的分析能力比較不錯(cuò)。但是呢,這個(gè)工具安裝包就差不多1GB。光安裝就要很久,在老的電腦上運(yùn)行起來還不堪重負(fù)。因?yàn)槭巧虡I(yè)軟件,是通過不同的協(xié)議的license 來購買,但除了一些銀行,大型企業(yè)買,其余一些基本都是使用65536全協(xié)議的破解版本了。
開源工具:
Jmeter:隨著互聯(lián)網(wǎng)+的飛速發(fā)展,這個(gè)開源工具是互聯(lián)網(wǎng)性能測(cè)試的最常用工具。基本上取代了loadrunner的地位,隨著對(duì)JMeter使用的不斷深入,我個(gè)人越來越傾向于在自己的工作中使用JMeter工具,并且也會(huì)不遺余力的向我認(rèn)識(shí)的測(cè)試工程師推薦它。
? ?1、它是開源的,安裝及其簡(jiǎn)單,只需要提前安裝JDK,把jmeter文件包解壓就可使用。
? ?2、可以通過各種邏輯控制器的組合來實(shí)現(xiàn)比較復(fù)雜的測(cè)試場(chǎng)景,但這里面也很多測(cè)試工程師踩過坑的,因?yàn)榫退闶窍嗤倪壿嬁刂破鳎沩樞虿灰粯?,產(chǎn)生的場(chǎng)景也是不一樣的。
? 3、它的腳本修改,對(duì)于基本的場(chǎng)景需求主要是通過各個(gè)組件來控制,不依賴于編程。對(duì)于復(fù)雜或者一些特定的場(chǎng)景,可以通過自己編寫代碼實(shí)現(xiàn)其邏輯,這當(dāng)然也得需要一點(diǎn)代碼功底。如果能用的好,基本沒有解決不了的場(chǎng)景。
? 4、由于它的開源性,目前很多大的公司都是直接拿它的源碼進(jìn)行二次開發(fā),最后整成適合自己公司的測(cè)試工具,甚至是測(cè)試平臺(tái)。
tcpcopy : ?它是一款具有復(fù)制在線server流量的工具。這款工具顛覆了以往的測(cè)試方法,在互聯(lián)網(wǎng)+測(cè)試中比較火,因?yàn)榛ヂ?lián)網(wǎng)+測(cè)試迭代更新快,對(duì)于線上真實(shí)環(huán)境一些較為復(fù)雜的場(chǎng)景,在線下的測(cè)試場(chǎng)景中很難快速發(fā)現(xiàn)問題,或者很難重現(xiàn)問題,這個(gè)工具可以復(fù)制在線server流量到測(cè)試系統(tǒng)中,這樣就引入在線的復(fù)雜場(chǎng)景到測(cè)試系統(tǒng),從而可以在測(cè)試系統(tǒng)中充分暴露在線的問題,幫助用戶提前解決在線問題,降低上線失誤率或者實(shí)現(xiàn)零失誤。做的好的,讀寫接口的都可以直接在線上回放,這也當(dāng)然得需要成本的,還得架構(gòu)支持,一般公司都是針對(duì)它進(jìn)行二次開發(fā)后,加入個(gè)性化元素再使用。
Gatling:開源免費(fèi),它是一款基于Scala 開發(fā)的高性能服務(wù)器性能測(cè)試工具,它主要用于對(duì)服務(wù)器進(jìn)行負(fù)載等測(cè)試,并分析和測(cè)量服務(wù)器的各種性能指標(biāo)。Gatling主要用于測(cè)量基于HTTP的服務(wù)器,比如Web應(yīng)用程序,RESTful服務(wù)等。Gatling適用的場(chǎng)景包括:測(cè)試需求經(jīng)常改變,測(cè)試腳本需要經(jīng)常維護(hù);測(cè)試環(huán)境的客戶機(jī)性能不強(qiáng),但又希望發(fā)揮硬件的極限性能;能對(duì)測(cè)試腳本進(jìn)行很好的版本管理,并通過CI進(jìn)行持續(xù)的性能測(cè)試;希望測(cè)試結(jié)果輕量易讀等;喜歡它的原因有好幾個(gè):
? ? ?1、支持實(shí)時(shí)生成Html動(dòng)態(tài)輕量報(bào)表,從而使報(bào)表更易閱讀和進(jìn)行數(shù)據(jù)分析,打開速度比較快。
? ? ?2、 支持DSL腳本,從而使測(cè)試腳本更易開發(fā)與維護(hù)
? ? ? 3、 支持Maven,Eclipse,IntelliJ等,以便于開發(fā)
? ? ? 4、 支持Jenkins,以便于進(jìn)行持續(xù)集成