下载吧 其他软件

分类分类

Locust(负载测试工具)

Locust(负载测试工具)

v1.4.4 官方版

大小:1.02 MB 更新:2024/06/04

类别:其他软件系统:WinAll

立即下载

  Locust是一款非常专业且优秀的开源负载测试工具,通过这款软件可帮助用户快速对网站或其它系统进行负载测试,从而能够快速了解一个系统能够并发处理的用户数,该软件易于使用,可使用该软件编写脚本且拥有可扩展性,因为您可以使用常规的Python代码定义用户的行为,相对于一些比较笨拙的UI或特定于域的语言,这使得Locust可以无限扩展,并且对于开发人员来说也非常友好,在Locust中可采取不同的方法代替配置格式或UI,从而获得一个Python框架,欢迎有需要的用户下载体验

Locust(负载测试工具)

软件功能

  在代码中定义用户行为

  不需要笨拙的UI或庞大的XML。只是普通的代码。

  分布式和可扩展

  Locust支持分布在多台计算机上的运行负载测试,因此可用于模拟数百万个同时用户

  经过验证和战斗力测试

  蝗虫已被用来模拟数百万个并发用户。Battlelog是《战地风云》游戏的网络应用程序,已使用Locust进行了负载测试,因此可以说Locust经过了Battletested;)。

  范例程式码

  Locust的基本功能是用Python代码描述所有测试。不需要笨拙的UI或庞大的XML,只需简单的代码即可。

软件特色

  用普通的Python编写用户测试方案

  如果希望用户循环,执行某些条件行为或进行某些计算,则只需使用Python提供的常规编程结构即可。Locust在其自己的greenlet(轻量级进程/协程)中运行每个用户。这使您能够像普通(阻塞)Python代码一样编写测试,而不必使用回调或其他某种机制。因为您的场景是“仅是python”,所以您可以使用常规的IDE,并以常规代码的形式对测试进行控制(与其他一些使用XML或二进制格式的工具相对)

  分布式和可扩展-支持数十万用户

  Locust使运行分布在多台计算机上的负载测试变得容易。它是基于事件的(使用gevent),这使得单个进程可以处理成千上万的并发用户。尽管可能还有其他工具可以在给定的硬件上每秒执行更多请求,但是每个Locust用户的低开销使其非常适合测试高并发工作负载。

  基于Web的UI

  Locust具有用户友好的Web界面,可实时显示测试进度。您甚至可以在测试运行时更改负载。它也可以在没有UI的情况下运行,从而使其易于用于CI / CD测试。

  可以测试任何系统

  即使Locust主要与网站/服务一起使用,它也可以用于测试几乎所有系统或协议。只需 为您要测试的内容编写一个客户端,或者浏览社区创建的一些客户端。

官方教程

  快速开始在Locust中,您可以使用Python代码定义用户行为。然后,您可以使用该locust命令和(可选)其Web界面在收集请求统计信息时生成并模拟大量这些用户。

  locustfile.py示例

Locust(负载测试工具)

  让我们分解一下

Locust(负载测试工具)

  蝗虫文件只是普通的Python模块,它可以从其他文件或包中导入代码。

Locust(负载测试工具)

  在这里,我们为将要模拟的用户定义一个类。它继承自 HttpUser该client属性,从而为每个用户提供一个属性,该属性是的一个实例HttpSession,可用于向要加载测试的目标系统发出HTTP请求。当测试开始时,蝗虫将为它模拟的每个用户创建一个此类的实例,并且这些用户中的每个将开始在自己的绿色gevent线程中运行。

Locust(负载测试工具)

  我们的类定义了一个wait_time,它将使模拟用户在执行每个任务(请参阅下文)之后等待1到2.5秒。有关更多信息,请参见wait_time属性。

Locust(负载测试工具)

  装饰有方法的方法@task是蝗虫文件的核心。对于每个正在运行的用户,Locust都会创建一个greenlet(微线程),它将调用这些方法。

Locust(负载测试工具)

  我们通过用修饰两个方法来声明了两个任务@task,其中一个具有较高的权重(3)。当我们QuickstartUser运行它会挑的申报任务之一-在这种情况下,无论是hello_world或 view_items-并执行它。任务是随机选择的,但是您可以赋予它们不同的权重。上面的配置将使蝗虫的采摘可能性view_items比蝗虫高3倍hello_world。任务完成执行后,用户将在其等待时间(在这种情况下为1到2.5秒)内进入睡眠状态。等待时间过后,它将选择一个新任务并继续重复执行。

  请注意,只会选择用修饰符修饰的方法@task,因此您可以根据自己的喜好定义自己的内部帮助器方法。

