性能测试工具 [转] Python 负载测试工具 Locust

超爱fitnesse · 2015年07月05日 · 最后由 mars_loo 回复于 2016年10月07日 · 1954 次阅读

转自: http://www.oschina.net/p/locust/edit

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

简介

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

其他资料

python 模块介绍-locustio:性能测试工具 locustio 中文文档

背景

我们研究了现有的解决方案,都不符合要求。比如 Apache JMeter 和 Tsung。JMeter 基于 UI 操作,容易上手,但基本上不具备编程能力。其次 JMeter 基于线程,要模拟数千用户几乎不可能。 Tsung 基于 Erlang,能模拟上千用户并易于扩展,但它它基于 XML 的 DSL,描述场景能力弱,且需要大量的数据处理才知道测试结果。

无论如何,我们试图解决创建蝗虫,当这些问题。希望以上都不是 painpoints 应该存在。

我想你可以说我们真的只是想在这里从头开始自己的痒。我们希望其他人会发现,因为我们做的是有益的。

作者

共收到 5 条回复 时间 点赞

亮点:

JMeter 基于 UI 操作,容易上手,但基本上不具备编程能力

观察了几年 JMeter,终于为不学 JMeter 找到理由了!

完全没见过的工具。。。最后一段怎么看不懂呢。。。

最近产品要做页面的性能优化。。。我还愁用什么测呢。。。

#2 楼 @ping_sky

页面性能优化工具:

  1. yslow
  2. chrome 浏览器按 F12,选择 Network,里面有性能瀑布图

希望楼分享教程~~

among [该话题已被删除] 中提及了此贴 07月13日 16:33
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册