一款hackable的壓測(cè)工具Locust(一)

本文章轉(zhuǎn)載于搜狗測(cè)試

一.介紹

Locust是一個(gè)用于可擴(kuò)展的,分布式的甜孤,性能測(cè)試的,開源的畏腕,用Python編寫框架/工具缴川,它非常容易使用,也非常好學(xué)描馅。它的主要思想就是模擬一群用戶將訪問(wèn)你的網(wǎng)站把夸。每個(gè)用戶的行為由你編寫的python代碼定義,同時(shí)可以從Web界面中實(shí)時(shí)觀察到用戶的行為铭污。

官網(wǎng)地址:http://locust.io/

二.安裝

1.確保你的python環(huán)境恋日,ok膀篮。

2.確保有pipy 或者easy_install

3.pipinstalllocustio ? ? ?或者 ? ??easy_installlocustio

如果出現(xiàn)以下的錯(cuò)誤,恭喜你 pip版本低岂膳。(不小心暴露華安真名誓竿?)

升級(jí):python -m pip install -U pip

4.使用locust --help 沒(méi)出錯(cuò)就恭喜你好了,但是實(shí)際上是會(huì)出錯(cuò)的谈截。筷屡。。傻盟。速蕊。。娘赴。

會(huì)出現(xiàn)规哲,這個(gè): ???locust failed to create process

好吧,這個(gè)時(shí)候網(wǎng)上找到文檔是這樣的:https://segmentfault.com/q/1010000005615543

是pip的bug诽表,去python的安裝目錄里面的script里面的 ?locust-script.py 文件中的第一行 ?用引號(hào)擴(kuò)起來(lái)就行了唉锌。具體圖文看連接吧。

5.然后繼續(xù)locustio --help 然后出現(xiàn)

ImportError: No module named 'core'

解決辦法:

pip uninstall locustio

pip install git+git://github.com/locustio/locust.git@master#egg=locustio

6.locust --help 成功

以上是window的安裝竿奏,Linux有坑我也搞定了袄简,如果有人遇到,希望華安伸出愛(ài)的小手泛啸,私聊我或者加群在群中@我绿语,群號(hào):459645679

三、使用篇

先上代碼:壓測(cè)123.sogou.com ? //噓候址,大家不要聲張吕粹,我會(huì)被開的

from locust import HttpLocust, TaskSet, task

class WebsiteTasks(TaskSet):

def on_start(self):

self.client.post("/login", { ? //隨便寫的,其實(shí)沒(méi)有登錄

"username": "test",

"password": "123456"

})

@task(2)

def index(self):

self.client.get("/yx/")

@task(1)

def about(self):

self.client.get("/yx/yeyou")

class WebsiteUser(HttpLocust):

task_set = WebsiteTasks

host = "http://123.sogou.com"

min_wait = 1000

max_wait = 5000

解釋:

在這個(gè)示例中岗仑,定義了針對(duì)http://123.sogou.com網(wǎng)站的測(cè)試場(chǎng)景:先模擬用戶登錄系統(tǒng)(假的匹耕,實(shí)際沒(méi)有登錄),然后隨機(jī)地訪問(wèn)首頁(yè)(/yx/yeyou)和關(guān)于頁(yè)面(/yx/)荠雕,請(qǐng)求比例為1:2稳其;并且,在測(cè)試過(guò)程中炸卑,兩次請(qǐng)求的間隔時(shí)間為1~5秒間的隨機(jī)值既鞠。

那么,如上Python腳本是如何表達(dá)出以上測(cè)試場(chǎng)景的呢盖文?

從腳本中可以看出损趋,腳本主要包含兩個(gè)類,一個(gè)是WebsiteUser(繼承自HttpLocust,而HttpLocust繼承自Locust)浑槽,另一個(gè)是WebsiteTasks(繼承自TaskSet)。事實(shí)上返帕,在Locust的測(cè)試腳本中桐玻,所有業(yè)務(wù)測(cè)試場(chǎng)景都是在Locust和TaskSet兩個(gè)類的繼承子類中進(jìn)行描述的。

那如何理解Locust和TaskSet這兩個(gè)類呢荆萤?

