Locust是一款非常专业且优秀的开源负载测试工具,通过这款软件可帮助用户快速对网站或其它系统进行负载测试,从而能够快速了解一个系统能够并发处理的用户数,该软件易于使用,可使用该软件编写脚本且拥有可扩展性,因为您可以使用常规的Python代码定义用户的行为,相对于一些比较笨拙的UI或特定于域的语言,这使得Locust可以无限扩展,并且对于开发人员来说也非常友好,在Locust中可采取不同的方法代替配置格式或UI,从而获得一个Python框架,欢迎有需要的用户下载体验
在代码中定义用户行为
不需要笨拙的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示例
让我们分解一下
蝗虫文件只是普通的Python模块,它可以从其他文件或包中导入代码。
在这里,我们为将要模拟的用户定义一个类。它继承自 HttpUser该client属性,从而为每个用户提供一个属性,该属性是的一个实例HttpSession,可用于向要加载测试的目标系统发出HTTP请求。当测试开始时,蝗虫将为它模拟的每个用户创建一个此类的实例,并且这些用户中的每个将开始在自己的绿色gevent线程中运行。
我们的类定义了一个wait_time,它将使模拟用户在执行每个任务(请参阅下文)之后等待1到2.5秒。有关更多信息,请参见wait_time属性。
装饰有方法的方法@task是蝗虫文件的核心。对于每个正在运行的用户,Locust都会创建一个greenlet(微线程),它将调用这些方法。
我们通过用修饰两个方法来声明了两个任务@task,其中一个具有较高的权重(3)。当我们QuickstartUser运行它会挑的申报任务之一-在这种情况下,无论是hello_world或 view_items-并执行它。任务是随机选择的,但是您可以赋予它们不同的权重。上面的配置将使蝗虫的采摘可能性view_items比蝗虫高3倍hello_world。任务完成执行后,用户将在其等待时间(在这种情况下为1到2.5秒)内进入睡眠状态。等待时间过后,它将选择一个新任务并继续重复执行。
请注意,只会选择用修饰符修饰的方法@task,因此您可以根据自己的喜好定义自己的内部帮助器方法。
该self.client属性使得可以进行将由Locust记录的HTTP调用。有关如何发出其他类型的请求,验证响应等信息,请参阅《 使用HTTP客户端》。
在此view_items任务中,我们使用变量查询参数加载10个不同的URL。为了使Locust的统计信息中没有10个单独的条目(由于统计信息是按URL分组的),我们使用name参数将所有这些请求分组到一个名为的条目下"/item"。
此外,我们还声明了一个on_start方法。每个模拟用户在启动时都会调用具有该名称的方法。有关更多信息,请参见on_start和on_stop方法。
蝗虫开始将以上代码放在当前目录中名为locustfile.py的文件中,然后运行:
如果您的蝗虫文件位于其他位置,则可以使用进行指定 -f
蝗虫的网络界面使用上述命令行之一启动Locust后,应该打开浏览器并将其指向http://127.0.0.1:8089。然后,您应该会收到类似以下内容的问候:
填写表格并尝试!(但请注意,如果您不更改蝗虫文件以匹配实际的目标系统,则大多数情况下会收到错误响应)
更多选择要运行分布在多个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秒:
也可以在类上直接声明自己的wait_time方法。例如,下面的User类将休眠一秒钟,然后休眠两个,然后休眠三个,依此类推。
体重属性如果文件中存在多个用户类,并且在命令行上未指定任何用户类,则Locust将产生相等数量的每个用户类。您还可以通过将它们作为命令行参数传递,来指定要从同一locustfile中使用哪些用户类:
如果您希望模拟更多特定类型的用户,则可以在这些类上设置一个weight属性。举例来说,网络用户的可能性是移动用户的三倍:
主机属性host属性是要加载的主机的URL前缀(即“ http://google.com ”)。通常,这是在蝗虫--host启动时在Locust的Web UI或命令行中使用该 选项指定的。
如果在用户类中声明了主机属性,则--host 在命令行或Web请求中未指定任何主机属性的情况下将使用该属性。
任务属性User类可以使用@task装饰器在其下声明为方法的任务,但是也可以使用task属性指定任务,这将在下面更详细地描述。
环境属性environment对用户正在其中运行的引用。使用它与环境或runner其所包含的环境进行交互。例如,从任务方法停止跑步者:
如果在独立蝗虫实例上运行,则将停止整个运行。如果在工作程序节点上运行,它将停止该特定节点。
CIMCO Edit
276.25 MB/2020-08-17CIMCOEditV5是CIMCO软件公司专为数控编程而设计的专业软件,该软件以其强大的功能、低廉的价格而风靡欧美,它有强大而实用的数控编辑功能、文件的智能比较、刀位轨迹的三维模拟、DNC传输等功能。其完全的Windows界面,一目了然的地址颜色,强大的在线帮助,会使您爱不释手。
CKplayer网页播放器
336 KB/2020-08-17ckplayer是一款在网页上播放视频的免费的网页播放器,功能强大,体积小巧,跨平台,使用起来随心所欲。CKplayer网页播放器主要以adobe的flash(所使用的版本是CS5)平台开发,ckplayer同时也支持html5的视频播放。
WordPress
6.7 MB/2020-08-17WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设自己的网志。也可以把WordPress当作一个内容管理系统(CMS)来使用。
Discuz论坛
4.05 MB/2020-08-17Discuz!Board(以下简称Discuz!,中国国家版权局著作权登记号2003SR6623)是一个通用的论坛软件系统,用户可以在不需要任何编程的基础上,Discuz论坛通过简单的设置和安装
Guns后台管理系统
12.5 MB/2020-08-17Guns后台管理系统是一款项目快速开发管理系统网站搭建模板,基于SpringBoot2开发,内置主控面板、组织架构、用户管理、机构管理、职位管理、权限管理、基础数据、系统功能
狂雨小说cms
7.8 MB/2020-08-17狂雨小说是一款体积轻量、简单易用的轻量级小说网站搭建模板,基于ThinkPHP5.1+MySQL的技术开发,网站搭建和部署便捷简单,通过该模板用户可以快速搭建一个属于自己的小说内
Slidev(开发幻灯片展示)
8.52 MB/2020-08-17Slidev是一款非常专业且优秀的开发幻灯片展示软件,作为基于Web的幻灯片制作和演示软件,非常适合开发人员使用,可帮助他们专注于在Markdown中编写内容,软件功能强大,拥有HTML
魔众短链接系统
27.5 MB/2020-08-17魔众短链接系统是一款绿色安全、免费开源的短链接生成网站搭建模板,基于PHP+Mysql开发,可帮助用户快速搭建属于自己的短链接生成网站,该网站界面简洁美观、对SEO非常友好,功
CIMCO Edit
建站专家网站建设系统
Turbo C 2.0库函数速查
PPTV网络电视系统
中英繁公司企业智能自助建站源码
宾馆酒店饭店网站建设模板ASP源码
XOOPS 简体中文版 2.0.3 for Unix
SaurusCMS
Deluge For Linux
欢乐拼三张单机免费版2025
众发棋牌平台
亲友棋牌送6元金币平台2025
庄闲游戏平台
2025澳门六下彩
角落棋牌官方网站
跑得快游戏2025最新版
捕鱼大作战官方版本
炸金花app游戏
您可能感兴趣的专题
男生必备
男生们看过来!
安卓装机必备
女生必备
女生必备app是拥有众多女性用户的手机软件,作为一个女生,生活中像淘宝、京东这类线上购物软件可以说是少不了的,小红书这种穿搭、化妆分享平台也很受欢迎,类似于西柚大姨妈、美柚这种专为女生打造的生理期app更是手机必备,还有大家用的最多拍照美颜app是绝对不能忘记的,除此之外对于一些追星女孩来说,微博也是一个必不可少的软件。超多女生必备软件尽在下载吧!
迅雷看看使用教程
迅雷看看播放器是一款多功能在线高清多媒体视频播放器,支持本地播放与在线视频点播,采用P2P点对点传输技术,可以在线流畅观看高清晰电影。不仅如此,迅雷看看不断完善用户交互和在线产品体验,让您的工作与生活充满乐趣。
驱动精灵
驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能,也是大家日常生活中经常用到的实用型软件之一了。
拼音输入法
对于电脑文字输入,拼音输入法是一种非常受欢迎的输入法,搜狗拼音输入法、百度拼音输入法、QQ拼音输入法、谷歌拼音输入法、紫光拼音输入法、智能拼音输入法等,你在用哪款呢?一款好用适合自己的拼音输入法一定对您平时帮助很大!下载吧收集了最热门国人最喜欢用的拼音输入法给大家。
b站哔哩哔哩怎么使用
很多人都喜欢在b站哔哩哔哩上观看视频,不单是因为可以提前看到一些视频资源,B站的一些弹幕、评论的玩法也是被网友们玩坏了!下面下载吧小编带来了b站哔哩哔哩怎么使用的教程合集!希望能帮到你啦!
抖音短视频app
抖音短视频app,这里汇聚全球潮流音乐,搭配舞蹈、表演等内容形式,还有超多原创特效、滤镜、场景切换帮你一秒变大片,为你打造刷爆朋友圈的魔性短视频。脑洞有多大,舞台就有多大!好玩的人都在这儿!