欢迎来到神奇下载!我们唯一域名是:www.sqxzz.com

Locust 官方版 v1.4.3

更新时间:2022-06-03 15:14:22

软件介绍

Locust提供能测试功能,可以通过这款软件帮助用户测试web程序能,测试网站能,支持通过HTTP请求测试,可以基于响应的系统进行负载测试,也可以将软件扩展到其他系统进行测试,测试的数据可以通过图表显示,方便测试人员查看可视化的负载测试结果,测试过程会显示志内容,方便后期查看志了解工作流程,这款软件功能还是很丰富的,支持使用 Docker运行Locust,支持在没有WebU的情况下运行Locust,支持通过更快的HTTP客户端提高Locust的能,新版修复了Web UI中图表工具提示的错误,提供图表的多项改进,包括工具提示等,添加了–html选项以保存HTML报告!

Locust软件功能

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

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

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

基于Web的UI

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

可以测试任何系统

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

Locust软件特色

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

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

名称和背景

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

蝗虫的名字来源于蝗虫种类,它们以蜂拥而至。

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

Locust教程

安装安装Python 3.6或更高版本。

使用pip安装Locust。

$ pip3 install locust

验证安装并显示Locust版本号:

$ locust -V

如果一切正常,请继续快速入门。如果没有,请查看Wiki以获取一些解决方案。

出血边缘版本如果您需要某些功能或尚未发布的修补程序,请执行以:

$ pip3 install -e git://github.com/locustio/locust.git@master#egg=locust

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

locustfile.py示例

让我们分解一下

import time

fm locust import HttpUser, task, between

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

class QuickstartUser(HttpUser):

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

wait_time = between(1, 2.5)

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

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

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

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

self.client.get("/hello")

该self.client属使得可以进行将由Locust记录的HTTP调用

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

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

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

$ locust

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

$ locust -f locust_files/my_locust_file.py

笔记

要查看所有可用选项,请输入:或配置locust --

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

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

更多的选择要运行分布在多个Python进程或计算机上的Locust,可以使用--master命令行参数启动一个Locust主进程,使用--worker 命令行参数启动任意数量的Locust worker进程

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

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

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

使用自定义客户端测试其他系统Locust以HTTP为主要目标而构建。但是,通过编写触发request_success和 request_failure事件的自定义客户端,可以轻松扩展它以对任何基于请求/响应的系统进行负载测试 。

笔记

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

某些C库无法通过gnt进行猴子修补,但允许其他解决方法。例如,如果要使用psycopg2对PostgreSQL进行能测试,可以使用psycogreen。

示例XML-RPC用户客户端这是一个User类XmlRpcUser的示例,该类提供了XML-RPC客户端 XmlRpcUser并跟踪所有发出的请求:

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

该XmlRpcClient是各地的标准库的一个包装xmlrpc.client.ServerPxy。它基本上只是代理函数调用,但是重要的是增加了触发locust.nt.Events.request_success和locust.nt.Events.request_failure 事件,它将在Locust的统计中记录所有调用。

这是XML-RPC的实现,该可用作上述代码的:

使用事件钩扩展locust

locust带有许多事件钩,可用于以不同方式扩展locust。

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

这是有关如何设置事件的示例:

笔记

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

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

您现在应该可以开始蝗虫并浏览到http://127.0.0.1:8089/added_page

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

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

运行背景绿色因为Locust文件是“公正的代码”,所以没有什么可以阻止您生成自己的greenlet来与实际负载/用户并行运行。

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

近期热门

1
Free Disney Plus Download提供网页下载功能,将地址粘贴到软件就可以直接下载,如果你在浏 […]
2
postman windows是postman这款强大网页调试工具的windows客户端,提供功能强大的 We […]
3
TapinRadio Pro(全球电台收音机)免费下载是网络软件分类电脑软件,神奇下载小编接下来不仅仅给各位带 […]
4
WebDav小秘提供文件共享功能,可以将本地的文件夹设置共享,让企业团队成员可以访问你的电脑文件夹,这款软件作 […]
5
CIM是一款聊天软件,将其部署就可以和自己的朋友聊天,可以在软件查看在线的全部用户,获取对方的ID就可以直接聊 […]
6
华为浏览器可以让用户正常进入网页查看喜欢的资讯,大家都知道在网上查找资源都是通过浏览器执行的,浏览器的功能非常 […]
7
iVMS-4200是一款监控软件ivms4200的电脑客户端,ivms4200专为嵌入式例络监控设备开发,支持 […]
8
Chme浏览器便携增强版是一款基于版本制作的便携增强版本,这款增强版的谷歌浏览器不会和其它版本冲突,不想用了可 […]
9
租号玩商户软件是一款非常受欢迎的租号管理软件,租号玩商户软件版界面美观大方,功能强劲实用,商家可以通过此软件对 […]
10
少爷蓝奏云直解析是一款由吾爱破解论坛网友分享提供的一款蓝奏云解析下载工具,能一键提取蓝奏云的外链和直链,右键即 […]

声明:本站所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助 转载需标注!

Copyright © 2018-2023 All Rights Reserved. 神奇下载网站备案编号:苏ICP备12036411号

抵制不良游戏软件,拒绝盗版。 注意自我保护,谨防受骗上当。 适度娱乐益脑,沉迷伤身。合理安排时间,享受健康生活。

共 22 次查询,耗时 0.995 秒