没有合适的资源?快使用搜索试试~ 我知道了~
首页python locust源码分析
python locust源码分析
5星 · 超过95%的资源 需积分: 3 43 下载量 11 浏览量
更新于2023-05-22
评论 1
收藏 230KB DOCX 举报
关于locust的源码的分析,感觉写的还是很不错的,希望有兴趣的下载一起学习!
资源详情
资源评论
资源推荐
Locust 源码分析---by 念师
Locust 源码分析---by 念师...... ....... .............. ....... ....... ....... ....... .............. ....... ....... ....... .................. . 1
一、Locust 深度剖析之开篇/索引..................... ....... ....... ....... .............. ....... ....... ....... ................... 1
二、 Locust 深度剖析之 main.py 模块详解... ....... ....... .............. ....... ....... ....... ........................ .. .. .. 4
三、 Locust 深度剖析之 web.py 模块源码剖析................... ....... .............. ....... ....... ....... ....... .... ..13
四、 Locust 深度剖析之 cache.py 模块源码剖析............ .............. ....... ....... ....... ........................20
五、 Locust 深度剖析之 runners.py 模块源码剖析.................... ....... ....... .............. ....................21
六、 Locust 深度剖析之 stats.py 模块源码剖析...................................... ....... ....... .................. .. . 28
七、 Locust 深度剖析之 inspectlocust.py 模块源码剖析.................. ....... ....... .............. ....... .......45
八、 Locust 深度剖析之 clients.py 模块源码剖析.................. ....... ....... ....... ...............................47
九、 Locust 深度剖析之 core.py 模块源码剖析........ ....... .............. ....... ....... ....... ....... .............. ...52
十、 Locust 高并发情况下的性能优化与分布式场景的应用....... ....... ....... .............. ....... ..........58
一、Locust 深度剖析之开篇/索引
是一个用于可扩展的,分布式的,性能测试的,开源的,用 编写框架工具,它非常容易
使用,也非常好学。
它的主要思想就是模拟一群用户将访问你的网站。每个用户的行为由你编写的 代码定义,同时可
以从 界面中实时观察到用户的行为。
完全是事件驱动的,因此在单台机器上能够支持几千并发用户访问。
与其它许多基于事件的应用相比, 并不使用回调,而是使用 ,而 是基于协程的,
可以用同步的方式来编写异步执行的代码。
每个用户实际上运行在自己的 中。
本系列文章将详细的从 的源码到应用进行剖析!
首先,我们将来了解一些 的目录结构吧:
1、目录结构
在讲解 目录结构之前,我们先简单的来了解一下 是如何进行安装的吧。
和大部分的 第三方库一样, 支持使用 包管理器执行进行安装:
1. pipinstalllocust
安装完成后,我们进入第三方库文件夹下,找到 文件夹。
打开该文件夹后, 的源码下载后目录结构如下:
其中, 和 表示的是页面服务的前端代码。( 本身提供了一个简单的 页面
可用启动、停止与监控性能测试)
文件夹包含的是单测代码。
这几个文件相对独立,我们放在最后进行讲解。
文件夹中包含了一些远程协议调用直接的类,主要与分布式运行相关。
分析详情:未完待续,敬请关注。
下面,我们依次讲解下其余每个模块的作用吧:
2、模块描述
模块是整个的入口。
包含了如下功能:命令行参数解析; 文件查找与判断; 文件加载与 服务启动(包
括 端,命令行与分布式等)。
分析详情: !"!#!!!!
$ 模块是一个基于 %& 的一个 '( 服务。
包含的核心功能就是提供了一个 ( 服务的 页面,用在在页面启动、停止与监控性能测试。
分析详情:!#)*#!!!!!!
模块是整个服务的日志管理系统。
分析详情:未完待续,敬请关注。
# 模块对缓存机制进行相关配置,主要用于 ( 中作为装饰器。
分析详情:! #)#!!!!!!
模块包含了两个核心类:+( 和 ,-./,两者分别是对
0( 和 0, 进行封装得到的。
分析详情:$ !! *!!!!!
模块是整个 的核心部分代码,包含了 + 类和 1&( 类等。
分析详情:* $#!!!!!
* 模块包含了一个事件类,主要用于为不同的事件提供 +&。
分析详情:未完待续,敬请关注。
). 模块是异常处理模块,包含了对各种不同异常的继承和处理。
分析详情:未完待续,敬请关注。
模块中包含了三个函数,主要是用于获取打印 & 的状态。
分析详情:$)!! *!!!!!!
! 模块是另一个核心模块,主要控制着性能测试的运行机制。包含了本地运行,分布式运
行等。
分析详情:! )#)#!!!!!$
模块是用于获取当前性能测试过程中数据状态的模块。
分析详情:!!"#)#!!!!!
可以根据 & 链接来详细了解每个模块的功能。
3、功能优化
目前,在使用 的过程中,发现了一些功能还有较大的优化空间:
'没有实现集合点的功能;
解决方案:未完待续,敬请关注。
$'没有事务的概念,时间统计是按照接口统计,与事务无法,无法直接体现出事务的耗时;
解决方案:未完待续,敬请关注。
'对于 , 格式的接口,在 中如果包含参数,那么在性能测试过程中,不同的参数会认为是不同
的 ,没有进行聚合。
解决方案:未完待续,敬请关注。
二、Locust 深度剖析之 main.py 模块详解
在介绍完 的开篇后,我们首先来了解一下 这个 入口文件的功能。
对于 的入口文件,主要包含了如下核心步骤:
(:解析参数,检查所必需的参数是否足够
($:查找文件
(:读取 文件,返回值为2"3'4
(#:根据不同类型的参数构建 5
(:启动测试
下面,我们来依次分析每个步骤的功能实现方式。
1、参数解析
解析参数定义的函数为 parse_options,下面我们来详细分析一下这个函数吧:
1. defparse_options():
2. """
3. 使用 optparse.OptionParser 模块来解析命令行传入的参数。
4. 返回结果为元组:parser,opts,args
5. """
6.
7. #
初始化
8. parser=OptionParser(usage="locust[options][LocustClass[LocustClass2
...]]")
9.
10. #-H
或
--host
参数表示带压测服务的地址
11. parser.add_option(
12. '-H','--host',
13. dest="host",
14. default=None,
15. help="Hosttoloadtestinthefollowingformat:http://
10.21.32.33"
16. )
17.
18. #--web-host
参数表示的是本地
Web
界面服务的地址,默认为
''
。
19. parser.add_option(
20. '--web-host',
21. dest="web_host",
22. default="",
23. help="Hosttobindthewebinterfaceto.Defaultsto''(alli
nterfaces)"
24. )
25.
26. #-P
、
--port
或
--web-port
用于指定本地
Web
界面服务的端口,默认为
8089
。
27. parser.add_option(
28. '-P','--port','--web-port',
剩余58页未读,继续阅读
不过如此1951
- 粉丝: 4749
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1