Python Locust 模块17 Mar 2025 | 5 分钟阅读 Python Locust:与 JMeter 和 Tsung 不同,这是一个用于负载测试服务器的 Python 工具。 厌倦了当前用于基准测试和负载测试现有服务器的工具,我最近在一个项目中发现了一个名为 Locust 的开源工具。 通过阅读本教程,您将能够使用此负载测试工具。这将让您大致了解服务器每秒支持多少请求(RPS)。 Locust 是一个易于使用的、分布式的、用户负载测试工具。它旨在对网站(或其他系统)进行负载测试,并确定系统可以处理的并发用户数量。 为什么这个模块叫做 Locust?这个想法是,在测试期间,会有大量的 locust(蚱蜢)攻击您的网站。每个 Locust(蚱蜢或测试用户)的行为由您定义,并且集群过程可以从 Web UI 中实时监控。这将帮助您在向真实用户开放之前,应对测试并识别代码中的瓶颈。 Locust 是完全基于事件的,因此可以在单台机器上支持数百万并发用户。与其他许多基于事件的应用程序不同,它不使用回调。 相反,它通过事件使用轻量级进程。您的网站的每个 Locust 集群都运行在其自己的进程(或者更准确地说,是 greenlet)中。这使您能够用 Python 编写非常有表现力的场景,而不会使您的代码因回调而混乱。 特点或功能1. 用纯 Python 编写用户测试场景 如果您希望用户循环、执行某些条件行为或进行一些计算,可以使用 Python 提供的正常编程结构。Locust 在其 greenlet(一个轻量级进程/协程)中运行每个用户。这使得您可以像编写普通(阻塞式)Python 代码一样编写测试,而无需使用回调或其他机制。由于您的场景“只是 Python”,因此您可以使用标准的 IDE 和版本控制来管理您的测试,就像管理普通代码一样(而不是像某些使用 XML 或二进制格式的其他工具那样)。 2. 分布式和可伸缩 - 支持数百万用户 Locust 可以轻松地在多台机器上运行负载测试。它是基于事件的(使用 gevent),因此单个进程可以处理数百万并发用户。虽然可能有其他工具可以在给定硬件上实现更高的每秒请求数,但 Locust 用户每个用户的开销很低,这使其非常适合测试高度并发的任务。 3. 在线 UI(Web 用户界面) Locust 提供了一个用户友好的 Web 界面,可以实时显示测试的进度。您可以在测试运行时更改负载。它也可以在没有 UI 的情况下运行,这使得 CI/CD 测试变得容易。 4. 可以测试任何系统 虽然 Locust 与网站/服务配合使用,但几乎可以用于测试任何系统或协议。为要测试的内容编写一个用户,或者使用社区创建的现有用户。 5. 可破解 Locust 的代码库故意保持精简,并且不会开箱即用地处理所有事情。相反,我们试图让它易于适应您可能遇到的任何情况,只需使用普通的 Python 代码。要将报告数据发送到您喜欢的数据库和图表系统,包装对 REST API 的调用以处理您的系统细节或运行自定义负载配置;没有什么可以阻止您! 命令行界面 该模块为我们提供了一种通过命令行界面运行负载测试的方法。这使我们可以轻松地实现自动化的负载测试流程。在运行 Locust 时添加 no-web 参数。您需要包含主机、用户数和孵化率。 Locust -f locustfile.py --no-web --host your_host -c 1000 -r 100
安装 Python Locust 模块使用 pip 命令安装 Locust。 命令 Locust 安装成功后,Locust 命令应可在您的 shell 中使用。 查看更多可用选项 命令 使用 LOCUST 模块进行负载测试Locust 是一个开源负载测试工具。负载测试是对软件进行的测试,旨在在特定预期负载下评估系统的弹性/行为。Locust 的目标是负载测试网站,并检查系统可以处理的并发用户数量。 在 locust 测试期间,大量 Locust 将攻击目标,即网站。每个 Locust 的行为都是可配置的,并且集群过程会实时从 Web UI 中监控。 源代码 上述代码的解释 首先导入所有必需的模块。然后定义函数和类。 当模拟用户开始执行该 TaskSet 类时,会调用 on_start 方法。管理员登录并检索其访问令牌。task_sets 属性应指向一个 TaskSet 类,该类指示客户的状态。 启动 Locust 要运行上述代码,请创建一个名为 locustfiles.py 的 Python 文件,然后在上述创建的文件所在的目录中打开终端。然后,在终端中输入以下命令。 注意:默认情况下,Locust 会查找 locustfiles.py。成功执行上述命令后,您应该打开一个浏览器并访问 http://127.0.0.1:8089 Locust UI 将如下所示 输出 ![]() 总结Locust 是一个非常有用的 Python 负载测试工具。测试 REST API 非常简单。但是,测试非 RESTful API 可能会有点困难。我们已经向您展示了一种测试非 RESTful API 的方法。还有其他工具,如 JMeter,用于负载测试。JMeter 的学习曲线很高,每次需要测试比“Hello World”应用程序更复杂的东西时,您都会遇到这个问题。因此,您的选择完全取决于您。 感谢您的阅读!!! 下一主题Python Time 模块 |
顶部 | Python 框架列表 在本教程中,我们将讨论 Python 的各种重要框架及其基本功能。正如我们所知,Python 是一种高度需求且有效的编程语言,它包含庞大的库和框架,几乎适用于每个技术领域。这些框架提供了便利性...
阅读9分钟
在本文中,我们将了解噪声、各种类型的噪声、图像去噪、使用 OpenCV 进行图像去噪、OpenCV 中的非局部均值算法以及 OpenCV 中的 fastNlMeansDenoising 函数。fastNIMeansDenoising 是 OpenCV 模块的一种方法。它用于对图像进行去噪。取出噪声的过程……
阅读 6 分钟
NumPy是Python中一个强大的库,它提供了一个用于操作大型多维数组和统计矩阵的指南,以及一组对这些数组进行操作的数学函数。一个方便的功能是在操作时可用...
阅读 4 分钟
本教程将教我们如何将元组连接成嵌套元组。有时,我们需要将单个记录转换为嵌套集合,但它们仍作为单独的元素存在。换句话说,我们将添加元组并展平结果容器;它通常是...
阅读 3 分钟
Python 是一种面向对象的编程语言。在 Python 中,一切都被视为对象,包括变量、函数、列表、元组、字典、集合等。每个对象都属于其自己的类。例如,一个整数变量属于整数类。对象是一个现实世界的实体。一个对象...
阅读 2 分钟
Python 的条件语句根据特定的布尔条件计算为真或假来执行各种计算或操作。在 Python 中,IF 语句处理条件语句。在本教程中,我们将学习如何使用 Python 中的条件语句。什么是 Python If 语句?要创建...
阅读 3 分钟
在本教程中,我们使用了 Python 中不同的数字数据类型,我们将学习如何将浮点值转换为整数值。让我们来看看实现相同目标的方法——使用 trunc() 使用 floor() 使用 ceil() 使用 int() 所以,让我们从第一个方法开始...
阅读 4 分钟
在本教程中,我们将学习 Python 中用于字符串格式化的模运算符。如果用户正在使用 Python 3 编写现代 Python 代码,他们将需要使用 f-string 等 Python 字符串格式化器来格式化他们的字符串。但是,如果他们在旧的 Python 上工作……
阅读 13 分钟
名为编译器的内置函数用于将编程语言代码翻译成计算机语言,以便解释器可以运行它。在 Python 中,.py 源文件被转换为 .pyc 字节码,然后发送给解释器进行处理。存在以下可能性...
阅读 4 分钟
Python 中的 JSON Schema JSON Schema 是一种用于验证 JSON 文档的 Python 语言。它包含键/值对,其中每个键用于指定特定 JSON 数据的结构。使用 JSON Schema 可以提供易于理解、高质量的数据和文档。JSON Schema 是...
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India