Locust(负载测试工具)

  该self.client属性使得可以进行将由Locust记录的HTTP调用。有关如何发出其他类型的请求,验证响应等信息,请参阅《 使用HTTP客户端》。

Locust(负载测试工具)

  在此view_items任务中,我们使用变量查询参数加载10个不同的URL。为了使Locust的统计信息中没有10个单独的条目(由于统计信息是按URL分组的),我们使用name参数将所有这些请求分组到一个名为的条目下"/item"。

Locust(负载测试工具)

  此外,我们还声明了一个on_start方法。每个模拟用户在启动时都会调用具有该名称的方法。有关更多信息,请参见on_start和on_stop方法。

  蝗虫开始将以上代码放在当前目录中名为locustfile.py的文件中,然后运行:

Locust(负载测试工具)

  如果您的蝗虫文件位于其他位置,则可以使用进行指定 -f

Locust(负载测试工具)

  蝗虫的网络界面使用上述命令行之一启动Locust后,应该打开浏览器并将其指向http://127.0.0.1:8089。然后,您应该会收到类似以下内容的问候:

Locust(负载测试工具)

  填写表格并尝试!(但请注意,如果您不更改蝗虫文件以匹配实际的目标系统,则大多数情况下会收到错误响应)

Locust(负载测试工具)

  更多选择要运行分布在多个Python进程或计算机上的Locust,可以使用--master命令行参数启动单个Locust主进程,然后使用--worker 命令行参数启动任意数量的Locust worker进程。有关更多信息,请参见运行蝗虫。

  要直接开始测试而不使用Web界面,请使用--headless。

  也可以通过环境变量或在 配置文件中设置参数。

  要在无头运行期间添加/删除用户,请按w或W(1,10)生成用户,按s或S停止(1,10)。

  编写蝗虫文件locustfile是普通的python文件。唯一的要求是,它声明至少一个从该类继承的类User。

  用户类别一个用户类别代表一个用户(如果愿意,则代表一群蝗虫)。蝗虫将为每个正在模拟的用户生成User类的一个实例。User类可以定义一些公共属性。

  wait_time属性用户wait_time方法是一个可选属性,用于确定模拟用户在执行任务之间应等待多长时间。如果未wait_time 指定,则一项新任务将立即执行。

  内置了三个等待时间功能:

  constant 在固定的时间内

  between 在最大值和最小值之间的随机时间

  constant_pacing 自适应时间,以确保任务每X秒(最多)运行一次

  例如,使每个用户在每次任务执行之间等待0.5到10秒:

Locust(负载测试工具)

  也可以在类上直接声明自己的wait_time方法。例如,下面的User类将休眠一秒钟,然后休眠两个,然后休眠三个,依此类推。

Locust(负载测试工具)

  体重属性如果文件中存在多个用户类,并且在命令行上未指定任何用户类,则Locust将产生相等数量的每个用户类。您还可以通过将它们作为命令行参数传递,来指定要从同一locustfile中使用哪些用户类:

Locust(负载测试工具)

  如果您希望模拟更多特定类型的用户,则可以在这些类上设置一个weight属性。举例来说,网络用户的可能性是移动用户的三倍:

Locust(负载测试工具)

  主机属性host属性是要加载的主机的URL前缀(即“ http://google.com ”)。通常,这是在蝗虫--host启动时在Locust的Web UI或命令行中使用该 选项指定的。

  如果在用户类中声明了主机属性,则--host 在命令行或Web请求中未指定任何主机属性的情况下将使用该属性。

  任务属性User类可以使用@task装饰器在其下声明为方法的任务,但是也可以使用task属性指定任务,这将在下面更详细地描述。

  环境属性environment对用户正在其中运行的引用。使用它与环境或runner其所包含的环境进行交互。例如,从任务方法停止跑步者:

Locust(负载测试工具)

  如果在独立蝗虫实例上运行,则将停止整个运行。如果在工作程序节点上运行,它将停止该特定节点。

相关文章
  • 最新排行
  • 最热排行
  • 评分最高
其他软件排行榜

点击查看更多

点击查看更多

点击查看更多