首頁 培訓網(wǎng) 最新資訊 熱門問答

軟件測試

18988787109 免費試聽 在線客服

您的位置: 深圳培訓網(wǎng) > 軟件測試培訓資訊 > 性能測試解惑之并發(fā)壓力(一)

性能測試解惑之并發(fā)壓力(一)

來源:教育聯(lián)展網(wǎng) | 發(fā)布時間: | 編輯:佚名

來源:51Testing軟件測試網(wǎng)

 

前言:之前一直做的軟件質(zhì)量工作,有過一些經(jīng)驗和一些不太一樣的思路,盡管與現(xiàn)在從事產(chǎn)品運營不同,但無論是內(nèi)涵還是聯(lián)系,都是非常緊密的,無論如何,我都會繼續(xù)關注產(chǎn)品的質(zhì)量問題。
上周跟一朋友闡述性能中并發(fā)的概念,嘰里咕嚕一大通,完了興致勃勃地讓她總結(jié)一下,她說了一句:感覺你研究的東西太初級,并發(fā)這種概念,太簡單,沒什么好說的。我聽了差點沒暈倒,估計她也暈了,真是失敗。
并發(fā)真的這么簡單?性能真的如我們所理解的那樣?
也許并不像我們想象的那么簡單,之所以我們?nèi)ヌ骄窟@些基本的概念,是因為在實際的工作中,我們發(fā)現(xiàn),很多問題到后知后覺才發(fā)現(xiàn),根源在于概念沒有統(tǒng)一,抑或沒有理解,而無論作為研發(fā)人員,還是顧問、銷售人員,我們除了自己理解,還需要與客戶交流溝通,因此,深刻理解并能通俗易懂的表達出來是非常重要的。
由于軟件性能的范圍比較大,我們將選取幾個典型的問題進行探究,相關概念的理解與分析將逐步進行公開。
● 如何考察性能
這個問題相信很多同事都了然于心了,基本都有自己的理解,我們也很少接到不懂性能的反饋,但很多人甚至包括客戶,都把響應時間或者并發(fā)用戶作為衡量性能的惟一依據(jù),支持10000并發(fā)?性能好!響應時間1秒?性能好!有些時候我們也會接到客戶一些要求,讓我們哭笑不得,某次一客戶就要求我們的產(chǎn)品支持10000并發(fā),有點汗,哈哈。
實際上性能是一項工程,嚴格地說,性能是在某一個特定環(huán)境下,系統(tǒng)所表現(xiàn)出來的上限事務處理能力。如果我們將這個問題細化,性能取決于具體環(huán)境,取決于系統(tǒng)架構(gòu),取決于軟件與服務器的優(yōu)化等等,也就是,我們所提供的內(nèi)部測試報告是具備一定的前提的(在一定的網(wǎng)絡或硬件環(huán)境下),如果我們的架構(gòu)是包含了10臺機器的集群,而客戶方提供的卻是2臺PC機,這種條件下還要求測試結(jié)果保持一致,就有點為難了。
盡管性能有很多范圍、指標、概念,比如響應時間、吞吐量、并發(fā)用戶、軟硬件負荷等等,但對普通用戶來說,并發(fā)用戶數(shù)與響應時間這兩個概念還是非常直觀與普通,認可度也非常高,搞清楚這兩個概念非常重要。后面我們會逐步闡述其他概念。
● 理解壓力
在談起并發(fā)這個概念之前,我們先來說說壓力,對系統(tǒng)而言,性能問題歸根到底,都會體現(xiàn)為實實在在的壓力。因此,我們一般說的“你這個系統(tǒng)的性能極限能到多少?”,其內(nèi)在含義指的就是“系統(tǒng)所能承受的極限壓力是多少”。
那么壓力究竟是什么呢?
我突然想起天天坐的地鐵,沒有比坐地鐵這件事情更便于形容性能與壓力了,哈哈。話說我每天在立水橋南上地鐵,絕對是考驗體力耐力心理素質(zhì)的事情?。ㄕf岔了)。
我們可以把一班地鐵列車看成是一個被測的系統(tǒng),對于這個系統(tǒng)而言,其壓力顯而易見,就是列車中所有的人,比如北京地鐵5號線,每列車的定員人數(shù)是1424人,折合每節(jié)車廂237人(當然包括站著的),而極限容納是1820人,折合每車廂303人,這個總承受人數(shù)。
其實就是系統(tǒng)(也就是列車)的特大設計承受壓力(也就是吞吐量了),當然,北京地鐵比較變態(tài),超員現(xiàn)象比較嚴重,我每天占用的面積還不超過10平方厘米(腳踮起來了),實際極限負荷估計超過2000了。對列車而言,超過極限負荷是比較危險的,要么是拉不動(這個估計可能性不大),要么人擠壞(君不見每天爭吵哀嚎無數(shù))。
如果超出設計負荷值,系統(tǒng)就會存在危險,危險是多方面的,因此,一般的,系統(tǒng)應該具備超出負荷的處理預案,對照到地鐵,高峰時期就會進行限流。
搞清楚這個問題后,再來看看常規(guī)的系統(tǒng),就好理解了,系統(tǒng)的壓力是什么呢?壓力是對被測系統(tǒng)而言的,只要系統(tǒng)在處理事務,就有壓力,這種壓力不僅僅體現(xiàn)在網(wǎng)絡上(數(shù)據(jù)的吞吐),還體現(xiàn)在服務器上(如CPU、內(nèi)存等),因此,我們不要混淆了吞吐量與壓力的關系,應該這么說,在一些web系統(tǒng)上,吞吐量可以在一定程度上反映系統(tǒng)承受的數(shù)據(jù)壓力。
另外,我們需要清楚,壓力不等于性能,壓力只是檢驗性能的一種手段,對一個性能良好的系統(tǒng),在一定的壓力下,應該可以保持正常運轉(zhuǎn),如果超過負荷,則應該分流或化解壓力,這也是我們需要檢驗的。
● 理解并發(fā)
說完壓力,我們已經(jīng)知道,壓力其實就是一種作用力,當然,還可以理解為一種量的度量,比如列車的承載數(shù),既然有量,就肯定有速度,承載總量(吞吐量)是一定的,但速度卻是變化的,我們早晚高峰的時候去乘地鐵,當然是擁擠非常,但如果你晚上11點去做地鐵,我可以很高興地告訴你,你還會有座位!
原因在于,早晚高峰時坐地鐵的人多,深夜時坐地鐵的人少(這不是廢話嗎)。我們再來想想,高峰的時候可能同一時間擠進門的人很多,基本上門有多大,同時擠進去的人就能把門給塞滿。
那么這個并發(fā)(虛擬用戶)是什么呢?
并發(fā)是有場景條件的,要看我們考察的是什么事情,我們再來想象一下地鐵,在整個地鐵大廳里(包括列車),有剛剛進站的,有正在買票的,有正在登車的,有坐在車上的,還有閑逛的,這么多人,但對列車有壓力的,其實就是已經(jīng)在車上的這些人(包括擠車的),如果我們考察性能的系統(tǒng)就是列車,很顯然,重點關心的就只需要看看車上現(xiàn)有的這些人。
再次強調(diào),并發(fā)跟考察的具體場景是有關系的,即并發(fā)做什么,并發(fā)這個詞,原始的翻譯是concurrent,意為同時發(fā)生的,或同時存在的。至于同時做什么,要看我們定義了,同時在地鐵大廳里,同時在地鐵上,同時在擠地鐵,考察的事情不一樣,并發(fā)的意義就不一樣。
對地鐵這個系統(tǒng)而言,每個時間都有新來的人,也有走的人,大家做的事情基本都相同,乘地鐵。假定某個時刻地鐵大廳中有10000人,檢票口候車的有100人,剛剛開走的地鐵上乘有2000人,那此時對考察的系統(tǒng)(列車)而言,并發(fā)就是2000人,而如果考察的是檢票處,則并發(fā)為100人,同樣,如果考察的系統(tǒng)是地鐵大廳,那此時的并發(fā)就是10000人。這種并發(fā)我們一般稱之為“廣義并發(fā)”。
廣義并發(fā)有點類似與通常我們所說的在線用戶,但存在關鍵的區(qū)別,即并發(fā)用戶針對的是某一件事務,譬如注冊、登錄、上傳、瀏覽等,而在線用戶是一個很泛的概念,一般包括前面所述的所有事務,可以理解為一個事務集合。
在性能的理論中,還有一個概念,simultaneously,翻譯為同步的,當前,為方便計算,我們一般把“同步”理解為“同1秒”,也就是說,這個同步的就是單位時間內(nèi)發(fā)生的數(shù)量。也即我們通常所說的“狹義并發(fā)”。需要注意的是,實際的測試中經(jīng)常會遇到被測事務響應時間低于這個1秒的單位時間,此時的并發(fā)計算仍需要按1秒計算,具體參見“我們的定義”中的說明。
很多時候,我們(特別是客戶)往往搞混了這兩個并發(fā)的概念。對系統(tǒng)來說,廣義的并發(fā)實際上是在一個時間內(nèi)操作事務的虛擬用戶,而狹義的并發(fā)指的是單位時間內(nèi)向系統(tǒng)發(fā)起請求的虛擬用戶,前者是“存在”,后者是“請求”,勿容置疑,壓力不僅僅受成功發(fā)出請求的用戶帶來的壓力,同時也受“存在”的用戶影響。
換種理解方式,并發(fā)考察的是系統(tǒng)的處理能力,上限能支持多少用戶同時處理某件事務,而不是壓力發(fā)出端發(fā)出的請求。
除此之外,并發(fā)作為一個量化的指標,是對應著具體的取值的,因此,很多系統(tǒng)會去尋求特大并發(fā),實際上,我們來回顧5號線的承載力的例子,核定載客1424人,這種情況可能考慮到乘客的感受(還算舒服,站著也算,哈哈)
● 理解我們的定義
在我們已經(jīng)做過的很多測試中,都有并發(fā)這個概念,當然也包括我們很多開發(fā)人員,所謂的并發(fā)是怎么定義的呢?
客觀的說,我們的定義比較接近于“廣義并發(fā)”,但有所不同。這與我們的考察對象(web系統(tǒng))、衡量事務(通常我們衡量的都是單個事務,很少把多個事務放在一起處理,原因在于盡量避免事務的耦合性所帶來的影響)有關,具體到地鐵的例子,如果我們考察的系統(tǒng)指“地鐵大廳”,那么我們所謂的并發(fā)一般通常指同時進入地鐵大廳的人。而如果我們考察的系統(tǒng)指“地鐵列車”,那么我們所謂的并發(fā)則指同時進入站臺的人。
在實際的產(chǎn)品測試中,比如我們在測試IDS登錄的時候,如果說,支持800并發(fā),其涵義為“支持800個虛擬用戶同時進行登錄操作”,需要說明的是,這個同時并非指同一秒,要知道,并發(fā)本身是沒有單位的。在800并發(fā)下的結(jié)果如何,要看響應時間,這個問題本文不進行仔細闡述。如有興趣可以參考相關資料。
測試中,我們也會考慮“狹義并發(fā)”的情況,但狹義并發(fā)需要考慮到被測系統(tǒng)的入口,比如,假定地鐵總共有10個入口且全部開放,每個入口只能容納1個人進出,則“狹義并發(fā)”下特大值就是10?不一定!因為我們還沒有考慮速度問題,前面提到,狹義并發(fā)的單位是秒,如果每個人經(jīng)過每個入口的耗時就是1s,則特大“狹義并發(fā)”值就是10,如果經(jīng)過的時間少于1秒呢?還是按1秒算,比如還是這個情景,乘客經(jīng)過入口的耗時假定為0.1秒,則特大狹義并發(fā)就是10/0.1=100了。

