前言:在接觸過(guò)性能測(cè)試工具如jmeter/loadrunner后,多少也對(duì)執(zhí)行性能測(cè)試的方式有一點(diǎn)認(rèn)識(shí),這些工具基本都實(shí)現(xiàn)了請(qǐng)求-響應(yīng)-結(jié)果統(tǒng)計(jì)分析這樣完整的測(cè)試鏈路,用戶方面只需組織這些現(xiàn)成的插件即可實(shí)現(xiàn)性能測(cè)試過(guò)程,但是這些都不是對(duì)python友好的工具,對(duì)于python系用戶來(lái)說(shuō)不能用python接入和封裝是一件很讓人掃興的事情( ╯□╰ )
“Locust是使用Python語(yǔ)言編寫實(shí)現(xiàn)的開(kāi)源性能測(cè)試工具,簡(jiǎn)潔、輕量、高效,并發(fā)機(jī)制基于gevent協(xié)程,可以實(shí)現(xiàn)單機(jī)模擬生成較高的并發(fā)壓力。”? ? ? --摘自某博客
例子源碼:
啟動(dòng)腳本:訪問(wèn)百度首頁(yè),端口默認(rèn)為8089
web端監(jiān)控訪問(wèn)情況:通過(guò)瀏覽器訪問(wèn):http://localhost:8089
主要特點(diǎn)如下:
1) 使用普通的Python腳本實(shí)現(xiàn)用戶測(cè)試場(chǎng)景。可靈活組織python實(shí)現(xiàn)方式或者二次封裝,模擬更加真實(shí)的使用場(chǎng)景。
2) 分布式和可擴(kuò)展,支持成千上萬(wàn)的用戶。單臺(tái)機(jī)器可并發(fā)數(shù)量高于多線程或者多進(jìn)程方式的工具(jmeter/loadrunner)。
3) 基于Web的用戶界面,用戶可以實(shí)時(shí)監(jiān)控腳本運(yùn)行狀態(tài)。支持web和no web方式,支持以命令行調(diào)用方式集成到其他平臺(tái)中。
4) 幾乎可以測(cè)試任何系統(tǒng),除了web?http接口外,還可自定義clients測(cè)試其他類型系統(tǒng)
參考:
http://www.testclass.net/locust/introduce
http://lovesoo.org/locust-performance-testing-framework-from-entry-to-mastery.html