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。