性能測試場景設(shè)計(jì)_第1頁
性能測試場景設(shè)計(jì)_第2頁
性能測試場景設(shè)計(jì)_第3頁
性能測試場景設(shè)計(jì)_第4頁
性能測試場景設(shè)計(jì)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

性能測試場景設(shè)計(jì)提到性能測試,大家想到的就是使用工具對應(yīng)用進(jìn)行加壓,看看應(yīng)用能承受多少并發(fā),TPS(TransactionsPerSecond)是多少,交易響應(yīng)時(shí)間是否在接收的范圍內(nèi)。不錯(cuò),這些都是大家最關(guān)心的應(yīng)用的性能指標(biāo),也是每個(gè)性能測試項(xiàng)目輸出的結(jié)果。然而,要實(shí)現(xiàn)這樣的效果卻并不是一件簡單的事情,因?yàn)樾阅軠y試是一個(gè)十分復(fù)雜的系統(tǒng)工程,對測試人員的能力水平提出了更高的要求,需要性能測試人員具備非常全面的知識與技能,能夠定位應(yīng)用的性能瓶頸,并提出適當(dāng)?shù)膬?yōu)化方案。通常,要對一個(gè)應(yīng)用進(jìn)行性能測試需要經(jīng)歷需求調(diào)研、環(huán)境準(zhǔn)備、腳本開發(fā)、數(shù)據(jù)預(yù)埋、場景設(shè)計(jì)、場景執(zhí)行、應(yīng)用監(jiān)控分析、瓶頸定位、瓶頸修復(fù)、回歸測試、結(jié)果整理、輸出報(bào)告等多個(gè)環(huán)節(jié)。性能測試的場景設(shè)計(jì)性能測試的場景如何定義?我們可以理解為功能測試中的用例,即性能測試的場景就是性能測試的用例。性能測試的場景是為了要實(shí)現(xiàn)特定的測試目標(biāo)而對應(yīng)用執(zhí)行的壓測活動(dòng)。性能測試場景的設(shè)計(jì)與執(zhí)行是整個(gè)性能測試活動(dòng)的核心與靈魂,沒有完整的場景設(shè)計(jì)就無法達(dá)到我們的測試目的,沒有合理的場景設(shè)計(jì)就不會(huì)發(fā)現(xiàn)系統(tǒng)的性能缺陷。我們所開發(fā)的測試腳本,所預(yù)埋的測試數(shù)據(jù)都是為了實(shí)現(xiàn)特定場景所準(zhǔn)備的。一個(gè)性能測試場景包含諸多要素,圖1中列出了一些必備的要素,其中測試模型作為測試場景的基礎(chǔ)與輸入。

