什么是Locust

原文地址:http://docs.locust.io/en/latest/what-is-locust.html# 什么是Locust Locust是一个容易使用、分布式的压力测试工具。它是用于网站压力测试(或其它系统)并找出多少用户一个系统可以承载。 在测试过程中,策略就是一个Locust的蠕虫将会攻击你的网站。每一个locust的行为(或你使用的测试用户)是你自己定义的,并且蠕虫进程从一个网页视图中被实时监测。这样会帮助你来实现测试,在真实用户使用前定义系统的瓶颈。 Locust是完全基于事件的,因此可以在单台机器中支持数以千计的用户在线。和其它基于事件的程序相比较,它是不需要使用回调的。相反,它通过gevent使用轻量级的进程。每一个locust测试你的网站时,实际上是真实的在内部运行它自己的进程(或greenlet,准确的说)。这样就允许你不使用复杂的回调方法,而是使用Python编写复杂的场景。 ...

June 8, 2017 · 3 min · Yuanjie

分布式测试

分布式运行Locust 一旦单台机器不够模拟足够多的用户时,Locust支持运行在多台机器中进行压力测试。 为了实现这个,你应该在master模式中使用--master标记来启用一个Locust实例。这个实例将会运行你启动测试的Locust交互网站并查看实时统计数据。master节点的机器自身不会模拟任何用户。相反,你必须使用--slave标记启动一台到多台Locustslave机器节点,与标记--master-host一起使用(指出master机器的IP/hostname)。 常用的做法是在一台独立的机器中运行master,在slave机器中每个处理器内核运行一个slave实例。 ** !Note ** ** master和每一台slave机器,在运行分布式测试时都必须要有locust的测试文件。** ...

June 3, 2017 · 2 min · Yuanjie

编写一个Locust文件

Locust文件就是一般的Python文件。唯一的需求就是它至少需要一个继承于Locust的类. Locust类 Locust类代表一个用户(如果愿意,也可以是一个准备出动的蝗虫)。Locust会为每一个模拟用户生成一个locust类实例。同时会有一些locust类属性被定义。 task_set属性 task_set属性是指向一个定义用户行为的TaskSet类,下面会有详细的介绍。 min_wait和max_wait属性 除了task_set属性,另外一个经常被使用的就是min_wait和max_wait属性。是用于各自以毫秒为单位的最小值和最大值,一个模拟用户将会在每个任务执行时的等待执行的时间间隔。min_wait和max_wait默认设置为1000,如果不声明的话,Locust会默认在每个任务间等待1秒。 参考下面的代码,每个用户将会在每个任务间等待5至15秒: from locust import Locust, TaskSet, task_set class MyTaskSet(TaskSet): @task def my_task(self): print "executing my_task" class MyLocust(Locust): task_set = MyTaskSet min_wait = 5000 max_wait = 15000 min_wait和max_wait属性可以用于重写TaskSet类。 ...

June 2, 2017 · 9 min · Yuanjie

Locust快速入门

Locust,基于Python的性能测试工具。 什么是Locust 本文Locust版本0.7.5 原文地址:http://docs.locust.io/en/latest/quickstart.html# 示例locustfile.py 下面是一个简单的locustfile.py小示例: from locust import HttpLocust, TaskSet def login(l): l.client.post("/login", {"username":"ellen_key", "password":"education"}) def index(l): l.client.get("/") def profile(l): l.client.get("/profile") class UserBehavior(TaskSet): tasks = {index: 2, profile: 1} def on_start(self): login(self) class WebsiteUser(HttpLocust): task_set = UserBehavior min_wait = 5000 max_wait = 9000 ...

May 24, 2017 · 3 min · Yuanjie