系统软件 应用软件 图形软件 行业软件 安全相关 网络软件 聊天软件 影音软件 教育教学 驱动工具 编程开发 插件下载 源码下载 APP电脑版 其他类别

Locust官方版

v1.4.3

Locust官方版

  • 软件大小:1.01 MB
  • 软件语言:简体中文
  • 软件授权:共享软件
  • 软件类型:网络软件
  • 软件平台:WinAll
  • 更新时间:2022-02-02 13:24
  • 星级评分:4级
  • 软件官网:https://www.downza.com/
好评:50%顶一个
坏评:50踩一个

Locust简介

Locust提供了一个可测试的功能,可以帮助用户测试web程序功能、测试网站功能、支持HTTP请求测试、基于响应系统的负载测试,或者将软件扩展到其他系统进行测试。测试数据可以用图表显示,方便测试人员查看可视化负载测试结果,测试过程会显示博客内容,方便后期查看博客,了解工作流程。这个软件功能还是很丰富的。它支持使用Docker运行Locust,无需WebU即可运行Locust,通过更快的HTTP客户端提高Locust的性能。新版本修复了Web UI中图表工具提示的错误,提供了包括工具提示在内的许多图表改进,并增加了–HTML选项来保存HTML报告。

Locust软件功能

Locust是一个易于使用、可编写脚本和可扩展的可测试工具。您可以使用常规Python代码来定义用户行为,而不是使用笨拙的UI或特定于领域的语言。这使得Locust具有无限的可伸缩性,并且对开发人员非常友好。

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

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

基于网络的用户界面

Locust有一个用户友好的Web界面,可以实时显示测试进度。您甚至可以在测试运行时更改负载。它也可以在没有UI的情况下运行,因此很容易进行CI/CD测试。

你可以测试任何系统。

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

Locust软件特色

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

如果你想让用户循环,执行一些条件行为或者执行一些计算,你只需要使用Python提供的通用编程结构。Locust在每个用户内部运行自己的小程序(轻量级流程/公司)。这允许您编写像普通(阻塞)Python代码一样的测试,而无需使用回调或其他机制。因为您的场景是“仅python”,所以您可以使用常规IDE,并以常规代码的形式控制测试(与使用XML或二进制格式的其他工具相反)。

姓名和背景

Locust诞生于对现有解决方案的不满。现有的负载测试工具都不能很好地为动态网站生成实际负载,动态网站上的大多数页面对于不同的用户有不同的内容。现有工具使用笨拙的接口或冗长的配置文件来声明测试。在Locust中,我们采用了不同的方法。您将获得一个python框架,它允许您使用Python代码定义用户的行为,而不是配置格式或UI。

蝗虫的名字来源于成群结队的蝗虫种类。

Locust以前的版本使用了从自然界借来的术语(群发、孵化、攻击等)。),但现在采用了更多的行业标准名称。

Locust教程

安装Python 3.6或更高版本。

使用pip安装Locust。

$ pip3安装蝗虫

验证并显示Locust版本号:

$蝗虫-五

如果一切正常,请继续快速入门。如果没有,请查看维基了解一些解决方案。

出血版本如果您需要某些功能或未发布的补丁,请执行以下步骤:

$ pip 3 install-e git://github . com/locustio/蝗虫. @ master # egg =蝗虫

在Locust入门,可以用Python代码定义用户行为。,在收集请求统计信息时,可以使用蝗虫命令(可选)及其Web界面来生成和模拟大量用户。

locustfile.py示例

让我们把它分解

导入时间

fm蝗虫导入HttpUser,任务,介于

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

类快速启动用户(HttpUser):

这里,我们为要模拟的用户定义一个类。它继承了客户端genus HttpUser,从而为每个用户提供了一个genus,它是HttpSession的一个实例,可以用来向目标系统发出HTTP请求以进行负载测试。当测试开始时,蝗虫将为它模拟的每个用户创建一个这个类的实例,并且这些用户中的每一个都将开始在它自己的绿色gnt线程中运行。

wait_time =介于(1,2.5)之间

我们的类定义了一个wait_time,它将使模拟用户在每个任务后等待1到2.5秒(见下文)。

修饰方法@task是Locust文件的核心。Locust为每个正在运行的用户创建一个greenlet(微线程),它将调用这些方法。

我们通过修饰两个方法来声明两个任务@task,其中一个方法的权重更高(3)。当我们快速启动用户运行一个声明任务时,它会选择并执行它,在这种情况下,无论它是hello_world还是view_s。任务是随机选择的,但是你可以给它们不同的权重。以上配置将使Locust比hello_world更容易选择view_s。任务完成后,用户将在等待时间内进入睡眠状态(本例中为1到2.5秒)。等待时间过后,它会选择一个新任务并继续重复。

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

