近期,有些同學(xué)提出希望我們撰寫些關(guān)于性能測(cè)試的技術(shù)文章。因此,小編今天通過上網(wǎng)查資料,結(jié)合項(xiàng)目實(shí)操過程中的一些問題,總結(jié)了一些關(guān)于性能測(cè)試的內(nèi)容,希望是大家想要了解的內(nèi)容哈。
首先,先來明確一個(gè)問題,我們?yōu)槭裁匆o產(chǎn)品/軟件等做性能測(cè)試?
時(shí)下,市面上絕大多數(shù)的軟件產(chǎn)品,都是分布式應(yīng)用。這就產(chǎn)生了一些有意思的現(xiàn)象:開發(fā)的產(chǎn)品在少量用戶使用時(shí),可能不存在問題,一旦用戶多起來,就容易出現(xiàn)系統(tǒng)癱瘓等多種問題。
那么,為什么會(huì)出現(xiàn)這種情況呢?這是由于用戶的使用數(shù)量、用戶場(chǎng)景的不確定性造成的。當(dāng)并發(fā)用戶數(shù)量超過負(fù)載量,系統(tǒng)就會(huì)陷入崩潰狀態(tài)。由此可見,對(duì)新開發(fā)的產(chǎn)品做性能測(cè)試是非常重要的。它能幫助我們了解系統(tǒng)可承受的并發(fā)用戶數(shù)量,帶寬、cpu、內(nèi)存、硬盤速度等。
2、性能測(cè)試的內(nèi)容
性能測(cè)試主要包括以下幾個(gè)方面的內(nèi)容:負(fù)載測(cè)試、壓力測(cè)試、容量測(cè)試等。
負(fù)載測(cè)試:不限制軟件的運(yùn)行資源,測(cè)試軟件的數(shù)據(jù)吞吐量上限,以發(fā)現(xiàn)設(shè)計(jì)上的錯(cuò)誤或驗(yàn)證系統(tǒng)的負(fù)載能力。目標(biāo)是確定并確保系統(tǒng)在超出預(yù)期量的情況下,是否能夠正常運(yùn)行。
壓力測(cè)試:也稱為強(qiáng)度測(cè)試。通過模擬實(shí)際應(yīng)用的軟硬件環(huán)境,及用戶使用過程的系統(tǒng)負(fù)荷,長時(shí)間或超大負(fù)荷地運(yùn)行,來測(cè)試被測(cè)系統(tǒng)的性能、可靠性、穩(wěn)定性等。
容量測(cè)試:可以看作是系統(tǒng)性能指標(biāo)中,特定環(huán)境下的特定性能指標(biāo),即設(shè)定的界限或極限值。
3、性能測(cè)試評(píng)價(jià)指標(biāo)
說了這么多,下面就要對(duì)性能測(cè)試的指標(biāo)做評(píng)價(jià)了。
從用戶的角度來說,一般響應(yīng)時(shí)間<2秒,就屬于流暢的體驗(yàn);如果響應(yīng)時(shí)間>10秒,則要考慮改進(jìn)響應(yīng)速度的問題;
從產(chǎn)品的吞吐量來說,我們需要關(guān)注硬盤IO(讀寫)、網(wǎng)絡(luò)IO(上行下行帶寬)、cupIO、服務(wù)器的處理能力、客戶端的打開頁面數(shù)量等。
另外,我們還需要了解用戶打開頁面、登陸服務(wù)器、實(shí)現(xiàn)消息發(fā)送等某一動(dòng)作的事務(wù)處理能力。
4、性能測(cè)試關(guān)注點(diǎn)
●響應(yīng)時(shí)間快慢,服務(wù)器端的處理速度
●服務(wù)器端的使用情況
●數(shù)據(jù)庫端的資源使用情況
●用戶訪問數(shù)量
●同時(shí)處理業(yè)務(wù)數(shù)量
●考察系統(tǒng)能否支撐7x24小時(shí)運(yùn)轉(zhuǎn)
●內(nèi)存資源、線程資源能否正常回收
●代碼,算法,sql語句設(shè)計(jì)是否合理
●整個(gè)系統(tǒng)的穩(wěn)定性,可恢復(fù)性
5、性能測(cè)試的核心原理
1)基于協(xié)議(前端、后端的通信機(jī)制),基于界面(與前端的交互),基于代碼(后端);
2)基于網(wǎng)絡(luò)的分布式架構(gòu):基于網(wǎng)絡(luò)協(xié)議去模擬用戶發(fā)送請(qǐng)求等;
3)基于多線程:模擬多線程操作,多人同時(shí)操作,模擬大負(fù)載量;
4)基于真實(shí)場(chǎng)景:模擬真實(shí)的網(wǎng)絡(luò)環(huán)境,用戶操作時(shí)間不確定性,操作不確定,得出數(shù)據(jù)的準(zhǔn)確性也存在差異。場(chǎng)景不對(duì),數(shù)據(jù)也不一定可用。
6、代碼實(shí)現(xiàn)性能測(cè)試
針對(duì)某一功能做性能測(cè)試,可以通過論壇的登陸以及發(fā)帖(post協(xié)議,多線程這兩點(diǎn))、登陸操作、發(fā)帖操作(涉及協(xié)議)等,并采用多線程同時(shí)操作。
7、Loadrunner的使用
Loadrunner的四個(gè)部件,分別是指:
●Vuser generator:開發(fā)性能測(cè)試腳本;
●Controller:提供多線程并發(fā)等操作;
●Ananlysis:結(jié)果分析;
●Load generator:負(fù)載生成器(controller里面的一個(gè)主鍵)