簡單點說,我們可以這么理解實際工作中的并發(fā),被測的事務總得有人(其實就是虛擬的用戶)來做,對吧,同時允許多少用戶來做這件事情呢?這個多少用戶就是我們需要的并發(fā)值。



教育聯(lián)展————專業(yè)的軟件測試咨詢服務平臺。
詳詢:王萍老師18988787201
詳詢:小文老師18988787201
深圳軟件測試培訓 深圳軟件測試培訓班
王萍老師 小文老師


課程精選:

中華考試網(wǎng)軟件測試培訓》
教育軟件測試培訓頻道》
《軟件測試培訓課程——深圳川石
《深圳川石軟件性能測試培訓》
《深圳川石企業(yè)性能測試(PL&LR)提升班
《持續(xù)集成自動化測試UFT Selenium提升班》
《深圳源昊寶安軟件測試培訓班》
《深圳凌岳軟件自動化測試培訓班》
《深圳博睿軟件安全測試培訓》
深圳達內(nèi)軟件測試培訓學校》

熱門機構(gòu)推薦
軟件測試

免費體驗課開班倒計時

11: 41: 09

稍后會有專業(yè)老師給您回電,請保持電話暢通

咨詢電話:18988787109

本周熱門資訊

全國分站 熱門機構(gòu)

北京軟件測試培訓 上海軟件測試培訓 廣州軟件測試培訓 深圳軟件測試培訓 杭州軟件測試培訓 蘇州軟件測試培訓 南京軟件測試培訓 天津軟件測試培訓 佛山軟件測試培訓 南寧軟件測試培訓 長沙軟件測試培訓 重慶軟件測試培訓 太原軟件測試培訓 青島軟件測試培訓 寧波軟件測試培訓 鄭州軟件測試培訓 西安軟件測試培訓 廈門軟件測試培訓 武漢軟件測試培訓 成都軟件測試培訓 無錫軟件測試培訓 濟南軟件測試培訓 昆明軟件測試培訓 貴陽軟件測試培訓 揚州軟件測試培訓 徐州軟件測試培訓 珠海軟件測試培訓 合肥軟件測試培訓 長春軟件測試培訓

深圳博為峰教育廣州博為峰教育深圳中公優(yōu)就業(yè)南京博為峰教育

申請試聽名額

已有10254人申請免費試聽

01電話咨詢 | 18988787109

QQ:2437116972
加盟合作:0755-83654572

今日已有25人申請,本月限額500