** 深刻理解併發用戶 ** 提到軟件性能測試,相信性能測試人員對"併發用戶"這個詞彙並不陌生吧.那什麼是併發用戶呢?怎麼去理解併發用戶這個概念呢?我想,在這裏對這個概念作一個深刻的探討,相信會對你們有一個啓示做用。 之前作過幾個性能測試項目,但對併發用戶這個概念,就只是從字面上泛泛的理解爲:用戶在同一時刻對系統進行請求操做,而被測系統在同一時刻收到全部用戶發過來的請求操做並對其進行響應.這是我早期作性能測試所理解的一個概念,若是全部用戶不在同一時間點上發出請求操做就不該該稱之爲併發用戶,因此每當我作性能測試都會在請求操做前加上一個集合點.經過本身不斷的學習實踐,如今對這個概念又有了新的認識。 在英文中,併發用戶是concurrent users,concur是動詞,是同時發生,共同起做用的意思,concur 同時發生+ -ent 形容詞後綴,就是形容詞,同時發生的,同時存在的,並存的意思.那麼併發用戶就是同時發生的用戶,同時存在的用戶,並存的用戶的意思.其實在實際的性能測試中,不能拋開實際的業務場景而去談併發,我在之前對併發用戶的理解其實體現的是一個服務器端所能承受的併發用戶的概念.從這裏出發,併發用戶能夠從兩個角度去理解. 一 、業務角度,從業務的角度模擬真實的併發用戶訪問.這種併發的概念一般在性能測試(Performance Testing)方法中使用.在實際性能測試中,還有幾個和併發用戶相關的概念,就是"併發用戶數","系統用戶數","同時在線用戶數".假若有一個OA系統,該系統一共有5000個使用用戶,極端狀況就是5000個用戶同時在線,但實際狀況中不多發生,這裏5000就是系統的"系統用戶數";大多數論壇都設計了在線統計功能和最高峯時的在線人數,這裏統計的數字就是顯示在這一個時間段上登錄該系統的用戶數及"同時在線用戶數",而最高峯時的"同時在線用戶數"就是系統使用時最大的業務"併發用戶數",但這個併發用戶數並不表明服務器實際承受的壓力,服務器實際承受的壓力不只取決於"併發用戶數",還取決於用戶的業務場景.至於併發用戶數的具體值該如何估算,會再之後文章中深刻. 2、從服務器承受壓力的角度來考慮,這裏提到併發的概念一般在併發測試(Concurrency Testing)方法中使用,當大量用戶同時對系統進行請求操做時,體現的是服務器端承受的最大併發訪問數.和我之前理解的併發用戶是一個概念,這主要是針對同一個應用,同一個操做,同一個模塊或者數據記錄進行多用戶併發訪問. 從上面兩種不一樣角度對併發用戶的解釋,引出了兩種測試方法:性能測試方法和併發測試方法,不一樣的測試方法對於併發用戶在場景中的設計也是大相徑庭的,說到這裏,你們對併發用戶這個概念應該有了一個更清晰的概念了吧.