新聞中心
在性能測試的學(xué)習(xí)過程中,堅持思想與工具(分開)并行,當(dāng)前面世面上的性能測試書籍大多把理論與loadrunner融為一體講解,這樣做是正確的,因為有一些性能名詞概念也源于工具。但是,性能測試不是loadrunner,所有的作者也是這么認(rèn)為的。但他們在講性能測試的時候講的就是loadrunner有,只是講的多少不同罷啦。

你是否覺得我對loadrunner有仇?我之所以將其分開來學(xué),只是希望自己在學(xué)習(xí)性能測試的時候不要被loadrunner局限了而已。只是覺得在做性能測試時不要帶loadrunner的思維,這樣更容易把握性能測試的本質(zhì)。
性能測試工具,從廣義上講,在性能測試過程中使用到的所有工具都可以稱其為性能測試工具。從狹義上來講,我們可以把性能測試工具分為服務(wù)器端性能測試工具與前段性能測試工具。
服務(wù)器端性能測試工具也我們測試人員通常所認(rèn)為的性能測試工具。LoadRunner、JMeter、SilkPerformance、服務(wù)器端壓力性能工具需要支持產(chǎn)生壓力和負(fù)載,錄制和生成腳本,設(shè)置和部署場景,產(chǎn)生并發(fā)用戶和向系統(tǒng)施加持續(xù)的壓力。
前端性能測試工具應(yīng)用比較廣泛,開發(fā)人員,前端開發(fā)人員、測試人員都會經(jīng)常用到。Firebug 、fildder2、Yslow 、前端性能測試工具只需要關(guān)于心瀏覽器等客戶端工具對具體需要展現(xiàn)的頁面的處理過程。
服務(wù)器性能測試工具原理
性能測試工具的主要作用是通過模擬生產(chǎn)環(huán)境中的真實業(yè)務(wù)操作,對被測試系統(tǒng)實行壓力負(fù)載測試,監(jiān)視被 測試系統(tǒng)在不同業(yè)務(wù)、不同壓力性能下的性能表現(xiàn),找出潛在的性能瓶頸進行分析、優(yōu)化。
客戶端與服務(wù)器相當(dāng)于兩個人,通過信息來進行交流。由于初次見面不好意思直接交流,與是找來了中間傳話人,客戶端把信息告訴給傳話人,由傳話人來轉(zhuǎn)達(dá)給服務(wù)器。那么服務(wù)器反饋的信息也由傳話人轉(zhuǎn)達(dá)給客戶端。一般性能測試工具都需要錄制或編寫客戶端行為腳本。
這樣傳達(dá)人就有了客戶端的行為能力,從而假扮客戶端來欺騙服務(wù)器,與之進行通信。有了客戶端行為了傳達(dá)人可以進行自我復(fù)制。從而變出N多個傳達(dá)人對服務(wù)器進通信。---這個傳達(dá)人的行為和能力也就是性能測試工具的基本特質(zhì)。(突然覺得性能工具像第三者插足,而且是可以自我復(fù)制瘋狂變態(tài)的第三者,哈哈?。?/p>
對于目前流行的性能測試工具,他們的基本工作原理都是一致的。在客戶端通過多線程或多進程模擬虛擬用戶訪問,對服務(wù)器端施加壓力,然后在過程中監(jiān)控和收集性能數(shù)據(jù)。
性能測試工具應(yīng)該具備什么的特質(zhì)呢?
1、工具本身占用系統(tǒng)資源少,可擴展性好,可用性強。
2、能模擬真實業(yè)務(wù)事務(wù)操作,在并發(fā)時能真正產(chǎn)生業(yè)務(wù)壓力。(這一點是核心)
3、對壓力測試結(jié)果能很好地進行性能分析,快速找出被測試系統(tǒng)的瓶頸。
4、測試腳本的重復(fù)性強。
服務(wù)器性能測試工具的架構(gòu)
用戶行為生成部分
我為什么說的這么朦朧,對于熟悉loadrunner的朋友,我說成虛擬用戶腳本生成器,你更容易理解,這個腳本,我們可以錄制,也可以手工編寫。你不要以為這是生成用戶行為的唯一方式。因為在JMeter成中是添加各種組件,通過對組件的配置來完成用戶行為的,當(dāng)然也可以通過錄制。而在相對簡陋的性能測試工具curl_loader(linux環(huán)境下的運行的),他是通過編寫配置文件的形式來描述用戶形為的。
我前面也有提了,雖然性能測試工具由不同的形式來描述,但他們的原理是一樣的,都是通過Proxy方式來實現(xiàn),具體來說,Proxy作為客戶端和服務(wù)器之間的中間人,接收客戶端的數(shù)據(jù)包。
壓力產(chǎn)生器
壓力產(chǎn)生器用于根據(jù)腳本內(nèi)容產(chǎn)生實際的負(fù)載,在性能測試工具中,壓力產(chǎn)生器扮演著“產(chǎn)生負(fù)載”的角色。也就根用戶的設(shè)置,進行自我復(fù)制來生成多個客戶端向服務(wù)器發(fā)送請求。對于工具來說,每復(fù)制出來的一份就是一個進程或線程,進程和線程的運行是要占用系統(tǒng)資源的。所以,對一臺壓力測試機來說能運行的虛擬用戶數(shù)也是有限的。根基測試機的配置而定。那么這個時候就要通過多臺測試機合作,來模擬更多的虛擬用戶向服務(wù)器發(fā)請求。
那么,對于性能測試來說,很重要的一點就是產(chǎn)生“并發(fā)”的請求,不然就不會對服務(wù)器產(chǎn)生壓力。那多臺機子如何產(chǎn)生“步調(diào)一致”的虛擬用戶呢?使用“用戶代理”
用戶代理
用戶代理是運行在負(fù)載機上的進程,該進程與產(chǎn)生負(fù)載壓力的進程或線程協(xié)作,接收調(diào)度系統(tǒng)的命令,調(diào)度產(chǎn)生負(fù)載壓力的進程或線程,從這個意義上看,用戶代理也是壓力產(chǎn)生器的一部分。
調(diào)度能力
我們在做復(fù)雜的性能測試時,常常會設(shè)計各種場景,不同的虛擬用戶數(shù),不同事務(wù)的用戶比例,運行時間,設(shè)置同步點等,這個時候也需要我們的測試工具有壓力調(diào)度能力。從而才能更真實的模擬我們所設(shè)計的運行場景。
監(jiān)控系統(tǒng)
監(jiān)控系統(tǒng)是性能測試工具直接與用戶進行交互的主要部分,監(jiān)控系統(tǒng),主要用戶在壓力測試過程中對各種軟硬件進行監(jiān)控,如對數(shù)據(jù)庫、應(yīng)用服務(wù)器,服務(wù)器的主要性能表現(xiàn)情況進行監(jiān)控。用于判斷系統(tǒng)當(dāng)前處于什么狀態(tài)。
當(dāng)然,監(jiān)控系統(tǒng)不是性能工具必須的部分,可以通過軟硬件系統(tǒng)自身的監(jiān)控工具或者第三方監(jiān)控工具進行監(jiān)控。但是否有強大的性能計數(shù)器監(jiān)控系統(tǒng)是衡量性能測試工具是否強大的指標(biāo)之一。
壓力結(jié)果分析
壓力結(jié)果分析工具可以用來輔助進行測試結(jié)果的分析,性能測試工具一般都能將監(jiān)控系統(tǒng)獲取的性能技術(shù)數(shù)器值生成曲線圖,折線圖等各種圖表。通過展現(xiàn)性能測試過程中的各種參數(shù)指標(biāo),來供測試人員進行分析。
但這里需要強調(diào)的是,壓力結(jié)果分析工具本身不能代替分析者進行性能結(jié)果分析,而只是提供多種不同的數(shù)據(jù)揭示和呈現(xiàn)方法而已。對于這些數(shù)據(jù)進行分析必然要依靠測試工程師對系統(tǒng)性能分析的知識和經(jīng)驗。
對上面介紹的性能測試工具架構(gòu)的組成部分,不是第一個性能測試工具都具備,而所具備的強大程度也不相同。比如,有些性能測試工具不具備用戶代理能,有些監(jiān)控系統(tǒng)能監(jiān)控的資源很有限或簡陋,有些結(jié)果分析數(shù)據(jù)的呈現(xiàn)不夠詳盡等。
網(wǎng)站標(biāo)題:性能測試工具原理與架構(gòu)
當(dāng)前地址:http://m.fisionsoft.com.cn/article/djcjpsg.html


咨詢
建站咨詢
