cc穿盾并发脚本_敢不敢模拟超过 5 万的并发用户?
閱讀本文大概需要 6 分鐘。
來自:http://t.cn/ES7KBkW
本文將從負載測試的角度,描述了做一次流暢的 5 萬用戶并發(fā)測試需要做的事情。
你可以在本文的結(jié)尾部分看到討論的記錄。
快速的步驟概要:
步驟 1 : 編寫你的腳本
開始之前,請確定從 JMeter 的 Apache 社區(qū) http://jmeter.apache.org 獲得了最新的版本。
你也會要下載這些附加的插件 ,因為它們可以讓你的工作更輕松。
有許多方法可以獲得腳本:
如果你的腳本是一份記錄的結(jié)果(像步驟 1&2 ), 請牢記:
步驟 2 : 使用 JMeter 進行本地測試
在 1 個線程的 1 個迭代中使用查看結(jié)果樹要素,調(diào)試樣本,虛擬樣本還有打開的日志查看器(一些 JMeter 的錯誤會在里面報告),來調(diào)試你的腳本。
遍歷所有的場景(包括 True 或者 False 的回應(yīng)) 來確保腳本行為確如預(yù)期...
在成功使用一個線程測試之后——將其提高到 10 分鐘 10 到 20 個線程繼續(xù)測試:
一旦你準備好了腳本:
步驟 3 : BlazeMeter 沙箱測試
如果那時你的第一個測試——你應(yīng)該溫習(xí)一下 這篇 有關(guān)如何在 BlazeMeter 中創(chuàng)建測試的文章。
將沙箱的測試配置設(shè)置成,用戶 300,1 個控制臺, 時間 50 分鐘。
對沙箱進行這樣的配置讓你可以在后臺測試你的腳本,并確保上的 BlazeMeter 的一切都運行完好。
為此,先按下灰色的按鈕: 告訴 JMeter 引擎我想要完全控制! - 來獲得對你的測試參數(shù)的完全控制
通常你將會遇到的問題:
如果仍然有問題,那就看看錯誤日志吧(你應(yīng)該可以把整個日志都下載下來)。
一個沙箱的配置可以是這樣的:
- 引擎: 是能使控制臺( 1 個控制臺 , 0 個引擎)
- 線程: 50-300
- 產(chǎn)能提升: 20 分鐘
- 迭代: 一直測試下去
- 時間: 30-50 分鐘
這可以讓你在產(chǎn)能提升期間獲得足夠多的數(shù)據(jù)(以防你遇到問題) ,而你將可以對結(jié)果進行分析,以確保腳本的執(zhí)行確如預(yù)期。
你應(yīng)該觀察下 Waterfall / WebDriver 選項卡來看看請求是否正常,你不應(yīng)該在這一點上出任何問題(除非你是故意的)。
你應(yīng)該盯著監(jiān)控選項卡,觀察期內(nèi)存和 CPU 消耗 - 這對你在步驟 4 中嘗試設(shè)置每一個引擎的用戶數(shù)量。
步驟 4 : 使用 1 個控制臺和 1 個引擎來設(shè)置每個引擎用戶的數(shù)量
現(xiàn)在我們可以肯定腳本能在 BlazeMeter 中完美運行了——我們需要計算出要多少用戶放到一個引擎中。
如果你能用戶沙箱中的數(shù)據(jù)來做這個決定,那就太棒了!
在這里,我會給出一種不用回頭去查看沙箱測試數(shù)據(jù)就能計算出這個數(shù)的方法。
設(shè)置你的測試配置:
- 線程數(shù): 500
- 產(chǎn)能提升:40 分鐘
- 迭代: 永久
- 時長: 50 分鐘
使用一個控制臺和一個引擎。
運行測試并(通過監(jiān)視選項卡)對你的測試引擎進行監(jiān)視。
如果你的引擎對于 75% 的 CPI 使用率和 85% 的內(nèi)存使用率都沒有達到(一次性的峰值可以忽略) 的話:
- 將線程數(shù)調(diào)整到 700 在測試一次
- 提交線程的數(shù)量直到線程數(shù)達到 1000 或者 60% 的 CPU 或內(nèi)存使用
如果你的引擎過了 75% 的 CPU 使用率或者 85% 的內(nèi)存使用,一次性的峰值可以忽略 :
- 看看你第一次達到 75% 的點,在那個點有多少并發(fā)用戶。
- 在運行一次測試, 而不是提高你之前 500 個用戶數(shù)量的產(chǎn)能
- 這一次將產(chǎn)能提升放到真實的測試中( 5-15 分鐘是一個好的開始) 并將時長設(shè)置為 50 分鐘。
- 確保整個測試過程中沒有超過 75% 的 CPU 使用率或者 85% 的內(nèi)存使用率...
為安全起見,你可以把每個引擎的線程數(shù)降低 10% 的。
步驟 5:安裝并測試集群
我們現(xiàn)在知道了從一個引擎中我們得到了多少線程,在該章節(jié)的最后,我們將會知道一個集群能給我們提供多少用戶。
一個集群是指具有一個控制臺(僅有一個)和 0-14 個引擎的邏輯容器。
即使你可以創(chuàng)建一個使用超過 14 個引擎的測試案例——但實際上是創(chuàng)建了兩個集群(你可以注意到控制臺的數(shù)量增加了),并且克隆了你的測試案例……
每個集群具有最多 14 個引擎,是基于 BlazeMeter 自己本身的測試,以確保控制臺可以控制這 14 臺引擎對新建的大量數(shù)據(jù)處理的壓力。
所以在這一步驟中,我們會用步驟 4 種的測試,并且僅僅修改引擎數(shù)量,將其增加到 14。
將該測試按照最終測試的全部時長運行。當測試在運行時,打開監(jiān)聽標簽,并且檢驗:
1,沒有一個引擎超過 CPU 75% 的占有率和內(nèi)存 85% 占有率的上限;
2,定位你的控制臺標簽(你可以通過一次點擊 Logs Tab->Network Information,查看控制臺私有 IP 地址來找到它的名字)——它不應(yīng)該達到 CPU75% 占有率和內(nèi)存 85% 占有率的上限。
如果你的控制臺達到了該上限——減少引擎數(shù)量并重新運行直到控制臺在該上限之下。
在這個步驟的最后,你會發(fā)現(xiàn):
查看 Aggretate Table 中的其他統(tǒng)計信息,并找到本地結(jié)果統(tǒng)計圖來獲得有關(guān)你集群吞吐量的更多信息。
步驟 6 : 使用 Master / Slave 特性來達成你的最大 CC 目標
我們到了最后一步了。
我們知道腳本正在運行,我們也知道一個引擎可以支持多少用戶以及一個集群可以支持多少用戶。
讓我們做一下假設(shè):
- 一個引擎支持 500 用戶
- 一個集群可以用戶 12 個引擎
- 我們的目標是 5 萬用戶測試
因此為了完成這些,我們需要 8.3 個集群..
我們可以用 8 個 12 臺引擎的集群和一個 4 太引擎的集群 - 但是像下面這樣分散負載應(yīng)該會更好:
每個集群我們用 10 臺引擎而不是 12,那么每個集群可以支持 10*500 = 5K 用戶并且我們需要 10 個集群來支持 5 萬用戶。
這樣可以得到如下好處:
現(xiàn)在,我們已經(jīng)準備好創(chuàng)建最終的 5 萬用戶級別的 Master / Slave 測試了:
你的 5 萬用戶級別的 Master-Slave 測試已經(jīng)準備好了。通過按 master 上的開始按鈕來運行 10 個測試,每個測試 5 千用戶。
你可以修改任意一個測試(salve或master),讓它們來自不同的區(qū)域,有不同的腳本/ csv /以及其他文件,使用不同的網(wǎng)絡(luò)模擬器,不同的參數(shù)等。
你可以在一個叫 “Master load results” 的 master 報告中的一個新 tab 頁中找到生成的聚合結(jié)果的報告,你還可以通過打開單個的報告來獨立的查看每一個測試結(jié)果。
·END·
程序員的成長之路
路雖遠,行則必至
總結(jié)
以上是生活随笔為你收集整理的cc穿盾并发脚本_敢不敢模拟超过 5 万的并发用户?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux忘记mysql登录用户密码_l
- 下一篇: 随机名字生成小demo源码