性能测试总结(三)--工具选型篇
性能測(cè)試總結(jié)(三)--工具選型篇
本篇文章主要簡(jiǎn)單總結(jié)下性能測(cè)試工具的原理以及如何選型。性能測(cè)試和功能測(cè)試不同,性能測(cè)試的執(zhí)行是基本功能的重復(fù)和并發(fā),需要模擬多用戶,在性能測(cè)試執(zhí)行時(shí)需要監(jiān)控指標(biāo)參數(shù),同時(shí)性能測(cè)試的結(jié)果不是那么顯而易見(jiàn),需要對(duì)數(shù)據(jù)進(jìn)行分析。這些特點(diǎn)決定了性能測(cè)試更適合通過(guò)工具來(lái)完成。
?
一、淺談為什么需要工具
我們來(lái)看下工具的定義:它原指工作時(shí)所需用的器具,后引申為為達(dá)到、完成或促進(jìn)某一事物的手段。(---來(lái)自百度的解釋)?
1、從人類進(jìn)化的角度來(lái)看,會(huì)制造并使用工具是人和猿人最根本的區(qū)別,因?yàn)楣ぞ呖梢詭椭覀兲岣呱a(chǎn)力和效率。
2、想象下如果不使用工具進(jìn)行性能測(cè)試會(huì)怎么樣?
我們可以從性能測(cè)試的定義的角度來(lái)分析,性能測(cè)試是指通過(guò)自動(dòng)化的測(cè)試工具模擬多種正常、峰值以及異常負(fù)載條件來(lái)對(duì)系統(tǒng)的各項(xiàng)性能指標(biāo)進(jìn)行測(cè)試。如果不使用工具,僅靠人工進(jìn)行性能測(cè)試會(huì)存在以下的弊端:
a)測(cè)試需要投入大量的資源:
為了模擬多種負(fù)載、并發(fā)的場(chǎng)景需要多人協(xié)同工作,通常測(cè)試沒(méi)有很多的資源,而且就算有資源人工的效果也會(huì)大打折扣,甚至于某些場(chǎng)景僅憑人工是無(wú)法完成的。
b)可重復(fù)性非常差:
性能測(cè)試經(jīng)常需要反復(fù)調(diào)優(yōu)和測(cè)試執(zhí)行,如果沒(méi)有工具的幫助,全靠人工實(shí)在不敢想象。
c)測(cè)試準(zhǔn)確性較差:
由于需要模擬多種負(fù)載和并發(fā)場(chǎng)景,如果由人工來(lái)操作,難免會(huì)存在誤差,而且相對(duì)工具或程序來(lái)說(shuō)這種誤差會(huì)更大,對(duì)測(cè)試結(jié)果影響也非常大。
d)結(jié)果的收集、整理和呈現(xiàn)形式差:
如果沒(méi)有工具,全憑人工采集數(shù)據(jù)相對(duì)工具來(lái)說(shuō)也會(huì)存在較大的誤差。
??
二、性能測(cè)試與性能測(cè)試工具的關(guān)系
1、性能測(cè)試從測(cè)試階段來(lái)劃分屬于系統(tǒng)測(cè)試,其和具體使用什么工具并沒(méi)有直接的關(guān)系。使用工具只是為了提高性能測(cè)試效率和準(zhǔn)確性的一種方法和手段。從本質(zhì)上來(lái)看,同做其它事情時(shí)使用工具沒(méi)有什么實(shí)質(zhì)性的區(qū)別。
2、性能測(cè)試不等于Loadrunner,LR只是性能測(cè)試工具其中的一種,而且它也不是萬(wàn)能的,在某些情況下它也并不能派上用場(chǎng)。推薦看下《讓LoadRunner走下神壇》和《讓LoadRunner再次走下神壇》這兩篇文章于對(duì)性能測(cè)試和LR的關(guān)系講的比較深刻。
3、自動(dòng)化測(cè)試工具與性能測(cè)試工具的區(qū)別:性能測(cè)試工具一般是基于通信協(xié)議的(客戶器與服務(wù)器交換信息所遵守的約定),它可以不關(guān)心系統(tǒng)的UI,而自動(dòng)化使用的是對(duì)象識(shí)別技術(shù),關(guān)注UI界面。自動(dòng)化無(wú)法或很難造成負(fù)載,但是通過(guò)協(xié)議很容易。
?
三、性能測(cè)試工具選型參考:
通常在公司或項(xiàng)目中,我們選擇任何工具時(shí)都會(huì)做一些調(diào)研,目的就是為了選擇適合公司或項(xiàng)目的工具。那么性能測(cè)試工具也不例外,通常可以從以下幾個(gè)方面進(jìn)行考慮:
1、成本方面:
a)工具成本:工具通常分為商業(yè)閉(shou)源(fei)和非商業(yè)開(kāi)(mian)源(fei)兩種,商業(yè)工具通常功能比較強(qiáng)大,收費(fèi),由于收費(fèi)所以可提供售后服務(wù),如果出了問(wèn)題有專業(yè)人士幫忙處理。而開(kāi)源工具通常是免費(fèi)的,功能有限,維護(hù)工具的組織也是自發(fā)的,所以如果碰到問(wèn)題需要自行解決,沒(méi)有專人提供服務(wù)。具體選擇商業(yè)還是開(kāi)源的工具,需要根據(jù)公司的情況,比如公司規(guī)模、愿意承擔(dān)的成本、項(xiàng)目綜合情況等方面考慮。一般來(lái)看大公司通常可以承擔(dān)的起工具的費(fèi)用,會(huì)考慮購(gòu)買商業(yè)工具。而小公司由于資金壓力,可能會(huì)選擇開(kāi)源的工具。
b)學(xué)習(xí)成本:使用任何工具都需要進(jìn)行學(xué)習(xí),這樣一來(lái)就會(huì)產(chǎn)生學(xué)習(xí)成本(比如:時(shí)間),因此我們?cè)谶x擇工具時(shí)也需要考慮到項(xiàng)目組成員的學(xué)習(xí)成本。如果有兩種工具A和B都能滿足項(xiàng)目組測(cè)試的需求,如果A工具大部分人都會(huì)使用,而B工具只有極少部分人會(huì)使用,那么建議優(yōu)先考慮A工具。通常,對(duì)于測(cè)試人員最好熟悉一款流程的商業(yè)(性能)工具,一款開(kāi)源免費(fèi)(性能)工具,還需要熟悉常見(jiàn)的(性能)腳本開(kāi)發(fā)語(yǔ)言等,這是基本要求。
2、支持的協(xié)議:
性能測(cè)試通常跟協(xié)議聯(lián)系非常緊密,比如B/S的系統(tǒng)通常使用http協(xié)議進(jìn)行客戶端和服務(wù)器商的信息交換,C/S的系統(tǒng)通常使用socket協(xié)議進(jìn)行信息交換。在選擇工具時(shí),需要考慮項(xiàng)目使用的協(xié)議。一個(gè)測(cè)試工具能否滿足測(cè)試需求,能否達(dá)到令人滿意的測(cè)試結(jié)果,是選擇測(cè)試工具要考慮的最基本的問(wèn)題。
3、生命力:
現(xiàn)在的性能測(cè)試工具非常多,比如LR,jmeter這類較大眾的工具網(wǎng)上相關(guān)的資料非常多,但一些小眾工具可能網(wǎng)上資料比較少。如果在工具使用過(guò)程中碰到了比較極手的問(wèn)題,在錄求解決方案或幫助時(shí),大眾的的工具相對(duì)來(lái)說(shuō)會(huì)比較有優(yōu)勢(shì)一點(diǎn),畢竟使用的人越多,資料越多,那么自己碰到的問(wèn)題也許別人早就碰到并解決了,即時(shí)之前沒(méi)有人碰到過(guò),由于使用研究的人多,通過(guò)社區(qū)或論壇的幫助相信總會(huì)有高手能協(xié)助解決的。
4、跨平臺(tái):
這一點(diǎn)自不必多說(shuō),看看JAVA為什么一直這流行就知道了。
?
四、常見(jiàn)性能測(cè)試工具:
性能測(cè)試工具,從理論上來(lái)講在性能測(cè)試過(guò)程中使用到的所有工具都可以稱其為性能測(cè)試工具,通常分為以下幾類:
說(shuō)明:
- 服務(wù)器端性能測(cè)試工具:需要支持產(chǎn)生壓力和負(fù)載,錄制和生成腳本,設(shè)置和部署場(chǎng)景,產(chǎn)生并發(fā)用戶和向系統(tǒng)施加持續(xù)的壓力。
- web前端性能測(cè)試工具:需要關(guān)于心瀏覽器等客戶端工具對(duì)具體需要展現(xiàn)的頁(yè)面的處理過(guò)程。
- 移動(dòng)端性能測(cè)試工具:同web端性能測(cè)試工具也需要關(guān)心頁(yè)面的處理過(guò)程,另外還要具體數(shù)據(jù)采集的功能,比如:手機(jī)CPU、內(nèi)存、電量,啟動(dòng)時(shí)間等數(shù)據(jù)的記錄。
- 資源監(jiān)控工具:這個(gè)主要是能夠收集性能測(cè)試過(guò)程中的數(shù)據(jù)以及良好的結(jié)果展現(xiàn)方式。
?
PS:本篇文章主要總結(jié)下服務(wù)器端性能測(cè)試工具LR和Jmeter,后面也會(huì)對(duì)這兩個(gè)工具進(jìn)行簡(jiǎn)單的對(duì)分。
?
五、常見(jiàn)性能測(cè)試工具特點(diǎn)
- JMeter:采用的是多線程模型,擴(kuò)展性很強(qiáng),不過(guò)制造壓力沒(méi)有那么高。它很適合用來(lái)壓一些Tomcat服務(wù),或者一些后端接口。JMeter的缺點(diǎn)是壓力值不能精確控制,難以適應(yīng)高并發(fā)的情況,而且由于是JAVA編寫的,本身比較消耗資源。
- LoadRunner:更像是一個(gè)模擬器,它比較適用于前端構(gòu)造較復(fù)雜場(chǎng)景的情況,比如模擬100個(gè)用戶登錄的場(chǎng)景,LoadRunner對(duì)非技術(shù)人員提供了很好的支持。LoadRunner不適用后端接口。
下表為JMeter和LoadRunner對(duì)比表:
| 描述 | JMeter | LoadRunner |
| 架構(gòu)原理 | 通過(guò)中間代理,監(jiān)控和收集并發(fā)客戶端的指令,把他們生成腳本,再發(fā)送的應(yīng)用服務(wù)器,再監(jiān)控應(yīng)用服務(wù)器反饋的過(guò)程 | 同JMeter |
| 安裝 | 簡(jiǎn)單,解壓即可,比較靈活 | LoadRunner安裝包比較大,安裝比較麻煩,工具本身相對(duì)比較笨重 |
| 支持的協(xié)議 | 支持多種協(xié)議:HTTP、HTTPS、SOAP、FTP、Database via JDBC、JMS等,但相對(duì)LR還是不夠全面,由于此原因相對(duì)來(lái)說(shuō)jemter比較靈活,輕便 | 支持的協(xié)議非常多,比較全面,但正因此顯得工具本身比較笨重,不夠靈活 |
| 腳本錄制 | 提供了一個(gè)利用本地ProxyServer(代理服務(wù)器)來(lái)錄制生成測(cè)試腳本的功能,也支持badboy錄制再生成JMeter腳本 | 自帶錄制功能強(qiáng)大,可直接錄制回放 |
| 并發(fā)模型 | 通過(guò)增加線程組的數(shù)目,或者是設(shè)置循環(huán)次數(shù)來(lái)增加并發(fā)用戶 | 支持多種并發(fā)模型,通過(guò)在場(chǎng)景中選擇要設(shè)置什么樣的場(chǎng)景,然后選擇虛擬用戶數(shù) |
| 分布式測(cè)試 | 支持,可設(shè)置多臺(tái)代理,通過(guò)遠(yuǎn)程控制實(shí)現(xiàn)多臺(tái)機(jī)器并發(fā)壓力 | 同JMeter |
| 資源監(jiān)控 | 通過(guò)JMeterPlugins插件和ServerAgent實(shí)現(xiàn) | 自帶資源監(jiān)控功能 |
| 報(bào)告分析 | 通過(guò)與Ant集成,生成HTML報(bào)告 | 自身支持生成HTML、Word報(bào)告 |
| IP | 不支持 | 支持 |
| 網(wǎng)速模擬 | 不支持 | 支持 |
| 擴(kuò)展性 | 開(kāi)源,可根據(jù)需求修改源碼 | 通過(guò)擴(kuò)展函數(shù)庫(kù)實(shí)現(xiàn) |
| 學(xué)習(xí)成本 | 主要是自學(xué)官網(wǎng)上的資料 | 網(wǎng)上資料和相關(guān)培訓(xùn)很多,購(gòu)買正版的話,還有技術(shù)支持 |
?
六、性能測(cè)試工具學(xué)習(xí)教程:
1、Loadrunner:目前還未整理,后續(xù)會(huì)慢慢整理成文章,敬請(qǐng)期待...
2、Jmeter:可查看我的另一篇文章Jmeter教程索引貼
3、Gatling:未使用過(guò),網(wǎng)上資料也比較少,入門推薦:新一代服務(wù)器性能測(cè)試工具Gatling
?
作者:Glen.He?
出處:http://www.cnblogs.com/puresoul/?
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利
轉(zhuǎn)載于:https://www.cnblogs.com/abcd19880817/p/7211102.html
總結(jié)
以上是生活随笔為你收集整理的性能测试总结(三)--工具选型篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 兴业信用卡账单分期可以提前还款吗?提前还
- 下一篇: ref和out区别总结