基於python的性能負載測試Locust-1-簡介

官網: http://locust.io/
GitHub: https://github.com/locustio/locustgit

BLOG:http://www.cnblogs.com/mu-shi-shigithub

簡介

Locust 是一個開源負載測試工具。使用 Python 代碼定義用戶行爲,也能夠仿真百萬個用戶。
Locust 是很是簡單易用,分佈式,用戶負載測試工具。Locust 主要爲網站或者其餘系統進行負載測試,能測試出一個系統能夠併發處理多少用戶。
Locust 是徹底基於時間的,所以單個機器支持幾千個併發用戶。相比其餘許多事件驅動的應用,Locust 不使用回調,而是使用輕量級的處理方式 gevent。編程

 

 

 

特性

  • 使用純 Python 代碼編寫用戶測試場景;不須要 UIs 或者 XML
  • 分佈式&可伸縮 - 支持成千上萬的用戶
  • 基於 Web 的 UI
  • 能夠測試任意系統;雖然 Locust 是面向 Web 的,可是也能夠測試其餘任意的系統

##安裝:併發

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的痛點。測試

也許你會說咱們試圖撓到癢處。但願其餘人和咱們同樣認爲這是件有意義的事情。網站

做者

相關文章
相關標籤/搜索