LR中併發使用者和集合點

2022-05-04 02:33:11 字數 2032 閱讀 5807

看到51上三個高手zee, 大漠飛鷹,xingcyx的一場非常精彩的關於併發使用者數和集合點的討論,很有意義。如果對這兩個概念不清楚的朋友,一定要仔細領悟了。

故事開始於xingcyx的一番話:

q:併發使用者數和集合點有必然聯絡嗎?在效能測試中必須使用集合點來測試嗎?

a:併發使用者數,顧名思義,就是同時操作的使用者,這裡的「操作」可以指對系統真正的操作,也可以只是連線(此時通常叫作「併發連線數」),而集合點是一種特殊情況下的併發,多用於測試系統在瞬間加壓的表現。因此,併發使用者數和集合點有聯絡,但並非必然的聯絡,在測試併發使用者的效能測試場景中,可以不必設定集合點,這將視測試目標和測試策略而定。

q:不設定集合點的測試,能代表是「併發」操作嗎?

a:有這樣一種說法,設定集合點是為了確保「嚴格意義上」的併發,其實從本質上看,這主要是乙個看問題的粒度大小的問題。集合點的作用是通過工具的控制,確保乙個請求嚴格的「同時」從前台提交到後台。可是如果微觀地看,是不存在嚴格意義上的併發的,即使在客戶端通過設定集合點的方式將100個請求同時提交到後台,經過網路上的傳輸消耗,可能它們並不是同時到達的,而即便100個請求同時到達伺服器端,受到中介軟體和應用系統、資料庫的各種連線池、緩衝區, cpu處理佇列等的限制,也可能在伺服器端產生等待的。因此,嚴格意義上的「併發」可以說是不存在的,我們需要做的是在可以接受的粒度範圍內取得乙個最佳的平衡點,站在這個平衡點的層面上去看待「併發」這個問題。

效能測試無非有兩個目的,一是評測,二是調優。

在以評測為目的的效能測試中,使用者更關心的是業務上的併發,也就是真實業務場景的併發情況,這種情況下只要按照業務操作的模式去設定場景就可以了,並不需要設定集合點。

集合點是一種特殊情況下的併發,通常是在以調優為目的的效能測試中才會用得到,目的是有針對性地對某個可能存在效能問題的模組施壓,以便找到效能瓶頸。

集合點在我實際的測試過程中用得並不多。

zee:

集合是在產生負載的機器上的集合。如果考慮網路,中介軟體等等的因素。到伺服器肯定不會是同一時間點,那於是就有人希望能更接近在伺服器端實現併發的操作。認為這才是真正的併發。

我覺得首先要做的是分析應用系統,到底你想做的是什麼。

比如說,你想讓某個url能達到1000個同時請求的目的。這樣的目標就比較明確了。

而在討論集合點的時候,大家很少拿具體的東西來舉個例子。這樣有點說不清楚。要想達到併發。我覺得應該更具體的分析應用。再來定下目標來做。而不是一直在討論lr如何能實現。

xingcyx:

因為在實踐中,我經常會碰到這樣的情況:

測試需求說,該系統應支援200個併發使用者。

那麼我們就開始測,錄製好指令碼,下一步就是在場景中執行了,在控制台中設定某指令碼併發使用者數為200,測試結果為通過或未通過。此時爭議就來了:這200個使用者的指令碼如果執行通過,測試結果可以接受,是否可以說這個系統支援了200個併發呢?

大漠飛鷹:

測試前肯定要了解需求,或者說是測試目的。

就說明「該系統應支援200個併發使用者。」, 這種需求嚴格意義上來說是不合格的需求,因為描述不夠清晰,過於模糊等。

當然,在實際中,這類需求到了我們測試人的手裡也是常有的,一般就當普遍的情況來出來。

比如,web系統,就按2/5/8,或者2/5/10來處理,如果能通過就pass,否則就讓開發人員調優。

zee:

從集合點到併發數的確定。我覺得這其中的轉換最主要的地方在於分析業務。

比如使用者說了:要求200個使用者併發。

那要問清楚的就是,200個使用者是個什麼樣的比例,有多少人在幹這個,有多人在幹那個,按百分比,用不同的指令碼來跑。

如果說非要在伺服器上這個時間併發這麼多的使用者。我覺得只能盡量把它縮小到乙個時間段內。而這樣做我覺得並不是從分析業務出發的,

xingcyx:

樓上說的是最常見的一種情況,在這種測試需求下,我會設定乙個混合場景來測試,也就是按照做不同事情的使用者的百分比去設定。

但會有另外一些時候,並不是乙個實際的應用系統,可能是乙個開發平台,或者工作引擎等,它涉及的效能的概念會更偏向底層一些,這個時候可能就不是像一般的應用系統那樣,設定乙個混合場景來測試那麼簡單了。

大漠飛鷹:

一般說的併發數指的是業務併發,而不是伺服器端得併發數。

LR事務 集合點

事務 transaction 為了衡量伺服器的效能,我們需要定義事務。比如 我們在指令碼 中有乙個資料查詢操作,為了衡量伺服器執行查詢操作的效能,我們把這個操作定義為乙個事務,這樣在執行測試指令碼時,loadrunner 執行到該事務的開始點時,loadrunner 就會開始計時,直到執行到該事務的...

LR集合點與事務

舉個例子 如果現在測試登入的負載情況,我們需要先在登入步驟之前插入乙個集合,把登陸的整個操作 訪問網頁,輸入使用者名稱和密碼,提交 放到乙個事務裡面,此時模擬500人登入。這個時候500個vuser會在集合點處集合,然後併發對系統施壓,怎樣施壓呢,就是進入事務,對定義的事務進行操作。等到完成壓力測試...

LoadRunner併發使用者和集合點的深入討論

看到51上三個高手zee,大漠飛鷹,xingcyx的一場非常精彩的關於併發使用者數和集合點的討論,很有意義。如果對這兩個概念不清楚的朋友,一定要仔細領悟了。故事開始於xingcyx的一番話 宣告 以下的問答是我根據實際工作經驗和通過各種途徑得到的資訊而整理的,其回答內容主要代表我個人觀點,並非標準答...