locust-初识

一、locust介绍

       1)locust是一个易于使用的,分布式的,用户负载测试工具。用于web站点(或其他系统)的负载测试,然后算出系统能够处理多少并发用户。
locust的思想是:

       在测试期间,一大群"蝗虫"会攻击你的网站,每一个"蝗虫"的行为都是由你自己定义的,同时,可以在一个web界面上实时的监控这群进程。这会帮助你更好的"进行战斗",在真正的用户进入之前,就找出代码中的瓶颈。
       2)locust完全是事件驱动的,因此它能够在单机支持数以千计的并发用户,相比许多其他的基于事件的应用,locust不使用回调函数

  3)Locust是开源、使用Python开发、基于事件、支持分布式并且提供Web UI进行测试执行和结果展示的性能测试工具。
Locust使用Python代码定义测试场景,目前支持Python 2.7, 3.3, 3.4, 3.5, 3.6和3.7。它自带一个Web UI,用于定义用户模型,发起测试,实时测试数据,错误统计等。
当前最新发布版本v0.11.1,还提供QPS、评价响应时间等几个简单的图表。

优点:

1. 易用。很方便地基于Python进行脚本扩展和业务请求实现。

2. 完全基于事件驱动,所以不受进程和线程的限制,可以支持发起更高的并发数请求。

3. 可以分布式发起并发请求

4.Locust有一个整洁的HTML+JS的用户界面,实时显示相关测试细节。由于用户界面是基于网络的,它是跨平台的和容易扩展。

5. 开源。

缺点:

1. 图表相对loadrunner 比较简单。(在Linux 下部署时可以看到图表,在Windows 下没有)

2. 不支持监控被测机,需要结合nmon等工具辅助监控。

 

二、locust安装

pip install locust

三、Locust主要由下面的几个库构成:

1) gevent

gevent是一种基于协程的Python网络库,它用到Greenlet提供的,封装了libevent事件循环的高层同步API。

2) flask

Python编写的轻量级Web应用框架。

3) requests

Python Http库

4) msgpack-python

MessagePack是一种快速、紧凑的二进制序列化格式,适用于类似JSON的数据格式。msgpack-python主要提供MessagePack数据序列化及反序列化的方法。

5) six

Python2和3兼容库,用来封装Python2和Python3之间的差异性

6) pyzmq

pyzmq是zeromq(一种通信队列)的Python绑定,主要用来实现Locust的分布式模式运行

当我们在安装 Locust 时,它会检测我们当前的 Python 环境是否已经安装了这些库,如果没有安装,它会先把这些库一一装上。并且对这些库版本有要求,有些是必须等于某版本,有些是大于某版本。我们也可以事先把这些库全部按要求装好,再安装Locust时就会快上许多。

 

posted @ 2019-06-12 15:44  做一只热爱生活的小透明  阅读(166)  评论(0)    收藏  举报