asp网站建设实验设计,企业信息平台网站官网,莱芜论坛24小时主贴,网站制作长春一、Locust介绍
开源性能测试工具https://www.locust.io/#xff0c;基于Python的性能压测工具#xff0c;使用Python代码来定义用户行为#xff0c;模拟百万计的并发用户访问。每个测试用户的行为由您定义#xff0c;并且通过Web UI实时监控聚集过程。
压力发生器作为性…一、Locust介绍
开源性能测试工具https://www.locust.io/基于Python的性能压测工具使用Python代码来定义用户行为模拟百万计的并发用户访问。每个测试用户的行为由您定义并且通过Web UI实时监控聚集过程。
压力发生器作为性能测试工具的核心部分两个核心要点有一是真实模拟用户操作二是模拟有效并发
模拟用户请求操作上
只要我们能采用Python编写对应的请求客户端就能方便地采用Locust实现压力测试
模拟有效并发方面
Locust完全基于事件使用gevent 协程提供的非阻塞IO和coroutine来实现网络层的并发请求避免了系统级资源调度大幅提高了性能因此即使是单台压力机也能产生数千并发请求数。
主流压测工具对比 在这我准备了一份软件测试视频教程含接口、自动化、性能等需要的可以直接在下方观看或者直接关注VX公众号互联网杂货铺这份测试文档资料也打包在里面啦免费领取
软件测试视频教程观看处 2023完整版阿里大牛7天软件测试零基础速成内部教程从基础到项目实战学完即入职。 二、基本原理
主要的三个类HttpLocust, TaskSet, task
Locust类代表一群蝗虫而每一只蝗虫就是一个类的实例TaskSet类则可代表蝗虫的大脑即实际业务场景测试对应的任务集。
1、Locust类
继承于Locust的类代表一个用户Locust会为每一个模拟用户生成一个locust类实例。
在Locust类中还有几个属性需要关注下 2、TaskSet类
TaskSet定义任务信息是定义待测试的任务代码集。每一个Locust类中包含一个指向TaskSet的task_set属性设置。测试任务开始后每个 Locust 用户会从 TaskSet 中随机挑选一个任务执行然后随机等待 HttpLocust 类中定义的 min_wait和 max_wait 之间的一段时间执行下一个任务。
3、task
通过task()装饰的方法为一个事务。方法的参数用于指定该行为的执行权重。参数越大每次被虚拟用户执行的概率越高。如果不设置默认为1。
tasks {classname:2} 表示每个用户执行 classname 的频率是2
4、执行原理
测试开始后每个虚拟用户Locust实例的运行逻辑都会遵循如下规律
先执行WebsiteTasks中的on_start有则执行只执行一次作为初始化 从WebsiteTasks中随机挑选如果定义了任务间的权重关系那么就是按照权重关系随机挑选一个任务执行 根据Locust类中min_wait和max_wait定义的间隔时间范围如果TaskSet类中也定义了min_wait或者max_wait以TaskSet中的优先在时间范围中随机取一个值休眠等待 重复2~3步骤直至测试任务终止。
三、实例
V1.1 有些小改动原理类似QuickStartUser继承HttpUser定义用户行为集。
index() 、search() 方法访问百度首页用task() 装饰该方法为一个任务1表示一个Locust实例被挑选执行的权重数值越大执行频率越高。 运行结果
启动性能
locust -f demo_pt.py # --hosthttps://www.baidu.com -f, --locustfile指定执行的Locust脚本文件
访问http://127.0.0.1:8089
Number of users to simulate设置模拟用户数Hatch rate (users spawned/second) 每秒产生启动的用户数。
展示结果 四、写在最后
PS这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源博主也收集不少进阶自动化的资源从理论到实战知行合一才能真正的掌握。全套内容已经打包到网盘内容总量接近500个G。如需要软件测试学习资料关注公众号互联网杂货铺后台回复1整理不易给个关注点个赞吧谢谢各位大佬 这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。