Python的性能測(cè)試神器-Locust

Locust(俗稱 蝗蟲), 一個(gè)輕量級(jí)的開源壓測(cè)工具婉宰,用Python編寫。


locustUI.png

網(wǎng)上已有不少的人總結(jié)了Locust與其余幾個(gè)性能測(cè)試翹楚之間的差異荆永。(燈光師包雀,麻煩往第三位佳麗這邊打亮一點(diǎn))

對(duì)比圖.png

得分項(xiàng):?jiǎn)螜C(jī)并發(fā)能力,Python溅蛉,開源免費(fèi)

掉分項(xiàng):不支持資源監(jiān)控,報(bào)告異常簡(jiǎn)單

紙上得來(lái)終覺(jué)淺他宛,始知此事須躬行船侧。

  1. 安裝(和一切python第三方包安裝方式一致)
    $ pip install locustio

  2. 編寫一個(gè)Locust 文件(保存為 一個(gè)py文件,取任意名厅各,比如basic.py)

from locust import HttpLocust, TaskSet, task

def index(l):
    l.client.get("/")

def stats(l):
    l.client.get("/stats/requests")

class UserTasks(TaskSet):
    # 列出需要測(cè)試的任務(wù)形式一
    tasks = [index, stats]
    # 列出需要測(cè)試的任務(wù)形式二 
    @task
    def page404(self):
        self.client.get("/does_not_exist")
    
class WebsiteUser(HttpLocust):
    host = "http://127.0.0.1:8089"
    min_wait = 2000
    max_wait = 5000
    task_set = UserTasks
  1. 在存放文件的目錄下以命令行方式運(yùn)行以上py文件
    $locust -f basic.py
    可見(jiàn)類似以下的畫面:
basic.png

4.打開瀏覽器镜撩,輸入地址:http://127.0.0.1:8089,開啟Locust Web操作頁(yè)面

LocustWeb.png
  • 第一個(gè)輸入框:想并發(fā)的人數(shù)
  • 第二個(gè)輸入框:虛擬用戶初始化的比例
    比如上圖中的意思就是想測(cè)試1000個(gè)虛擬用戶對(duì)系統(tǒng)的壓測(cè),剛開始的時(shí)候是以10人/秒的速度開始遞增到1000人队塘。

點(diǎn)擊“”Start Swarming“”后你就可以開始?jí)簻y(cè)你想壓測(cè)的系統(tǒng)了袁梗。

  1. 查看執(zhí)行結(jié)果(上一步點(diǎn)擊后頁(yè)面會(huì)自動(dòng)刷新到結(jié)果頁(yè)面,但是需要手動(dòng)停止)
statistics.png

也可以切換到Charts看圖形化結(jié)果

locustcharts.png

目前只有每秒請(qǐng)求數(shù)憔古,平均響應(yīng)時(shí)間遮怜,用戶的增長(zhǎng)曲線 三個(gè)圖可看。

當(dāng)然鸿市,你也通過(guò) Download Data鏈接下載剛才的結(jié)果锯梁。

再回到剛開始的問(wèn)題即碗,什么是Locust呢?

locust是一個(gè)易于使用的陌凳,分布式的剥懒,用戶負(fù)載測(cè)試工具。用于web站點(diǎn)(或其他系統(tǒng))的負(fù)載測(cè)試合敦,然后算出系統(tǒng)能夠處理多少并發(fā)用戶初橘。
locust的思想是:在測(cè)試期間,一大群"蝗蟲"會(huì)攻擊你的網(wǎng)站充岛,每一個(gè)"蝗蟲"的行為都是由你自己定義的保檐,同時(shí),可以在一個(gè)web界面上實(shí)時(shí)的監(jiān)控這群進(jìn)程崔梗。這會(huì)幫助你更好的"進(jìn)行戰(zhàn)斗"展东,在真正的用戶進(jìn)入之前,就找出代碼中的瓶頸炒俱。
locust完全是事件驅(qū)動(dòng)的,因此它能夠在單機(jī)支持?jǐn)?shù)以千計(jì)的并發(fā)用戶爪膊,相比許多其他的基于事件的應(yīng)用权悟,locust不使用回調(diào)函數(shù)。它使用輕量進(jìn)程---gevent推盛。每一個(gè)訪問(wèn)你的網(wǎng)站的locust實(shí)際上都在它自己的進(jìn)程內(nèi)部運(yùn)行(準(zhǔn)確地說(shuō)峦阁,是greenlet),也就是我們通常說(shuō)的協(xié)程。這允許你在不使用帶回調(diào)函數(shù)的復(fù)雜代碼的情形下耘成,使用python寫出非常具有表現(xiàn)力的腳本榔昔。

目前Locust支持的版本有:
Python 2.7, 3.3, 3.4, 3.5, and 3.6

Locust的高階應(yīng)用之后再慢慢探索。So far so good.
比如瘪菌,查看多目錄的網(wǎng)頁(yè)撒会,查看需要登錄后才能操作的網(wǎng)頁(yè),分布式的壓測(cè)等师妙。

能在這么短的時(shí)間內(nèi)就搭建好一個(gè)壓測(cè)工具诵肛,果然很Pythonic,希望以下的幾位 小哥哥為代表的大神們更加努力默穴,我們能更早用上一個(gè)有良好報(bào)告的Locust怔檩。

Authors.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蓄诽,隨后出現(xiàn)的幾起案子薛训,更是在濱河造成了極大的恐慌,老刑警劉巖仑氛,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乙埃,死亡現(xiàn)場(chǎng)離奇詭異闸英,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)膊爪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門自阱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人米酬,你說(shuō)我怎么就攤上這事沛豌。” “怎么了赃额?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵加派,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我跳芳,道長(zhǎng)芍锦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任飞盆,我火速辦了婚禮娄琉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吓歇。我一直安慰自己孽水,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布城看。 她就那樣靜靜地躺著女气,像睡著了一般。 火紅的嫁衣襯著肌膚如雪测柠。 梳的紋絲不亂的頭發(fā)上炼鞠,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音轰胁,去河邊找鬼谒主。 笑死,一個(gè)胖子當(dāng)著我的面吹牛赃阀,可吹牛的內(nèi)容都是我干的瘩将。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼凹耙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼姿现!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起肖抱,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤备典,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后意述,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體提佣,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吮蛹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拌屏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片潮针。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖倚喂,靈堂內(nèi)的尸體忽然破棺而出每篷,到底是詐尸還是另有隱情,我是刑警寧澤端圈,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布焦读,位于F島的核電站,受9級(jí)特大地震影響舱权,放射性物質(zhì)發(fā)生泄漏矗晃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一宴倍、第九天 我趴在偏房一處隱蔽的房頂上張望张症。 院中可真熱鬧,春花似錦鸵贬、人聲如沸吠冤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至郭变,卻和暖如春颜价,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诉濒。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工周伦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人未荒。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓专挪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親片排。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寨腔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容