官網: http://locust.io/
GitHub: https://github.com/locustio/locustgit
BLOG:http://www.cnblogs.com/mu-shi-shigithub
Locust 是一個開源負載測試工具。使用 Python 代碼定義用戶行爲,也能夠仿真百萬個用戶。
Locust 是很是簡單易用,分佈式,用戶負載測試工具。Locust 主要爲網站或者其餘系統進行負載測試,能測試出一個系統能夠併發處理多少用戶。
Locust 是徹底基於時間的,所以單個機器支持幾千個併發用戶。相比其餘許多事件驅動的應用,Locust 不使用回調,而是使用輕量級的處理方式 gevent。編程
##安裝:併發
pip install locustio
##示例代碼:分佈式
from locust import HttpLocust, TaskSet, task class WebsiteTasks(TaskSet): def on_start(self): self.client.post("/login", { "username": "test_user", "password": "" }) @task def index(self): self.client.get("/") @task def about(self): self.client.get("/about/") class WebsiteUser(HttpLocust): task_set = WebsiteTasks min_wait = 5000 max_wait = 15000
背景工具
咱們研究了現有的解決方案,都不符合要求。好比Apache JMeter和Tsung。JMeter基於UI操做,容易上手,可是經過UI點擊進行測試場景的配置讓它脫離了編程的樂趣。其次JMeter基於線程,要模擬數千用戶幾乎不可能。 Tsung基於Erlang,能模擬上千用戶並易於擴展,但它它基於XML的DSL,描述場景能力弱,且須要大量的數據處理才知道測試結果。post
不管如何,咱們試圖經過Locust來解決這些問題,但願以上問題都不會成爲Locust的痛點。測試
也許你會說咱們試圖撓到癢處。但願其餘人和咱們同樣認爲這是件有意義的事情。網站