Locust 基本概念

概念理解(翻譯):

  1. 超級類是 locust 類
    它的每一個實例代表了一個用戶, 守護程序會為每一個模擬用戶生成一個實例
  2. httplocust 繼承了locust 類, 添加了可以發(fā)送http請求的功能
  3. locust 有一個屬性(成員變量)是 task_set , 它可以定義用戶的行為, 就是訪問哪些URL, post還是get, 每個連接占總訪問量比是多少
    這個task_set 是類TaskSet(或其子類)的一個實例, 上邊說的各種行為就是在這個類里邊定義的

locsut類:

屬性: min_wait/max_wait
模擬用戶有在上邊說的類中定義了好多任務/行為, 每個任務/行為間隔多久執(zhí)行一次, 單位是毫秒, 默認1000, 也即隔一秒種后執(zhí)行下一個任務
**屬性: weight 權重: **
模擬時, 同一段時間, 手機用戶的訪問量要比PC的訪問量大, 那么對應的locust(或其子類)的weight值就大小不一
**屬性: host **
就是需要被壓測的網(wǎng)站的域名(或域名前綴), 如果啟動服務時沒有通過參數(shù)-host來指定域名, 那么就用使用該host屬性指定的值

TaskSet類:

  1. 推薦的是, 在taskset類(或子類)中通過在行為(回調(diào)函數(shù))前加@task(weight)描述符來指定某一個行為被執(zhí)行的頻率
  2. 或者先定義行為(回調(diào)函數(shù)), 然后通過屬性tasks來指定每一個行為被執(zhí)行的頻率 tasks=[fun1, fun2....] 或者 tasks={fun1:weight1, fun2:weight2......}
  3. 不管怎樣定義, 里邊的行為或函數(shù)是被隨機調(diào)用/執(zhí)行的, 只是根據(jù)weight的不通, 隨機到的頻率不通而已
  4. 而且, 行為/任務可以嵌套執(zhí)行, 先執(zhí)行task1(也就是 fun1 下同), 然后執(zhí)行task2 ..... 這樣會更真實的模擬,
    其寫法就是, 將這些有關聯(lián)任務定義/封裝到一個taskset子類中, 然后通過上邊介紹的 tasks屬性tasks={classname:weight}, 在另一個TaskSet子類中去關聯(lián)該類以達到嵌套的目的
  5. 在執(zhí)行子任務時, 通過 self.interrupt() 來終止子任務的執(zhí)行, 來回到父任務類中執(zhí)行, 否則子任務會一直執(zhí)行
  6. 成員函數(shù), on_start(), 如果定義的話, 就會在開始的時候執(zhí)行

HttpLocust類

  1. 他可以發(fā)送http請求, 他有一個屬性叫client(實例化的時候自動生成), 存儲HttpSession類的實例(HttpSession類在實例化Locust的時候自動創(chuàng)建), 用來保存請求session
  2. TaskSet類里也有屬性client: self.client.get()或者self.client.post(), 這個client內(nèi)部就是httplocust里的client
  3. 請求返回一個對象, 他有兩個成員, response.status_code 和 response.content
  4. 如果因連接失敗, 超時等等原因造成請求失敗, 不會發(fā)出異常, 而是將上邊的content置為空, status_code 置為0
  5. 可以對返回content內(nèi)容自定義處理, 因為有的時候返回404是你希望得到的
    1 with client.get("/does_not_exist/", catch_response=True) as response:2 if response.status_code == 404:3 response.success()
    6.對網(wǎng)站來說, 一個URL的參數(shù)是固定的, 但是參數(shù)值是不定的, 也可以處理
    1 # Statistics for these requests will be grouped under: /blog/?id=[id]2 for i in range(10):3 client.get("/blog?id=%i" % i, name="/blog?id=[id]")

其他, locust還有很多事件hook可以擴展開發(fā), 有需要的可以去看官方文檔, 內(nèi)容沒多少

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锦积,一起剝皮案震驚了整個濱河市鲁捏,隨后出現(xiàn)的幾起案子贸营,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颂暇,死亡現(xiàn)場離奇詭異华烟,居然都是意外死亡坑鱼,警方通過查閱死者的電腦和手機智什,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門动漾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人荠锭,你說我怎么就攤上這事旱眯。” “怎么了证九?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵删豺,是天一觀的道長。 經(jīng)常有香客問我甫贯,道長吼鳞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任叫搁,我火速辦了婚禮赔桌,結果婚禮上,老公的妹妹穿的比我還像新娘渴逻。我一直安慰自己疾党,他們只是感情好,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布惨奕。 她就那樣靜靜地躺著雪位,像睡著了一般。 火紅的嫁衣襯著肌膚如雪梨撞。 梳的紋絲不亂的頭發(fā)上雹洗,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音卧波,去河邊找鬼时肿。 笑死,一個胖子當著我的面吹牛港粱,可吹牛的內(nèi)容都是我干的螃成。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼查坪,長吁一口氣:“原來是場噩夢啊……” “哼寸宏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起偿曙,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤氮凝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后望忆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體覆醇,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡朵纷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年炭臭,在試婚紗的時候發(fā)現(xiàn)自己被綠了永脓。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡鞋仍,死狀恐怖常摧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情威创,我是刑警寧澤落午,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站肚豺,受9級特大地震影響溃斋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吸申,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一梗劫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧截碴,春花似錦梳侨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至哲虾,卻和暖如春丙躏,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背束凑。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工晒旅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人湘今。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓敢朱,卻偏偏與公主長得像,于是被迫代替她去往敵國和親摩瞎。 傳聞我的和親對象是個殘疾皇子拴签,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

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

  • Locust文件就是一般的Python文件。唯一的需求就是它至少需要一個繼承于Locust的類. Locust類 ...
    Yuan_Jie閱讀 4,036評論 0 7
  • Locust的介紹 Locust是一個python的性能測試工具旗们,你可以通過寫python腳本的方式來對web接口...
    佑___閱讀 2,125評論 0 6
  • Locust性能測試1-環(huán)境準備與基本使用 前言 提到性能測試蚓哩,大部分小伙伴想到的就是LR和jmeter這種工具,...
    Alano_Ones閱讀 342評論 0 0
  • 簡介 Locust是一個使用Python編寫的可擴展上渴、分布式的開源性能測試工具岸梨。 優(yōu)點 相比于Jmeter喜颁、Loa...
    憶江南_1569閱讀 2,608評論 1 6
  • Locust是什么? Locust 是一個開源負載測試工具曹阔。使用 Python 代碼定義用戶行為半开,也可以仿真百萬個...
    zychen143閱讀 7,146評論 1 2