推荐一款基于Python的性能测试神器Locust

364 阅读1分钟

相信很多开发者都有对自己写的代码进行压测的经历,最容易想到的一般都是ab或者JMeter。ab相对比较简单,但由于是基于命令行的,看起来不美观,而且不方便通过编程来动态控制参数。JMeter有图形化界面并且也支持测试报告的导出,但其复杂的参数配置上手并不是很容易。前段时间在开发一个公司内部的项目,由于涉及到自定义的鉴权,期望能有一个支持编程的压测工具,经过一翻寻找,最终锁定了Locust。

Locust是基于Python实现的,内部使用协程模拟大量并发,同时支持分布式部署,并且除了支持命令行之外还有一个非常漂亮的web界面。

Locust的官网地址:www.locust.io,官方文档非常详细,安装也很简单。

$ pip install locust

安装成功之后验证是否安装成功

$ locust -Vlocust 2.5.0

编写脚本locustfile.py

from locust import HttpUser, task
class HelloWorldUser(HttpUser):    
    @task    
    def hello_world(self):        
        self.client.get("/")

然后在Locustfile.py文件所在目录运行locust

$ ls 
locustfile.py
$ locust

可以看到启动了一个http://0.0.0.0:8089端口

图片

在浏览器打开

图片

设置好并发数和host地址,就可以开始测试了。

图片

漂亮的图表

图片

支持报告下载

图片