性能測試分層模型-創(chuàng)新互聯(lián)

以下內(nèi)容選自《小強(qiáng)軟件測試瘋狂講義》一書

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),商洛企業(yè)網(wǎng)站建設(shè),商洛品牌網(wǎng)站建設(shè),網(wǎng)站定制,商洛網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,商洛網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

這里我特別提前說一句:任何東西都有一定的受眾群體,世界上也沒有任何東西可以讓所有人100%滿意。So,本書也是。只要本書中有一個(gè)篇章的內(nèi)容給你帶來了影響那就是這本書的價(jià)值!感謝大家的支持。

引子

我為什么會(huì)把這個(gè)話題放到最開始呢?就是因?yàn)檫@些年在企業(yè)工作中、在教育領(lǐng)域培訓(xùn)中接觸過不少朋友,在這個(gè)過程中我發(fā)現(xiàn)居然有95%以上的朋友不明白什么是性能測試,什么是自動(dòng)化測試,這都不要緊,但更可怕的是還對這些概念有巨大的誤解,從而導(dǎo)致學(xué)習(xí)的時(shí)候走了很多彎路,看的我也是萬般無奈,所以我們就先來好好聊聊性能測試和自動(dòng)化測試到底是什么,希望能幫助大家更加全面、深刻的理解它們。千萬不要小瞧這些,如果你的認(rèn)知都是錯(cuò)的,你怎么可能學(xué)的對呢?

另外,我也必須在開篇中指出一點(diǎn):所有人的學(xué)習(xí)都需要一個(gè)過程,也許你身邊有同事已經(jīng)經(jīng)歷了A階段到達(dá)了B階段,他或許會(huì)從技術(shù)層面鄙視你或者批判你,但是你不要?dú)怵H,誰都不是從娘胎里出來就會(huì)說話、就會(huì)跑步的,都需要經(jīng)歷這個(gè)特別“低級”的階段,這是必然。我們會(huì)一直堅(jiān)持正能量帶領(lǐng)“新人”成長,幫助你完成階段性的蛻變。

性能測試到底是什么

這個(gè)看似簡單的問題我相信很多朋友都無法全面地回答上來。可能知道的朋友會(huì)說性能測試就是用LoadRunner或者Jmeter工具搞個(gè)并發(fā)來壓測系統(tǒng),也可能會(huì)說性能測試就是同時(shí)讓很多人訪問系統(tǒng)看系統(tǒng)能否扛得住。這些回答我只能說對,但不夠全面,也不夠深刻,只是把表象描述了一下而已。其實(shí)真正的性能測試無法用一兩句話來簡單概括,因?yàn)樗婕暗臇|西太多了。

大部分小白朋友一說性能測試?yán)斫獾木褪菈簻y服務(wù)器,看服務(wù)器能不能扛得住,但這只是其中一方面而已,其實(shí)性能測試可以分為多個(gè)層級,每個(gè)層級的關(guān)注點(diǎn)以及測試方法等都不太一樣,我們常認(rèn)為的是服務(wù)器端側(cè)的性能測試。至于性能測試的分層我們會(huì)在后面的章節(jié)中給大家講解。

那性能測試到底應(yīng)該怎么去理解呢?我們不妨換個(gè)角度來看看,不論是大家理解的通過工具來壓測系統(tǒng)還是號(hào)召100個(gè)人同時(shí)去訪問系統(tǒng),都不過是實(shí)現(xiàn)的手段或者方法而已,我們更應(yīng)該關(guān)注性能測試的目的是什么,因?yàn)槟康牟灰粯幽敲磳?shí)現(xiàn)的手段或者方法就有可能不一樣。所以我們倒著來看看性能測試,不外乎就是這么幾個(gè)目的:

1) 壓測系統(tǒng)看系統(tǒng)的前端以及后端是否滿足預(yù)期(類似功能測試用例中的預(yù)期結(jié)果和實(shí)際結(jié)果的概念);

2) 壓測系統(tǒng)看系統(tǒng)可以承受的最佳壓力和大壓力,來判斷系統(tǒng)的承受極限;