self . client . get(& # 8220;/hello & # 8221;)

self.client类支持通过Locust记录HTTP调用

在这个view_s任务中,我们使用变量查询参数来加载10个不同的L..为了不在Locust的统计信息中获得10个单独的条目(因为统计信息是按L分组的),我们使用name参数将所有这些请求分组到一个名为& # 8221;/”。

此外,我们还声明了一个on_start方法。每个模拟用户在启动时都会调用一个同名的方法。

开始将上述代码放入当前目录中名为locustfile.py的文件中并运行它:

$蝗虫

如果您的蝗虫文件位于另一个位置,您可以使用-f。

$蝗虫-f蝗虫_ file/my _蝗虫_file.py

笔记

要查看所有可用选项,请输入:或配置抢占& # 8212;

Locust的网络接口以Locust开头,上面的命令行之一,你应该打开浏览器指向http://127.0.0.1:8089。,您应该会收到类似以下内容的问候:

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

要获得更多选择,要运行分布在多个Python进程或计算机上的Locust,可以使用& # 8211;主命令行参数使用& # 8211;启动一个Locust主进程。worker命令行参数启动任意数量的Locust工作进程。

不使用Web界面直接开始测试,请使用& # 8211;无头的.

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

在无头操作中添加/删除用户,按W或W (1,10)生成用户,按S或S停止(1,10)。

用自定义客户端测试其他系统Locust是以HTTP为主要目标构建的。但是,通过编写一个触发request_success和request_failure事件的自定义客户端,它可以很容易地扩展到负载测试任何基于请求/响应的系统。

笔记

你使用的任何协议库都必须是gnt友好的(使用Pythonsocket模块或其他类似的标准库函数子进程),否则你的调用会阻塞整个Locust进程。

有些C库不能通过gnt修复猴子,但允许其他解决方案。例如,如果要用psycopg2测试PostgreSQL,可以使用psycogreen。

示例XML-RPC用户客户端这是用户类xmlrpuser的示例,它提供XML-RPC客户端xmlrpuser并跟踪所有发出的请求:

如果您以前编写过Locust测试,您会意识到名为ApiUser的类是一个普通的User类,它声明了几个任务。但是,您可以从XmlRpcUser继承ApiUser所看到的ApiUser。使用XmlRpcUser标记为图像,这意味着Locust将不会尝试从此类(仅扩展此类的类)创建模拟用户。在下提供XmlRpcClient的实例。抽象= TrueXmlRpcUserclient

XmlRpcClient是世界各地标准库的包装器,xmlrpc.client.ServerPxy基本上只是一个代理函数调用,但重要的是添加了catch . nt . events . request _ success和catch . nt . events . request _ failure的触发事件,会将所有调用记录在Locust的统计中。

这是XML-RPC的实现,可以用作:

用事件钩延伸蝗虫

蝗虫有许多事件钩,可以用来以不同的方式扩展蝗虫。

事件挂钩位于nts下的Envinment实例上。但是,由于导入蝗虫文件时尚未创建Envinment实例,因此也可以通过蝗虫变量在蝗虫文件的模块级别访问nt对象。

这是一个如何设置事件的示例:

笔记

强烈建议您向侦听器添加通配符关键字参数(上面代码中的** kw),以防止在以后版本中添加新参数时损坏代码。

添加网络路由LocustWeb UI是使用Flask提供的,所以很容易将Web端点添加到Web UI中。通过监听init事件,我们可以检索对Flask应用程序实例的引用,并使用该引用来设置新的路由:

现在您应该可以启动蝗虫并浏览到http://127 . 0 . 0 . 1:8089/add _ page。

扩展Web UI除了添加简单的Web路由之外,还可以使用Flask蓝图和模板来添加路由,还可以扩展Web UI以允许在内置Locust统计旁边显示自定义数据。这是一种更高级的方法,因为它还涉及到编写和包含由路由服务的HTML和Javascpt文件,但它可以大大增强Web UI的实用性和定制性。

您可以在Locust源代码的示例目录中找到扩展Web UI的有效示例,该目录包含HTML和Javascpt示例文件。

运行背景绿色由于Locust文件是“公平代码”,没有什么可以阻止您生成自己的绿色小程序来与实际负载/用户并行运行。

例如,您可以监控测试的失败率,并在测试超过特定阈值时停止运行:

收起介绍展开介绍
  • 安卓合集
  • 软件合集
  • 浏览器
  • 电脑管家
  • 安卓游戏
更多 >> 安卓合集安卓合计

热门推荐

装机必备软件