Locust 扩展、分布式

Locust 扩展、分布式

 

  Locust可以在模块级别在蝗虫文件中注册事件侦听器。 这是一个例子:

from locust import events
def my_success_handler(request_type, name, response_time, response_length, **kw):
    print "Successfully fetched: %s" % (name)
events.request_success += my_success_handler

  强烈建议您在侦听器中添加一个通配符关键字参数(上面代码中的** kw),以防止在未来版本中添加新参数时代码中断。

 

添加Web路由
  Locust使用Flask来提供Web UI,因此很容易将Web端点添加到Web UI。 只需在locustfile中导入Flask应用程序并设置新路径:

from locust import web
@web.app.route("/added_page")def my_added_page():
    return "Another page"

  您现在应该能够启动蝗虫并浏览到http://127.0.0.1:8089/added_page

 

运行Locust分布式

  在做服务器性能测试是,单个机器不足以模拟大量用户行为时,会导致测试机本身也会存在瓶颈,从而导致测试结果发生较大的偏离,这是您需要更多的测试机一同进行测试,Locust就支持运行分布在多台机器上的负载测试。为此,您使用--master标志在主模式下启动一个Locust实例。 这是将运行Locust的Web界面的实例,您可以在其中启动测试并查看实时统计信息。 主节点不会模拟任何用户本身。 相反,您必须使用--slave标志和--master-host(指定主节点的IP /主机名)启动一个或多个可能的多个从属Locust节点。

  常见的设置是在一台计算机上运行单个主服务器,然后在从属计算机上为每个处理器核心运行一个从属实例。在运行Locust分布式时,主机和每台从机都必须有Locust测试脚本的副本。

要在主模式下启动蝗虫:

locust -f my_locustfile.py --master

  然后在每个从站上(用主机的IP替换192.168.0.14):

locust -f my_locustfile.py --slave --master-host = 192.168.0.14

 

选项:

--master

在主模式下设置Locust。 Web界面将在此节点上运行。

--slave

将Locust设置为从属模式。

--master-host=X.X.X.X

可选择与--slave一起使用来设置主节点的主机名/ IP(默认为127.0.0.1)

--master-port=5557

可选择与--slave一起使用以设置主节点的端口号(默认为5557)。 请注意,locust将使用指定的端口以及端口号+1。 因此,如果使用5557,蝗虫将使用端口5557和5558。

--master-bind-host=X.X.X.X

可选择与--master一起使用。 确定主节点将绑定到的网络接口。 默认为*(所有可用接口)。

--master-bind-port=5557

可选择与--master一起使用。 确定主节点将侦听的网络端口。 默认为5557.请注意,locust将使用指定的端口以及端口号+1。 因此,如果使用5557,Locust将使用端口5557和5558。

 

posted @ 2018-07-30 20:59  西夏一品唐  阅读(408)  评论(0编辑  收藏  举报