3) 壓測系統(tǒng)看系統(tǒng)在長時(shí)間運(yùn)行下是否可以正常處理請求(類似疲勞測試)

4) 容量規(guī)劃,當(dāng)系統(tǒng)越來越穩(wěn)定的時(shí)候,我們要提前考慮它的遠(yuǎn)景規(guī)劃,或者更通俗的解釋就是“人無遠(yuǎn)慮,必有近憂”,這里的“遠(yuǎn)慮”就是容量規(guī)劃。

這樣看來我們應(yīng)該就能明白性能測試其實(shí)更多的是一個(gè)過程的統(tǒng)稱,并不是一個(gè)具體的定義,同時(shí)在學(xué)習(xí)性能測試的時(shí)候要暫時(shí)拋開功能測試的思想,否則很容易掉進(jìn)陷阱,這也是大部分小白朋友最容易犯的錯(cuò)誤。

性能測試分層模型

性能測試分層模型是為了讓大家更容易理解和學(xué)習(xí)性能測試而總結(jié)出來的,即使對于有一些經(jīng)驗(yàn)的朋友,我覺得這個(gè)分層模型也會(huì)對你在認(rèn)知上有所幫助的。該分層模型并不高大上,也有可能不夠完善,只是對雜亂的知識(shí)做了總結(jié)提煉,但對于小白朋友來說是非常好的良藥,可以幫助大家快速、全面地理解性能測試。分層模型如圖1.1所示。

性能測試分層模型

下面我們就來看看這個(gè)性能測試分層模型中每層所代表的含義。

前端層

前端層主要是指用戶看到的頁面。比如,電商網(wǎng)站的首頁、移動(dòng)APP的各個(gè)頁面,這些是用戶最關(guān)心的。對于用戶而言,你一個(gè)系統(tǒng)的快慢他們只會(huì)通過頁面的展現(xiàn)速度來判斷,并不會(huì)在意你后端處理的速度,所以我經(jīng)常說即使你后端優(yōu)化得很牛逼,但前端頁面性能卻非常差,那也是無用功。

以前這個(gè)層級是很多企業(yè)和測試工程師并不關(guān)注的,但近幾年對于前端性能的要求也越來越高,也是大家應(yīng)該了解的知識(shí)。本書將在后面的章節(jié)中詳細(xì)講解前端性能方面的知識(shí)和實(shí)踐經(jīng)驗(yàn)。

另外,APP的測試也是大家經(jīng)常問到的問題,我有時(shí)候特別無奈,大家張口就問:“APP性能測試怎么做啊?”,這樣的問題真的沒法回答。APP的性能測試至少包括兩個(gè)方面:APP的前端,也是現(xiàn)在業(yè)界里常說的APP專項(xiàng)測試;APP的后端,本質(zhì)上和Web

側(cè)性能測試一樣。所以,在問之前一定要明白這些知識(shí)別人才能有針對地回答你。

網(wǎng)絡(luò)層

任何系統(tǒng)都可以粗略地分成客戶端、網(wǎng)絡(luò)和服務(wù)器端,其中網(wǎng)絡(luò)是連接前后端的命脈,網(wǎng)絡(luò)質(zhì)量的好壞也有很大的影響。在性能測試中可能遇到的情況大致分為兩種,一種是測試不同網(wǎng)絡(luò)狀況下的大流量的表現(xiàn)(一般接觸的比較少),另一種則是壓力機(jī)和服務(wù)器最好在同一網(wǎng)段,不然壓力無法完整的到達(dá)后端,會(huì)在網(wǎng)絡(luò)層拖垮,這樣就沒法較為準(zhǔn)確地評測服務(wù)器端的性能情況了。如果你測試的是移動(dòng)端APP,那么你可能還要考慮在不同網(wǎng)絡(luò)狀態(tài)下的測試。對于網(wǎng)絡(luò)層的性能測試我接觸的非常少,為了不誤人子弟這里就不班門弄斧了。大家的重點(diǎn)是了解這個(gè)分層模型,對于理解性能測試很重要。

后端層