在線Web類的應(yīng)用,測試指標(biāo)一般包括在線用戶數(shù)、最優(yōu)并發(fā)用戶數(shù)、最大并發(fā)用戶數(shù)、交易平均響應(yīng)時(shí)間、目標(biāo)TPS等等。對于接口調(diào)用類的應(yīng)用測試指標(biāo)一般包括目標(biāo)TPS、平均響應(yīng)時(shí)間等。測試模型就是被測試系統(tǒng)的各交易在線運(yùn)行時(shí)承受的交易數(shù)量(或請求數(shù)量)的比例而不是并發(fā)用戶的比例。為什么不是并發(fā)用戶的比例呢?因?yàn)閷?shí)際的用戶的操作具有不確定性,使用測試工具很難模擬真實(shí)用戶的行為。另外,在進(jìn)行運(yùn)營數(shù)據(jù)分析時(shí)很難獲取用戶的操作行為,而應(yīng)用的交易記錄卻很容易通過查詢的方式獲取。應(yīng)用實(shí)際承受的壓力是用戶的實(shí)際操作請求,在線用戶如果沒有進(jìn)行實(shí)際操作那么他最多將消耗一個(gè)連接線程,而應(yīng)用CPU并不會(huì)有什么資源消耗。100個(gè)用戶平均每個(gè)花費(fèi)10秒下一個(gè)訂單和10個(gè)用戶每1秒鐘下一個(gè)訂單對應(yīng)用帶來的壓力是一樣的。所以,在場景中能用最少的并發(fā)用戶來模擬真實(shí)的請求是最經(jīng)濟(jì)的選擇方式。那么,測試模型到底該如何確定呢?通過需求調(diào)研獲得。下面介紹的兩點(diǎn)是我們常用的調(diào)研方式:?對于還未上線運(yùn)營的新系統(tǒng),我們一般會(huì)讓應(yīng)用的產(chǎn)品經(jīng)理或負(fù)責(zé)人給出一個(gè)預(yù)估的比例;但是這個(gè)預(yù)估需要我們進(jìn)行評估,不是隨意的。對于一個(gè)以提供下單交易為主的應(yīng)用,通常下單交易是占整個(gè)模型的較大比例,如果需求方提出的模型是查詢比例較高,那么我們就有理由懷疑該模型的合理性。對于這種情況,我們建議選擇幾個(gè)常見的典型的模型來配合需求模型進(jìn)行場景設(shè)計(jì)。?對于已上線運(yùn)營的應(yīng)用,我們一般會(huì)分析實(shí)際的交易數(shù)據(jù)來確定交易比例,這樣會(huì)更加精準(zhǔn)。例如一個(gè)應(yīng)用對用戶提供下單、查詢、退款三個(gè)交易,我們通過DBA在線查詢某日的交易數(shù)據(jù)總量為200000筆,其中交易下單160000筆、查詢38000筆,退款2000筆,由此我們算出各交易的比例是80%、19%、1%,那么這個(gè)比例就是我們的測試模型。被測交易或使用的腳本測試腳本是測試場景的基礎(chǔ),腳本包括對應(yīng)的測試數(shù)據(jù),例如登錄所需要的用戶名與密碼、下單交易可能需要的銀行卡號等等??紤]到性能測試是多用戶并發(fā)的測試,所以需要提前準(zhǔn)備相應(yīng)的測試數(shù)據(jù),例如一個(gè)場景要對一個(gè)含登錄操作的交易進(jìn)行壓測,那么我們在場景設(shè)計(jì)時(shí)就要考慮可用的用戶名與密碼數(shù)量;又如,要對退款交易做測試,那么就需要提前準(zhǔn)備好可以退款的數(shù)據(jù),這就需要提前做好數(shù)據(jù)預(yù)埋準(zhǔn)備。一般情況下,為了方便我們統(tǒng)計(jì)TPS,建議一個(gè)腳本只包含一個(gè)完整的交易,不要把多個(gè)交易放到一個(gè)腳本中。因?yàn)?,不同的交易其響?yīng)時(shí)間會(huì)不同,響應(yīng)時(shí)間較長的交易會(huì)成為"瓶頸"。另外,我們設(shè)計(jì)測試場景時(shí)需要考慮不同交易的占比,如果多個(gè)交易存在同一個(gè)腳本里,場景的設(shè)計(jì)就無法實(shí)現(xiàn)。上文提到的"被測交易"是我們壓測的對象,也是應(yīng)用的入口。當(dāng)然,并不是被測應(yīng)用的每個(gè)交易都需要進(jìn)行壓測,這要視具體情況而定。如果被測應(yīng)用提供的交易非常多,我們可以考慮只選取占比比較大的交易進(jìn)行壓測,而占比較低的交易可以忽略。并發(fā)用戶數(shù)■或并發(fā)線程數(shù)量并發(fā)用戶和并發(fā)線程其實(shí)是同一個(gè)概念,只是在不同的性能測試工具中其叫法不同而已。在下文中我們統(tǒng)稱"并發(fā)用戶"。當(dāng)然,這些用戶是虛擬用戶,是壓力測試工具使用進(jìn)程或線程來模擬真實(shí)用戶請求的一種方式。并發(fā)用戶是每個(gè)場景提供不同壓力的直接來源,場景不同其需要的并發(fā)用戶數(shù)量可能會(huì)不同。那么是什么因素決定一個(gè)場景要并發(fā)用戶的多少呢?主要是被測交易的響應(yīng)時(shí)間和場景的目標(biāo)TPS。交易響應(yīng)時(shí)間的快慢是決定并發(fā)用戶數(shù)量的主要因素,例如一個(gè)應(yīng)用的某個(gè)交易響應(yīng)時(shí)間是50ms,如果要實(shí)現(xiàn)100TPS的目標(biāo),那么只需5個(gè)并發(fā)用戶即可達(dá)到(目標(biāo)TPS咬易平均響應(yīng)時(shí)間二并發(fā)用戶量)。如果響應(yīng)時(shí)間是100ms,那么實(shí)現(xiàn)同樣的TPS需要的并發(fā)用戶就會(huì)多一倍。加壓策略加壓策略就是并發(fā)用戶以什么樣的"步調(diào)”開始對應(yīng)用發(fā)起請求。常用的并發(fā)策略有同時(shí)加載、指定間隔時(shí)間的加載,梯度加載等方式。加壓策略的不同主要是模擬生產(chǎn)環(huán)境不同的情況,下面分別做簡單介紹。同時(shí)加載方式是指所有并發(fā)用戶在場景啟動(dòng)時(shí)同時(shí)發(fā)起交易請求而不包含任何等待,這樣會(huì)對被測應(yīng)用帶來突然的壓力,用于考察應(yīng)用在突然加壓下的表現(xiàn)是否符合預(yù)期。一般有用戶突增的業(yè)務(wù)特點(diǎn)的應(yīng)用會(huì)設(shè)計(jì)這樣的場景,例如,某些搶購系統(tǒng)、鐵路售票系統(tǒng)的按時(shí)放票功能等。當(dāng)然,對于那些并發(fā)用戶較少的場景也可以采用這種用戶加載方式。而對于有些應(yīng)用如果同時(shí)加載大量的并發(fā)用戶可能會(huì)出現(xiàn)異?;虺瑫r(shí),導(dǎo)致部分并發(fā)用戶失敗。指定間隔時(shí)間的加載方式是我們最常用的,這是為了模擬生產(chǎn)的實(shí)際情況,一般生產(chǎn)系統(tǒng)接收用戶請求都是逐漸增加的,到當(dāng)日交易的高峰時(shí)段達(dá)到最大。在場景設(shè)計(jì)時(shí),根據(jù)并發(fā)用戶的多少可以設(shè)置適當(dāng)?shù)脑黾宇l率,一般是"多長時(shí)間增加多少用戶"。例如,每一秒鐘增加一個(gè)用戶、每兩秒增加5個(gè)用戶等等。梯度加壓策略也是我們常用的一種用戶加載方式,但是這種方式嚴(yán)格來說應(yīng)該是一種梯度加壓場景。該場景一般是預(yù)先設(shè)置幾個(gè)并發(fā)用戶的梯度,每個(gè)梯度執(zhí)行幾分鐘,這樣就可以通過一個(gè)場景的執(zhí)行基本上找到應(yīng)用的最大TPS。在下文場景類型中,我們會(huì)詳細(xì)介紹這種場景。運(yùn)行時(shí)間每個(gè)類型的場景其執(zhí)行時(shí)間是不同的。表1為大家提供一個(gè)參考值。運(yùn)行時(shí)間是不包含用戶的加載時(shí)間和退出時(shí)間的,即全部用戶都在執(zhí)行的這段時(shí)間。表1各種典型場景運(yùn)行時(shí)間設(shè)置延時(shí)方式延時(shí)是上一筆請求完成到下一筆請求發(fā)起之間的時(shí)間間隔。延時(shí)在場景中的作用就是為了精準(zhǔn)控制TPS,或者降低當(dāng)前并發(fā)用戶數(shù)量下的壓力。而精準(zhǔn)控制TPS的目的就是考察應(yīng)用在特定壓力下是否存在性能問題。在某些性能測試工具中提供了三種延時(shí)設(shè)置方式:?第一種是上一次請求完成后立即發(fā)起下一次請求,也就是延時(shí)為0。?第二種是上一次請求完成后間隔指定的時(shí)間后再發(fā)起下次請求。?第三種是在指定時(shí)間內(nèi)完成一次請求,即區(qū)間型的延時(shí),這要求我們設(shè)置的這個(gè)時(shí)間要大于交易的響應(yīng)時(shí)間,也就是說要保證交易響應(yīng)時(shí)間在我設(shè)置的這個(gè)時(shí)間的區(qū)間內(nèi),否則就不能實(shí)現(xiàn)精準(zhǔn)控制TPS的目標(biāo)。在這個(gè)區(qū)間內(nèi),交易響應(yīng)時(shí)間無論如何變化,只要不突破我的這個(gè)最大區(qū)間,那么TPS就是平穩(wěn)的。在實(shí)際的場景設(shè)置中為了實(shí)現(xiàn)精準(zhǔn)的TPS控制目標(biāo)我們選用第三種設(shè)置方式。通過不斷地嘗試與調(diào)整,最終能夠達(dá)到目標(biāo)TPS。用戶終止方式和用戶加載方式對應(yīng),用戶終止方式是場景執(zhí)行完成后的用戶退出方式。一般使用的是"同時(shí)退出"和"每隔多少時(shí)間退出幾個(gè)用戶"這種方式。這里我們重點(diǎn)介紹一下"同時(shí)退出"這種方式。應(yīng)用在持續(xù)一段時(shí)間的壓力后如果突然壓力全部釋放了,那么這時(shí)的應(yīng)用在理想情況下應(yīng)該是怎樣的?CPU資源應(yīng)該從繁忙立即變?yōu)榭臻e,網(wǎng)絡(luò)傳輸也大幅降低,磁盤IO降為0等等。不然,那就是有某種問題的存在了。這時(shí)候就需要分析導(dǎo)致資源不能釋放的原因。各種資源的監(jiān)控方式資源的監(jiān)控方式也是我們場景設(shè)計(jì)時(shí)必須考慮的一個(gè)必要因素,在場景設(shè)計(jì)時(shí)就應(yīng)該確定每個(gè)場景的資源監(jiān)控策略。這些策略包括監(jiān)控的對象、使用的監(jiān)控工具或方法、監(jiān)控?cái)?shù)據(jù)采集頻率等。監(jiān)控對象一般是測試環(huán)境中所有操作系統(tǒng)資源使用(CPU、內(nèi)存、磁盤IO、網(wǎng)絡(luò)吞吐等)、數(shù)據(jù)庫(TOPSQL、數(shù)據(jù)庫鎖等待與死鎖、緩沖區(qū)命中率等)、JVM的運(yùn)行情況(堆內(nèi)存垃圾回收、線程狀態(tài)、數(shù)據(jù)庫連接池使用情況等)等。監(jiān)控?cái)?shù)據(jù)采集頻率也會(huì)因場景執(zhí)行的時(shí)間長度不同而進(jìn)行適當(dāng)調(diào)整,例如混合容量場景如果執(zhí)行30分鐘,那么采集頻率可以為每5秒鐘采集一次,共采集360次。但是,考慮到監(jiān)控要提前啟動(dòng),所以采集次數(shù)可以適當(dāng)增加一些,這樣可以確保整個(gè)監(jiān)控區(qū)間大于場景執(zhí)行區(qū)間,也就同時(shí)監(jiān)控到了資源使用在壓力發(fā)起前后的變化情況。對于執(zhí)行時(shí)間較長的場景,我們就要適當(dāng)調(diào)整采集間隔和采集次數(shù),例如對于一個(gè)執(zhí)行12小時(shí)的穩(wěn)定性場景,我們可以每50秒采集一次,共采集1000次。常見的場景類型單交易基準(zhǔn)一般使用一個(gè)用戶或一個(gè)線程,延時(shí)設(shè)置為0,對一個(gè)交易持續(xù)運(yùn)行10分鐘以上。該場景的主要目的是獲取單個(gè)交易在無壓力的情況下的基準(zhǔn)響應(yīng)時(shí)間及環(huán)境資源使用情況,作為其他場景的參考依據(jù)。單交易負(fù)載單交易負(fù)載的場景是為了找到單個(gè)交易的最優(yōu)TPS,檢測單交易在并發(fā)情況下是否存在性能瓶頸。這個(gè)最優(yōu)是以什么為衡量標(biāo)準(zhǔn)呢?通常以應(yīng)用或數(shù)據(jù)庫等系統(tǒng)的CPU使用率不大于70%為標(biāo)準(zhǔn)。為什么是70%?不能更高了嗎?通常在生產(chǎn)上運(yùn)行的應(yīng)用,如果CPU使用率長期處于高水平那是非常嚴(yán)重的問題,應(yīng)用的節(jié)點(diǎn)隨時(shí)都可能掛掉。對于生產(chǎn)環(huán)境各種資源的使用情況,通常運(yùn)維部門都會(huì)有實(shí)時(shí)的監(jiān)控,一般當(dāng)摸個(gè)節(jié)點(diǎn)的CPU使用率超過50%時(shí)就會(huì)觸發(fā)報(bào)警,如果長時(shí)間處于高負(fù)載狀態(tài),那么說明應(yīng)用節(jié)點(diǎn)可用資源不足,就應(yīng)該考慮進(jìn)行節(jié)點(diǎn)擴(kuò)充了。當(dāng)然,也并不是什么情況下都需要找到單交易的最優(yōu)TPS,這要分情況來對待。對于被測應(yīng)用提供的交易比較少的話,可以通過不斷測試找到每個(gè)交易的最優(yōu)TPS。但是,有的應(yīng)用提供的交易比較多,這時(shí)如果每個(gè)交易的最優(yōu)TPS都要找到,那就會(huì)需要較多的時(shí)間來進(jìn)行測試。單交易負(fù)載的場景具體該如何設(shè)計(jì)與執(zhí)行呢?如果你想找出每個(gè)交易的最優(yōu)TPS,可以從5個(gè)并發(fā)用戶開始,執(zhí)行幾分鐘后再增加5個(gè)用戶,直到應(yīng)用CPU使用率超過70%為止。場景的延時(shí)設(shè)置為0,場景執(zhí)行前需開啟相關(guān)監(jiān)控。該場景用于獲取單交易在并發(fā)情況下的響應(yīng)時(shí)間與TPS,發(fā)現(xiàn)交易本身是否存在并發(fā)問題,應(yīng)用是否會(huì)出現(xiàn)錯(cuò)誤和異常,響應(yīng)時(shí)間相對單交易基準(zhǔn)是否有明顯的提高,資源使用率是否在合理的承受范圍之內(nèi)等等。如果應(yīng)用存在性能缺陷該場景即可發(fā)現(xiàn)。當(dāng)然,如果你不想測試出每個(gè)交易的最優(yōu)TPS,那么單獨(dú)對每個(gè)交易做一次5個(gè)并發(fā)的負(fù)載測試即可。多交易混合負(fù)載多交易混合負(fù)載的目的是為了找到應(yīng)用的最優(yōu)TPS,即應(yīng)用CPU資源消耗在70%左右時(shí)的TPS(此時(shí)需確保數(shù)據(jù)庫等其他被調(diào)用資源不成為瓶頸)。按照測試模型中的交易比例及目標(biāo)TPS,對每個(gè)交易分配不同的并發(fā)用戶數(shù)量,設(shè)置不同的延時(shí),同時(shí)進(jìn)行加壓,通過多個(gè)子場景的不斷嘗試最終測試出應(yīng)用能夠達(dá)到的最優(yōu)TPS。這個(gè)場景比較復(fù)雜,一般需要經(jīng)過多次的測試與調(diào)整才能到達(dá)測試模型的比例要求。經(jīng)過單交易負(fù)載測試之后我們已經(jīng)獲取了每個(gè)交易的平均響應(yīng)時(shí)間,那么由此值我們便可以設(shè)置我們的混合負(fù)載場景。假設(shè),我們應(yīng)用的測試指標(biāo)TPS為100,單交易負(fù)載測試獲取的各交易響應(yīng)時(shí)間如下:下單0.4秒,查詢0.2秒,退款0.5秒,那么要達(dá)到100TPS的壓力,該如何設(shè)置場景??計(jì)算每個(gè)交易的TPS下單TPS=100*80%=80,查詢TPS=100*19%=19,退款TPS=100*1%=1?確定每個(gè)交易的并發(fā)用戶目標(biāo)TPS、響應(yīng)時(shí)間、并發(fā)用戶之間有這樣一個(gè)關(guān)系:目標(biāo)TPS二并發(fā)用戶/響應(yīng)時(shí)間如果一個(gè)交易響應(yīng)時(shí)間是0.2秒,那一個(gè)用戶時(shí)的TPS就是1/0.2=5。在咱們這個(gè)實(shí)例中每個(gè)交易的并發(fā)用戶計(jì)算如下:下單交易并發(fā)用戶數(shù)量=80*0.4=32查詢交易并發(fā)用戶數(shù)量=19*0.2=3.8退款交易并發(fā)用戶數(shù)量=1*0.5=0.5大家看到了,這里出現(xiàn)了非整數(shù)的情況,怎么辦?對于這種情況我們要進(jìn)行整數(shù)化處理。即我們一般取大于并最接近當(dāng)前數(shù)的整數(shù),3.8我們按4,0.5我們按1。整數(shù)化后對應(yīng)的響應(yīng)時(shí)間也應(yīng)該發(fā)生變化,否則就無法實(shí)現(xiàn)目標(biāo)TPS。整數(shù)化再次計(jì)算實(shí)際的響應(yīng)時(shí)間:查詢交易調(diào)整后的響應(yīng)時(shí)間=4/19=0.21退款交易調(diào)整后的響應(yīng)時(shí)間=1/1=1于是場景設(shè)置如下,下單交易并發(fā)用戶32個(gè)延時(shí)設(shè)置為0秒,查詢交易并發(fā)用戶4個(gè)延時(shí)設(shè)置0.01秒,退款交易并發(fā)用戶1個(gè)延時(shí)設(shè)置0.5秒,場景運(yùn)行時(shí)間10分鐘以上。但是這個(gè)場景運(yùn)行結(jié)果可能并不會(huì)完全符合我們的預(yù)期,因?yàn)椴l(fā)用戶相比單交易負(fù)載場景已經(jīng)增加了很多,交易的響應(yīng)時(shí)間很可能會(huì)出現(xiàn)明顯的延長。比如下單交易的實(shí)際響應(yīng)時(shí)間可能會(huì)延長到0.6秒,那么實(shí)際的TPS將明顯下降。如果出現(xiàn)這種情況該如何處理呢?我們推薦使用區(qū)間型延時(shí)設(shè)置,將這個(gè)"區(qū)間時(shí)間"設(shè)置的比實(shí)際交易響應(yīng)時(shí)間大一些,根據(jù)這個(gè)時(shí)間再計(jì)算對應(yīng)的并發(fā)用戶量。另外,建議大家建一個(gè)excel的表格,用于計(jì)算延時(shí)和并發(fā)用戶的值,效果見下表2。表2場景設(shè)置工具表目標(biāo)=TPS,交易名稱交易占比平均響應(yīng)時(shí)間延時(shí)設(shè)置(秒)并發(fā)用戶數(shù)50:下單80-00K0-40.4囪18查詢19-00?0-20_2112退款1TOOK0-52-0001100'下單80-00K0-50_56345查詢19-00K0.2L0.2635退款l.OOffi0.521_0001150下單80.00B0.70.75090查詢19-00K0.230.246-7退款LOOK0.550.6671200下單80-00K0-91_094175查詢19-00K0.270_28911退款1.OOK0.621_0002表2中的列"延時(shí)設(shè)置"的值是使用公式自動(dòng)計(jì)算出來的,公式為"二并發(fā)用戶單元格編號/(目標(biāo)TPS單元格編號*交易占比單元格編號)"。建立這個(gè)表之后我們只需手動(dòng)修改兩個(gè)列的值就可以方便地計(jì)算出每個(gè)場景下的每個(gè)交易的延時(shí),這兩個(gè)列就是"平均響應(yīng)時(shí)間"和"并發(fā)用戶數(shù)"。平均響應(yīng)時(shí)間隨著并發(fā)用戶的增加必然會(huì)相應(yīng)地增長所以在表2中每個(gè)場景的平均響應(yīng)時(shí)間數(shù)據(jù)都是上個(gè)場景的執(zhí)行結(jié)果。這樣我們每執(zhí)行完成一個(gè)場景,然后就把響應(yīng)時(shí)間的數(shù)據(jù)填寫到下個(gè)場景中,然后再修改并發(fā)用戶數(shù)量,并確保延時(shí)設(shè)置大于平均響應(yīng)時(shí)間即可,如果在測試執(zhí)行過程中出現(xiàn)平均響應(yīng)時(shí)間大于延時(shí)設(shè)置時(shí)間時(shí)需要停止場景重新計(jì)算。綜上所述多交易混合負(fù)載場景并不是一個(gè)場景而是一系列混合場景的集合。還以上例來說,目標(biāo)100TPS時(shí)我們分析監(jiān)控結(jié)果發(fā)現(xiàn)系統(tǒng)各項(xiàng)資源利用率都不是太高,這說明應(yīng)用還能夠承受更大的壓力。這就需要我們繼續(xù)加大壓力進(jìn)行測試。我們可能的場景是150TPS、200TPS等等。那么如何確定我們的壓力梯度呢?這就要看系統(tǒng)資源到底使用了多少,如果100TPS時(shí)發(fā)現(xiàn)系統(tǒng)各項(xiàng)資源使用率在50%左右,我們就可以估計(jì)應(yīng)用的最優(yōu)TPS應(yīng)該能夠達(dá)到150,那么我們下一個(gè)場景就是要按150TPS的目標(biāo)壓力去發(fā)壓,相關(guān)的并發(fā)用戶和延時(shí)根據(jù)上表進(jìn)行調(diào)整即可。如果不能實(shí)現(xiàn)150TPS的壓力,那么我們就要減少目標(biāo)TPS再進(jìn)行發(fā)壓,直到測試獲取到應(yīng)用的最優(yōu)TPS。多交易混合容量容量的意思就是應(yīng)用能夠達(dá)到的最大TPS。該場景是和多交易混合負(fù)載場景相關(guān)聯(lián)的,即通過多交易混合負(fù)載找出應(yīng)用承受的最優(yōu)TPS后繼續(xù)對應(yīng)用進(jìn)行加壓,直到找到應(yīng)用的最大TPS?;旌先萘繄鼍暗牟l(fā)用戶與延時(shí)調(diào)節(jié)方式和混合負(fù)載一樣,在這里就不再贅述了。大并發(fā)該類場景的目的是考察系統(tǒng)在大并發(fā)的情況下是否存在問題,是否有報(bào)錯(cuò),是否有用戶失敗等。大并發(fā)一般要設(shè)置一個(gè)延時(shí),用于到達(dá)最優(yōu)并發(fā)時(shí)的TPS。那么,大并發(fā)時(shí)的用戶到底設(shè)置多少,這個(gè)延時(shí)要設(shè)置多久,依據(jù)是什么呢?一般我們設(shè)置的并發(fā)用戶數(shù)量是最優(yōu)并發(fā)的5至10倍,而延時(shí)要通過計(jì)算得到。這里還是舉例說明,有一個(gè)應(yīng)用,測試得到的最大TPS為200,對應(yīng)的并發(fā)用戶為20,那么我們可以設(shè)置兩個(gè)大并發(fā)場景,即100并發(fā)用戶和200并發(fā)用戶。100并發(fā)時(shí)的延時(shí)設(shè)置為100/200TPS=0.5秒,200并發(fā)時(shí)的延時(shí)設(shè)置為200/200TPS=1秒,這個(gè)延時(shí)為區(qū)間型的延時(shí)。通常,在進(jìn)行大并發(fā)測試時(shí)獲得的TPS結(jié)果要比最大TPS低很多,因?yàn)樵诖蟛l(fā)時(shí)系統(tǒng)很有可能出現(xiàn)某些資源不夠用,線程很可能會(huì)出現(xiàn)嚴(yán)重的阻塞等等。如何考量大并發(fā)測試獲得的測試結(jié)果是否符合預(yù)期,或者說大并發(fā)測試通過的標(biāo)準(zhǔn)是什么?這個(gè)也沒有固定的標(biāo)準(zhǔn)可循,通常我們認(rèn)為只要符合如下兩方面的要求即可認(rèn)為測試通過。?最大并發(fā)用戶量是否能達(dá)到最大TPS時(shí)的5倍;?測試結(jié)果的TPS是否達(dá)到測試指標(biāo)的要求;需要說明的是這里的大并發(fā)和應(yīng)用的最優(yōu)并發(fā)與最大并發(fā)并不是一回事,二者并不相同。穩(wěn)定性給應(yīng)用一個(gè)恒定的壓力,使場景運(yùn)行較長的時(shí)間,用于測試應(yīng)用在長時(shí)間運(yùn)行下的表現(xiàn),TPS是否有較大波動(dòng)、是否有錯(cuò)誤和異常、是否存在內(nèi)存溢出等。根據(jù)業(yè)務(wù)類型不同一般會(huì)運(yùn)行不同的時(shí)長,對于5*8這樣的應(yīng)用穩(wěn)定性運(yùn)行8小時(shí)即可,7*24這樣的應(yīng)用最好能夠運(yùn)行12小時(shí)以上。恒定的壓力怎么選???通常有兩種方式。第一種,選擇應(yīng)用最優(yōu)壓力的80%最為目標(biāo)壓力,這種方式比較適合應(yīng)用的最優(yōu)TPS不是很高的應(yīng)用,比如200以下;第二種,如果應(yīng)用的TPS比較高,那么我們需要換一種方式,否則就會(huì)產(chǎn)生較多的測試數(shù)據(jù)。例如一個(gè)應(yīng)用的最優(yōu)TPS為1000筆渺,如果我們?nèi)∑?0%的壓力800筆/秒,那么加壓12小時(shí)的數(shù)據(jù)量為3456萬!這時(shí),我們使用200TPS的恒定壓力運(yùn)行12小時(shí)即可。擴(kuò)展性考察應(yīng)用的擴(kuò)展能力。未擴(kuò)展的情況下基本是一個(gè)子系統(tǒng)使用一個(gè)單獨(dú)的機(jī)器節(jié)點(diǎn),也就是應(yīng)用的單點(diǎn)情況。擴(kuò)展性就是,再對應(yīng)用進(jìn)行一個(gè)節(jié)點(diǎn)的擴(kuò)展,測試擴(kuò)展情況下的TPS。一般雙節(jié)點(diǎn)的總TPS達(dá)到單節(jié)點(diǎn)的1.8倍即認(rèn)為系統(tǒng)具有良好的擴(kuò)展性。壓測時(shí)我們選取混合容量場景中獲取到應(yīng)用最大TPS時(shí)的場景做為壓測場景,并使用不同的壓力機(jī)分別對兩個(gè)節(jié)點(diǎn)進(jìn)行加壓,考察測試結(jié)果能夠達(dá)到多少TPS??煽啃曰虍惓y試這種情況下一般是將壓力做為背景,對應(yīng)用所依賴的環(huán)境進(jìn)行模擬故障,考察應(yīng)用的表現(xiàn)是否符合預(yù)期。例如,在一定壓力背景下,模擬網(wǎng)絡(luò)的閃斷,待網(wǎng)絡(luò)恢復(fù)后應(yīng)用^,是否能夠及時(shí)恢復(fù)。背景壓力我們一般選取混合負(fù)載測試獲取最優(yōu)TPS時(shí)的場景即可。影響性影響性測試也是性能測試過程中經(jīng)常遇到一類場景。這種場景一般是針對提供非實(shí)時(shí)功能的應(yīng)用所設(shè)計(jì)的。例如,有批處理或異步處理的應(yīng)用。嚴(yán)格來說,這不應(yīng)該算是一個(gè)單獨(dú)場景類型,應(yīng)該是一種特定的測試類型。對于這類的測試我們一般分兩步來執(zhí)行,首先是在未啟用具有影響性的功能時(shí)測試出應(yīng)用的最優(yōu)和最大TPS;其次,啟動(dòng)具有影響性的功能,再按第一步的場景(場景的設(shè)置均不變)進(jìn)行測試,對比二者的TPS差別,這個(gè)差別就是我們要考察的影響性。擋板延時(shí)對比如果壓測環(huán)境使用了擋板,可以通過擋板來設(shè)置不同的延時(shí)進(jìn)行對比測試。比如延時(shí)設(shè)置為0.5秒,1秒,甚至2秒。根據(jù)不同的延時(shí)設(shè)置,增加相應(yīng)的并發(fā)用戶數(shù)量,調(diào)整場景的各項(xiàng)設(shè)置,考察應(yīng)用是否能夠達(dá)到最大TPS,是否出現(xiàn)并發(fā)用戶失敗或應(yīng)用異常等。對于擋板延時(shí),一般的作用是模擬被調(diào)用的系統(tǒng)的延遲,考察被測應(yīng)用在不同的延時(shí)情況下的性能表現(xiàn)?,F(xiàn)在的應(yīng)用系統(tǒng)很少有是完全獨(dú)立的了,或多或少地都需要調(diào)用別的系統(tǒng)來實(shí)現(xiàn)某些操作或業(yè)務(wù)。例如,對于一個(gè)支付系統(tǒng),起碼需要調(diào)用銀行通道、銀聯(lián)通道、手機(jī)短信通道等等第三方系統(tǒng)。由于受網(wǎng)絡(luò)傳輸、被調(diào)系統(tǒng)的性能等多方面的影響,每次調(diào)用

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論