Locust V1.4.4 正式版负载测试软件

Locust V1.4.4 正式版负载测试软件
宝哥软件园为您提供Locust,负载测试软件免费下载,Locust是一款专业的负载测试软件。
软件大小:1.2MB
软件类型:汉化软件
软件语言:简体中文
软件授权:自由软件
最后更新:2021-08-27 02:32:55
推荐指数:
运行环境:Win7/Win8/Win10/WinALL
查看次数:
蝗虫是一个专业的负载测试软件。您可以使用该软件帮助用户测试Web程序的性能,测试网站的性能,支持HTTP请求测试,基于响应系统的负载测试,或者将该软件扩展到其他系统进行测试。测试数据可以用图表显示。测试人员可以轻松查看可视化负载测试结果。日志内容将在测试期间显示,这使得以后查看日志以了解工作流变得容易。软件还是很一般的。它支持Docker运行蝗虫,支持无WebU的蝗虫。支持通过更快的HTTP客户端来提高蝗虫的性能。新版本修复了Web UI中破坏图表工具提示的错误,对包括工具提示在内的图表做了很多改进,增加了-HTML选项保存HTML报表。如有需要,请下载报告!
官方教程:
安装Python 3.6或更高版本。用pip安装蝗虫。
$ pip3安装蝗虫
验证安装并显示蝗虫版本号:
$蝗虫-五
如果一切正常,请继续快速上手。如果没有,请查看维基了解一些解决方案。
出血边缘版本如果您需要一些未发布的功能或补丁,请执行以下操作:
$ pip 3 install-e git://github.com/locustio/蝗虫. @ master # egg=蝗虫
入门在蝗虫中,您可以使用Python代码来定义用户行为。然后,您可以使用locate命令及其Web界面(可选)在收集请求统计信息时生成和模拟大量用户。
Locustfile.py示例
让我们把它分解
导入时间
在任务之间,从蝗虫导入HttpUser
蝗虫文件只是一个普通的Python模块,可以从其他文件或包中导入代码。
类快速启动用户(HttpUser):
这里,我们为要模拟的用户定义一个类。它继承了HttpUser的客户端属性,从而为每个用户提供了一个属性,这个属性是HttpSession的一个实例,可以用来向目标系统发出HTTP请求进行加载和测试。当测试开始时,蝗虫将为它模拟的每个用户创建一个这个类的实例,每个用户将
开始运行自己的绿色gevent线程。
等待时间=介于(1,2.5)之间
我们的类定义了wait_time,这将使模拟用户在执行每个任务后等待1到2.5秒(见下文)
用方法修饰的方法@task是locate文件的核心。Locust为每个运行的用户创建一个greenlet(微线程),greenlet将调用这些方法。
我们通过修改两个方法来声明两个任务@task,其中一个方法的权重更高(3)。当我们的QuickstartUser运行时,它将选择一个声明任务——在本例中是hello_world或view _ items——并执行它。任务是随机选择的,但是你可以给它们不同的权重。上述配置将使蝗虫选择view_items比hello_world容易三倍。任务完成后,用户将在他的等待时间内进入睡眠状态(在这种情况下,1到2.5秒)。等待时间过后,它会选择一个新任务并继续重复。
请注意,只有@task选择带有修饰符的方法,因此您可以根据自己的偏好定义自己的内部助手方法。
Self.client.get("/hello ")
self.client属性使得可以进行由蝗虫记录的HTTP调用
在这个view_items任务中,我们使用可变的查询参数来加载10个不同的URL。为了不在蝗虫统计中获得10个单独的项目(因为统计是按URL分组的),我们使用name参数将所有这些请求分组到名为“/item”的项目下。
此外,我们还声明了一个on_start方法。每个模拟的用户将在启动时用这个名称调用方法
将上述代码打开到当前目录下名为locustfile.py的文件中,然后运行:
蝗虫
如果蝗虫文件位于另一个位置,可以使用-f
$蝗虫-floust _ files/my _蝗虫_ file.py
笔记
要查看所有可用选项,请输入:或检查配置蝗虫-帮助
蝗虫的Web界面应该打开浏览器,用上面的命令行之一启动蝗虫后指向http://127.0.0.133608089。然后,您应该会收到类似以下内容的问候:
填表试试!(但是,请注意,如果您不更改蝗虫文件以匹配实际的目标系统,在大多数情况下,您将收到错误响应。)
更多选项要在多个Python进程或计算机上运行蝗虫,您可以使用- master命令行参数启动蝗虫主进程,然后使用- worker命令行参数启动任意数量的蝗虫工作进程。
使用- headless,而不是直接使用Web界面启动测试。
您也可以通过环境变量或在配置文件中设置参数。
要在无头操作中添加/删除用户,请按W或W (1,10)生成用户,然后按S或S停止(1,10)。
使用定制客户端测试其他系统蝗虫是以HTTP为主要目标构建的。但是,通过编写一个触发request_success和request_failure事件的自定义客户端,可以轻松扩展该客户端,以对任何基于请求/响应的系统进行负载测试。
笔记
您使用的任何协议库都必须是gevent友好的(使用Python套接字模块或其他类似的标准库函数子进程),否则您的调用将阻塞整个蝗虫进程。
Gevent不能通过猴子修补一些c库,但允许其他解决方案。例如,如果您想使用psycopg2对PostgreSQL执行性能测试,可以使用psycogreen。
示例XML-RPC用户客户端这是用户类XmlRpcUser的一个示例,它提供XML-RPC客户端XmlRpcUser并跟踪所有请求:
如果您以前编写过一个蝗虫测试,您将识别一个名为ApiUser的类,它是一个声明多个任务的普通用户类。但是,您可以从上面的XmlRpcUser中继承ApiUser。用XmlRpcUser标记为抽象,这意味着蝗虫不会尝试从这个类创建模拟用户(只扩展这个类的类)。在属性下,提供XmlRpcClient的实例。抽象=TrueXmlRpcUserclient
XmlRpcClient是标准库xmlrpc.client.ServerProxy的包装器.它基本上只是一个代理函数调用,但是添加诸如locate之类的触发器很重要。事件。事件。请求成功并定位。事件。事件。request _ failure事件,它将在定位统计信息中记录该调用。
这是XML-RPC服务器的实现,可以作为上面代码的服务器:
使用事件钩子来展开蝗虫
蝗虫般的智慧
徐事件的钩子,可以用不同的方式来扩大蝗虫。
事件挂钩位于环境实例的events属性下。但是,由于导入蝗虫文件时没有创建环境实例,因此也可以通过蝗虫. events变量在蝗虫文件的模块级别访问事件对象。
这是一个如何设置事件侦听器的示例:
笔记
强烈建议您向侦听器添加通配符关键字参数(上面代码中的** kw),以防止在未来版本中添加新参数时代码损坏。
添加网络路由蝗虫使用烧瓶来提供网络用户界面,因此很容易向网络用户界面添加网络端点。通过监听init事件,我们可以检索对Flask应用程序实例的引用,并使用它来设置新的路由:
现在,您应该能够启动蝗虫并浏览到http://127 . 0 . 0 . 1:8089/add _ page
除了添加简单的网络路由,您还可以使用Flask蓝图和模板来添加路由。您还可以扩展网络用户界面,允许您在内置蝗虫统计数据旁边显示自定义数据。这是一种更高级的方法,因为它还涉及到编写和包含HTML和Javascript文件,通过路由提供服务,但可以大大增强Web UI的实用性和定制性。
您可以在locate源代码的示例目录中找到扩展Web UI的有效示例,该目录包含HTML和Javascript示例文件。
运行绿色背景因为定位文件是“合理的代码”,没有什么可以阻止你生成自己的小程序,与实际的负载/用户并行运行。
例如,您可以监控测试的失败率,并在测试超过特定阈值时停止运行:
软件功能:
蝗虫是一个易于使用,可脚本化和可扩展的性能测试工具。您可以使用常规Python代码来定义用户行为,而无需使用笨拙的用户界面或特定于领域的语言。这使得蝗虫具有无限的可扩展性,对开发人员非常友好。
面向数十万用户的分布式可扩展支持
蝗虫使运行分布在多台计算机上的负载测试变得容易。它是基于事件的(使用gevent),允许单个进程处理数千个并发用户。尽管可能有其他工具可以在给定的硬件上每秒执行更多的请求,但每个蝗虫用户的低开销使其非常适合测试高度并发的工作负载。
基于网络的用户界面
蝗虫有一个用户友好的网络界面,可以实时显示测试进度。您甚至可以在测试运行时更改负载。它也可以在没有UI的情况下运行,这使得测试CI/CD变得很容易。
你可以测试任何系统
尽管蝗虫主要用于网站/服务,但它几乎可以用于测试任何系统或协议。只需为要测试的内容编写一个客户端,或者浏览社区创建的内容。
软件特色:
用普通Python编写用户测试计划如果您希望用户循环、执行某些条件行为或执行某些计算,您只需要使用Python提供的通用编程结构。蝗虫在每个用户体内运行自己的小程序(轻量级进程/协同)。这允许您编写类似于普通(阻塞)Python代码的测试,而无需使用回调或其他机制。因为您的方案是“仅python”,所以您可以使用常规IDE并以常规代码的形式控制测试(与使用XML或二进制格式的一些其他工具相反)
姓名和背景
蝗虫诞生于对现有解决方案的不满。没有现有的负载测试工具可以为动态网站生成实际负载。在动态网站上,大多数页面对于不同的用户有不同的内容。现有工具使用笨拙的接口或冗长的配置文件来声明测试。在蝗虫方面,我们采用了不同的方法。您将获得一个python框架,它允许您使用Python代码定义用户行为,而不是配置格式或UI。
蝗虫的名字来源于成群出现的蝗虫种类。
蝗虫的前一个版本使用了从自然界借来的术语(大量释放、孵化、攻击等)。),但现在采用了更多的行业标准名称。