Locust工具在市場上不如Loadrunner / JMeter流行,使用的範圍也沒有那麼廣,但不能否認其是一款很不錯的工具。我我的以爲Locust使用不是那麼普遍,主要是由於一下方式:編程
Locust須要必定的Python編程基礎,有必定的學習成本。服務器
Locust既有的協議支持有,主要有HTTP等。不少協議只要Python支持便可。網絡
UI操做界面,不少時候,用戶在使用的時候,會考慮上手容易度,Loadrunner/JMeter都有很強的用戶交互設計,在客戶端強大的功能下面,用戶多線程
可是將來壓測工具的趨勢,必定是可編程性佔據主流。主要緣由主要以下:併發
可編程性能夠和開發團隊有更好的貼合度,不少傳統壓測工具很差/不能模擬的場景,均可以經過編碼的方式去實現,讓測試更加靈活,覆蓋度有保證。而且開發人員也能夠去實現壓測場景腳本。而性能測試人員能夠更加註重去分析問題app
省錢。這個理由會讓人沒法抗拒。不過可能有人要反駁了,JMeter等開源工具不也是免費的嗎?是的,軟件自己是免費的,可是使用起來不必定是免費的。如今比較流行雲平臺,全部的環境(開發/測試/UAT/線上)基本都部署在上面。而云平臺的一個特性就是按需申請和按需收費。那麼在使用諸如Loadrunner/JMeter 這類採用進程和線程的工具,是比較耗費內存的。這也就決定了,在單機上很難模擬出高併發,而Locust這類工具在這方面的表現就要好的多。爲啥?歸根結底就是資源多使用效率,Locust採用了gevent開發框架,底層利用greenlet微線程機制,其中採用了epoll事件監聽機制,監聽什麼?好比咱們利用多線程去模擬多用戶,線程1執行到了服務器傳輸內容,而CPU也正在等待網絡IO,而epoll機制就開始起做用了,它會將線程資源轉向執行其餘線程任務。而當耗時的網絡IO或者磁盤IO結束時,greenlet會適時將CPU資源轉回去繼續執行線程1的任務。綜上,單機併發,Locust就能夠佔據優點,而且Locust也能實現分佈式測試,因此從經濟性上考慮,它是省錢的。框架
平臺性。不少事情若是平臺級的產品都支持,那麼推廣或者優點是能夠獲得保證的。其餘的雲平臺不是很清楚,我知道GCP平臺是支持Locust的,也給出了一些解決方案。分佈式
你們也能夠掃描並關注以下公衆號「TimTest」,會有更多性能測試相關內容分享。ide