🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 快速入门 下面是一个简单的`locustfile.py`小示例: 注意:如果locust版本是1.2.2类继承又会有变化 ``` from locust import HttpLocust, TaskSet def (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 ``` 在这里,我们定义了许多`Locust`任务,它们是带有一个参数(`Locust`类实例)的普通 Python 可调用对象。这些任务收集在 task 属性中的`TaskSet`类下 。然后,我们有一个代表用户的 类,其中定义了模拟用户在执行任务之间应等待的时间,以及 应该定义用户的“行为”的类。 类可以嵌套。`Http``Locust``TaskSetTaskSet` 在`HttpLocust`从类继承`Locust`的类,并把它添加一个客户端属性,它是的一个实例`HttpSession`,可用于使`HTTP`请求。 默认情况下,我们不再寻找代理设置以提高性能。如果您确实希望测试请求通过 HTTP 代理,则可以从`HttpLocust`该类继承,并将 trust\_env 字段设置为 True。有关更多详细信息,请参阅请求文档。 <br> UserBehavior 类继承 TaskSet 类,用于描述用户行为。 baidu\_index() 方法表示一个用户为行,访问百度首页。使用 @task 装饰该方法为一个事务。client.get() 用于指请求的路径“/”,因为是百度首页,所以指定为根路径。 WebsiteUser 类用于设置性能测试。 * task\_set :指向一个定义的用户行为类。 * min\_wait :执行事务之间用户等待时间的下界(单位:毫秒)。 * max\_wait :执行事务之间用户等待时间的上界(单位:毫秒)。 <br> <br> ## 启动 Locust 要使用上述 Locust 文件运行 Locust,如果该文件名为`locustfile.py`且位于当前工作目录中,则可以运行: ~~~ $ locust --host=http://example.com ~~~ 如果 Locust 文件位于子目录下和 / 或名称不同于`locustfile.py`,请使用`-f`以下命令指定它: ~~~ $ locust -f locust_files/my_locust_file.py --host=http://example.com ~~~ 要运行跨多个进程分布的 Locust,我们可以通过指定`--master`以下内容启动主进程 : ~~~ $ locust -f locust_files/my_locust_file.py --master --host=http://example.com ~~~ 然后我们将启动任意数量的从属进程: ~~~ $ locust -f locust_files/my_locust_file.py --slave --host=http://example.com ~~~ 如果要在多台计算机上运行 Locust 分布式服务器,则在启动从属服务器时也必须指定主服务器主机(在单台计算机上运行 Locust 时不需要,因为主服务器主机默认为 127.0.0.1): ~~~ $ locust -f locust_files/my_locust_file.py --slave --master-host=192.168.0.100 --host=http://example.com ~~~ <br> <br> ## 打开 Locust 的 Web 界面 使用上述命令行之一启动 Locust 后,应该打开浏览器并输入`http://127.0.0.1:8089`(如果在本地运行 Locust)。 然后,您应该会看到类似以下内容: ![](https://img.kancloud.cn/af/77/af777e5a155281809137abdb4da97b69_1428x686.png) * 设置用户总数10个,每秒启动5个 | 页面指标 | 解析 | 备注 | | --- | --- | --- | | type | 请求类型 | | | Name | 请求名称 | 这个可以自定义,传name参数即可 | | Requests | 当前已完成的请求数量 | | | Fails | 失败的请求数量 | | | Requests | 当前已完成的请求数量 | | | Median | 响应时间的中间值,即50%的响应时间在这个数值范围内,单位为毫秒 | | | 90%ile | 90%的响应时间在正态分布平均值下方,即小于这个值 | | | Min | 最小响应时间,单位为毫秒 | | | Max | 最大响应时间,单位为毫秒 | | | average Size | 平均每个请求的数据量,单位为字节 | | | current RPS | 每秒钟处理请求的数量 | ![](https://img.kancloud.cn/da/25/da25a2e3a65579ee9005096ede863908_1629x503.png)