zoukankan      html  css  js  c++  java
  • 基于python的性能负载测试Locust-1-简介

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

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

    简介

    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,描述场景能力弱,且需要大量的数据处理才知道测试结果。

    无论如何,我们试图通过Locust来解决这些问题,希望以上问题都不会成为Locust的痛点。

    也许你会说我们试图挠到痒处。希望其他人和我们一样认为这是件有意义的事情。

    作者

  • 相关阅读:
    【SRX】折腾了半天终于我的那对SRX210 升级到了 12.1R1.9
    [C puzzle book] Pointers and Arrays
    [Zebos Learning] RIP
    [C puzzle book] Preprocessor
    [C puzzle book] Preprocessor for C
    [C puzzle book] Storage Class
    在Linux系统中重现黑客帝国经典画面
    linux下/dev/null被误删
    学习聊天系统心得!
    学习完了聊天系统的感受!
  • 原文地址:https://www.cnblogs.com/mu-shi-shi/p/6070364.html
Copyright © 2011-2022 走看看