簡(jiǎn)單地說(shuō)镊靴,Locust類就好比是一群蝗蟲,而每一只蝗蟲就是一個(gè)類的實(shí)例链韭。相應(yīng)的偏竟,TaskSet類就好比是蝗蟲的大腦,控制著蝗蟲的具體行為敞峭,即實(shí)際業(yè)務(wù)場(chǎng)景測(cè)試對(duì)應(yīng)的任務(wù)集踊谋。

這個(gè)比喻可能不是很準(zhǔn)確,下次的分享我會(huì)分別對(duì)Locust和TaskSet兩個(gè)類進(jìn)行詳細(xì)介紹旋讹。

這里先介紹簡(jiǎn)單的使用殖蚕。

運(yùn)行:

locust -f demo.py ?//進(jìn)入到文件的目錄下面,-f參數(shù)下面緊跟腳本的名字

[2017-08-01 21:31:26,334] Leos-MacBook-Air.local/INFO/locust.main: Starting web monitor at *:8089

[2017-08-01 21:31:26,334] Leos-MacBook-Air.local/INFO/locust.main: Starting Locust 0.8a2

登錄瀏覽器:localhost:8089

點(diǎn)擊圖形可以看到運(yùn)行的情況: ?//噓沉迹,不要聲張睦疫,為了給你舉個(gè)例子,我這是在作死鞭呕,要壓去壓hao123.com蛤育,他耐壓(c)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末葫松,一起剝皮案震驚了整個(gè)濱河市瓦糕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌进宝,老刑警劉巖刻坊,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異党晋,居然都是意外死亡谭胚,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門未玻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)灾而,“玉大人,你說(shuō)我怎么就攤上這事扳剿∨蕴耍” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵庇绽,是天一觀的道長(zhǎng)锡搜。 經(jīng)常有香客問(wèn)我橙困,道長(zhǎng),這世上最難降的妖魔是什么耕餐? 我笑而不...
    開封第一講書人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任凡傅,我火速辦了婚禮,結(jié)果婚禮上肠缔,老公的妹妹穿的比我還像新娘夏跷。我一直安慰自己,他們只是感情好明未,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開白布槽华。 她就那樣靜靜地躺著,像睡著了一般趟妥。 火紅的嫁衣襯著肌膚如雪猫态。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評(píng)論 1 285
  • 那天煮纵,我揣著相機(jī)與錄音懂鸵,去河邊找鬼。 笑死行疏,一個(gè)胖子當(dāng)著我的面吹牛匆光,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播酿联,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼终息,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了贞让?” 一聲冷哼從身側(cè)響起周崭,我...
    開封第一講書人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎喳张,沒(méi)想到半個(gè)月后续镇,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡销部,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年摸航,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片舅桩。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡酱虎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出擂涛,到底是詐尸還是另有隱情读串,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站恢暖,受9級(jí)特大地震影響排监,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜杰捂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一社露、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧琼娘,春花似錦、人聲如沸附鸽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)坷备。三九已至熄浓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間省撑,已是汗流浹背昧互。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工诅愚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓浓镜,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親族跛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子弛作,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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

  • Locust文件就是一般的Python文件。唯一的需求就是它至少需要一個(gè)繼承于Locust的類. Locust類 ...
    Yuan_Jie閱讀 4,028評(píng)論 0 7
  • 本文章轉(zhuǎn)載于搜狗測(cè)試 上一篇我們講了性能測(cè)試的測(cè)試工具馒稍,當(dāng)時(shí)對(duì)大家推薦了性能測(cè)試工具Locust,上期評(píng)論時(shí)候大家...
    夜境閱讀 1,505評(píng)論 0 0
  • 簡(jiǎn)介 Locust是一個(gè)使用Python編寫的可擴(kuò)展皿哨、分布式的開源性能測(cè)試工具。 優(yōu)點(diǎn) 相比于Jmeter纽谒、Loa...
    憶江南_1569閱讀 2,590評(píng)論 1 6
  • Locust是什么证膨? Locust 是一個(gè)開源負(fù)載測(cè)試工具。使用 Python 代碼定義用戶行為鼓黔,也可以仿真百萬(wàn)個(gè)...
    zychen143閱讀 7,125評(píng)論 1 2
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,519評(píng)論 25 707