聲明:以下問題是我從事性能測(cè)試工作以來所遇到的一些常見問題,其解答均是我根據(jù)實(shí)際工作經(jīng)驗(yàn),或者我所獲得的各種資源(報(bào)刊書籍、論壇、QQ、MSN等)得到的信息整理而成,其回答內(nèi)容主要代表我個(gè)人觀點(diǎn),并非標(biāo)準(zhǔn)答案,讀者如有不同意見,歡迎批評(píng)指教。
Q:并發(fā)用戶數(shù)和集合點(diǎn)有必然聯(lián)系嗎?在性能測(cè)試中必須使用集合點(diǎn)來測(cè)試嗎?
A:并發(fā)用戶數(shù),顧名思義,就是同時(shí)操作的用戶,這里的“操作”可以指對(duì)系統(tǒng)真正的操作,也可以只是連接(此時(shí)通常叫作“并發(fā)連接數(shù)”),而集合點(diǎn)是一種特殊情況下的并發(fā),多用于測(cè)試系統(tǒng)在瞬間加壓的表現(xiàn)。因此,并發(fā)用戶數(shù)和集合點(diǎn)有聯(lián)系,但并非必然的聯(lián)系,在測(cè)試并發(fā)用戶的性能測(cè)試場(chǎng)景中,可以不必設(shè)置集合點(diǎn),這將視測(cè)試目標(biāo)和測(cè)試策略而定。
Q:不設(shè)置集合點(diǎn)的測(cè)試,能代表是“并發(fā)”操作嗎?
A:有這樣一種說法,設(shè)置集合點(diǎn)是為了確保“嚴(yán)格意義上”的并發(fā),其實(shí)從本質(zhì)上看,這主要是一個(gè)看問題的粒度大小的問題。集合點(diǎn)的作用是通過工具的控制,確保一個(gè)請(qǐng)求嚴(yán)格地“同時(shí)”從前臺(tái)提交到后臺(tái)。可是如果微觀地看,是不存在嚴(yán)格意義上的并發(fā)的,即使在客戶端通過設(shè)置集合點(diǎn)的方式將100個(gè)請(qǐng)求同時(shí)提交到后臺(tái),經(jīng)過網(wǎng)絡(luò)上的傳輸消耗,可能它們并不是同時(shí)到達(dá)的,而即便100個(gè)請(qǐng)求同時(shí)到達(dá)服務(wù)器端,受到中間件和應(yīng)用系統(tǒng)、數(shù)據(jù)庫的各種連接池、緩沖區(qū),CPU處理隊(duì)列等的限制,也可能在服務(wù)器端產(chǎn)生等待的。因此,嚴(yán)格意義上的“并發(fā)”可以說是不存在的,我們需要做的是在可以接受的粒度范圍內(nèi)取得一個(gè)最佳的平衡點(diǎn),站在這個(gè)平衡點(diǎn)的層面上去看待“并發(fā)”這個(gè)問題。
性能測(cè)試無非有兩個(gè)目的,一是評(píng)測(cè),二是調(diào)優(yōu)。
在以評(píng)測(cè)為目的的性能測(cè)試中,用戶更關(guān)心的是業(yè)務(wù)上的并發(fā),也就是真實(shí)業(yè)務(wù)場(chǎng)景的并發(fā)情況,這種情況下只要按照業(yè)務(wù)操作的模式去設(shè)置場(chǎng)景就可以了,并不需要設(shè)置集合點(diǎn)。
集合點(diǎn)是一種特殊情況下的并發(fā),通常是在以調(diào)優(yōu)為目的的性能測(cè)試中才會(huì)用得到,目的是有針對(duì)性地對(duì)某個(gè)可能存在性能問題的模塊施壓,以便找到性能瓶頸。
集合點(diǎn)在我實(shí)際的測(cè)試過程中用得并不多。
Q:性能測(cè)試的策略有哪些?
A:通常情況下存在性能調(diào)優(yōu)和性能評(píng)測(cè)兩種性能測(cè)試策略。----《軟件評(píng)測(cè)師教程》(清華大學(xué)出版社)第8章 應(yīng)用負(fù)載壓力測(cè)試Page 223