這里我分成了三種情況,也是絕大多數(shù)企業(yè)中應(yīng)用的方向,是大家必須了解和掌握的。同時(shí)大家也要明白,不論是Web端還是移動(dòng)APP端,在后端層性能測試的方法都是類似的。

第一,業(yè)務(wù)級:通俗點(diǎn)解釋就是從頁面錄制你的場景腳本。比如,現(xiàn)在有一個(gè)小強(qiáng)電商網(wǎng)站,你要通過頁面錄制腳本完成登錄、瀏覽單品頁、下單的流程。這個(gè)層級我想大家是最熟悉的,因?yàn)長oadRunner這個(gè)工具就是用來完成這樣的流程的,也是大部分小白同學(xué)必學(xué)的。至于怎么去完成我們在后面的章節(jié)中會(huì)詳細(xì)講解到。

這種性能測試方式有個(gè)致命的缺點(diǎn)就是依賴于頁面,如果頁面沒有開發(fā)完畢測試就無法提前進(jìn)行,而現(xiàn)實(shí)中測試時(shí)間往往被一味壓縮,因此我們有時(shí)候也很無奈,所以如何把測試的切入點(diǎn)盡可能的提前就顯得比較重要了。而接口級恰恰就解決了這個(gè)問題。

第二,接口級:這個(gè)層級是大部分公司做性能測試的選,也是最有效率的方式之一。比如,現(xiàn)在有一個(gè)登錄接口,你只需要知道入?yún)ⅰ⒊鰠⒁约耙?guī)則等即可編寫測試接口的代碼,不需要等待頁面的開發(fā),大大提前了測試的切入點(diǎn),但它要求測試工程師有一定的編碼能力。除此之外,接口級測試的擴(kuò)展性強(qiáng),可以通過完成接口的性能測試和功能自動(dòng)化測試框架來提升效率,性價(jià)比較高。具體如何去完成將在后面的章節(jié)中詳細(xì)講解。

第三,單元級:這個(gè)層級恰恰和接口級相反,很多公司想做,但有心無力。單元級大家理解為類似“單元測試”即可,比如,有一個(gè)PHP代碼塊,我們可能需要測試一下核心算法函數(shù)的性能,可以通過插樁或引入單元測試框架來完成,從而獲得它的執(zhí)行時(shí)間、CPU消耗以及內(nèi)存占用率等信息來優(yōu)化代碼性能,如圖1.2所示。性能測試分層模型

那為什么很多公司做不起來單元級的測試呢?可能有幾個(gè)原因:

1) 業(yè)務(wù)變化太快,涉及的代碼邏輯修改也比較大,這樣做單元級測試就得不償失了。

2) 開發(fā)朋友們確實(shí)沒有太多的時(shí)間寫單元測試代碼,畢竟業(yè)務(wù)邏輯代碼寫起來也很費(fèi)時(shí),沒有太多時(shí)間搞其他了。

3) 測試工程師編碼能力相對來說較弱,能獨(dú)當(dāng)一面完成單元測試的人少之又少,在加上時(shí)間緊迫就更無法做單元級的測試了。

我們聊完這些分層后,也許有的朋友會(huì)感覺其中有些技術(shù)很厲害,感覺很高大上??墒俏覀€(gè)人覺得不是你用多么厲害的技術(shù)就牛逼,只有用合適的技術(shù)帶來較高的性價(jià)比才是王道,有句話說的好:“最好的不一定是合適的,只有合適的才能發(fā)揮最好的效果”。

看完這些不知道大家是不是對性能測試有了不一樣的了解。當(dāng)然,這個(gè)模型不見得是最好的,只是根據(jù)經(jīng)驗(yàn)總結(jié)而來,也有很大的改進(jìn)空間,我希望的是能和大家一起交流來完善,并不希望來爭論對與錯(cuò),世間本身沒有絕對的對與錯(cuò),只有更多的交流你才能吸收更多的知識(shí)來武裝提升自己,俗話說的好:“你一個(gè)想法,我一個(gè)想法,我們交流一下就彼此擁有了兩個(gè)想法”,何樂而不為呢。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

文章名稱:性能測試分層模型-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://muchs.cn/article2/dcphoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站建設(shè)、商城網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)