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