生成唯一数UUID
============================================================================
无任何实际作用,也不参与脚本运行,可以理解为就是一个分组或者打标签用的。
ForEach控制器在用户自定义变量中读取一系列相关的变量。该控制器下的采样器或控 制器都会被执行一次或多次,每次读取不同的变量值。
所以ForEach总是和(用户定义的变量)一起使用的。
根据给定表达式的值决定是否执行该节点下的子节点,默认使用javascript的语法进行 判断。当满足一定的条件,运行指定的请求。
-
名称:IF逻辑控制器的简述。
-
注释:对逻辑控制器的详细描述。
-
条件:判断条件,可以引用变量。当为 true 时,执行响应的操作。
1、事务控制器会生产一个额外的采样器,用来统计该控制器子结点的所有时间。
2、会生成一个额外的采样器来测量其下测试元素的总体时间。值得注意的是,这个时间包含该控制
器范围内的所有处理时间,而不仅仅是采样器的。
3、统计事务控制器底下的子节点运行的时间
Generate Parent Sample不选中情况下,用表格察看结果显示为[下图]
其中事务采样器采集的数据排在子采样器数据之后,同时各列数据略大于子采样器数据之和。
Generate Parent Sample选中情况下,用表格察看结果显示为[下图]
其中仅显示事务采样器采集的数据,而不会显示子采样器采集的数据。
循环控制器下子节点的次数
“循环控制器"的“循环次数”等于子节点的请求次数。
当"线程组"也存在循环次数时,
请求的次数为"线程组-循环次数” *
“循环控制器-循环次数”的"积”。
控制子节点运行的次数
Per User选项的用处:
勾选:会按照每个线程单独计算吞吐量,如线程组设置了5个线程,循环次数为2的情 况,吞吐量为1时,吞吐量的子节点每个线程执行一次,总共会执行5次。
不勾选:按照全局的执行数次进行计数,如线程组设置了5个线程,循环次数为2的情 况,吞吐量为1时,吞吐量的子节点仅会执行一次。
随机控制器
随机的选择子节点下的请求去运行
随机顺序控制器
子节点下的请求都执行,但是执行的请求是随机的。
例:如果“随机顺序控制器”下的请求有两个、循环5次。那么请求共执行10次,顺序随机。
==============================================================================
可以理解为间隔时间、停留时间、思考时间
规则:
- 1、定时器执行于每一个sampler(HTTP请求) 之前,如有多个sampler(HTTP请求),在同一层级的情况下,作用于多个sampler。
- 2、若定时器作为子节点,则该定时器仅作用于某一个sampler。
设置一个固定的停顿时间,停顿时间过后,才会执行下一步请求。
单位:毫秒
设置循环2次,执行过程中能够明显看到两次,请求之间的时间间隔。
基本同上,只是定时器的延时时间是在指定范围内的正态分布。
类似LoadRunner的集合点,和(rendezvous point)差不多的功能。
在该定时器处,使线程等待,一直到指定的线程个数达到后,再一起释放。可以在瞬间 制造出很大的压力。
同上,延时时间是在指定范围内,并且每个时间取值的概率相同。
固定吞吐量定时器(Constant Throughput Timer)
可以让JMeter以指定数字的吞吐量(即指定TPS,只是这里要求指定每分钟的执行数, 而不是每秒)执行。吞吐量计算的范围可以为指定为当前线程、当前线程组、所有线程 组,并且计算吞吐量的依据可以是最近一次线程的执行时延。
这种定时器在特定的场景下,还是很有用的。
这个定时器,平时用不上。但实际上,它是最强大的,因为可以自己编程实现想要干的 任何事。
有复杂需求时,就要靠它了。例如,希望在每个线程执行完等待一下,或者希望在某个 变量达到指定值的时候等待一下。
===============================================================================
设定一些缺省值、默认值
假如,我们创建一个测试计划有很多个HTTP请求,且都是发送到相同的server,这时 我们只需添加一个 Http request defaults组件(HTTP请求默认值)并设置“Server Name or IP”(服务器名称或IP),然后添加多个HTTP请求且不设置"server name or ip",这些 HTTP请求会默认使用Http request defaults组件(HTTP请求默认值)设置的值。
可以设置成全局变量,也可以设置成局部变量,当在线程外设置,线程内也设置了,使 用线程内的默认值。
使用HTTP信息头管理,可以帮助测试人员设定JMeter发送的HTTP请求头所包含的信 息。HTTP信息头中包含有”User-Agent"、“Pragma"、”Referer"等属性。尽可能放在线程 组一级。除非因为某些原因,测试人员希望不同的HTTP请求使用不同的HTTP信息头。
一般请求格式:
1、类似form表单—不填
2、参数json格式—application/json
3、参数是xml—text/xml
Content-Type
可以理解为一个用户名、密码的验证过程
在与客户端浏览器、服务器之间发生交互发生请求的时候,提供一个凭证。
Cookies是什么
-
储存在用户本地终端上的数据
-
session
-
相对的session是存储在远程服务器上的数据
-
通常情况下,当用户结束浏览器会话时,系统将终止所有的Cookie。当Web服务
器创建了Cookie后,只要在其有效期内,当用户访问同一个Web服务器的时,浏
览器首先要检查本地的Cookies,并将其原样发送给Web服务器
- Cookies 最典型的应用是判断注册用户是否已经登陆网站,用户可能会得到提示,
是否在下一次进入此网站时保留用户信息以便简化登陆手续,这些都是Cookies的
功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同
一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付
款时提取信息。
Cookies的管理
自动管理Cookies
-
在Jmeter配置文件中找到“jmeter.properties”配置文件
-
在文件中搜索“#CookieManager.save.cookies=false”,将“false”改为“true”
并将“#”号去掉,否则不会生效,然后重启Jmeter即可。
手动管理Cookies
-
可以利用firefox中的导出cookies之后,再导入Jmeter中,轻松完成。
-
前提是FireFox浏览器安装好“FirePath”插件,具体安装方法自行百度。
-
通过FireFox的FirePath插件将Cookies导出,再在Jmeter载入即可。
类似于公共的元素公共的值。
前期自己定义好一个变量,后续可以直接引用变量的名称。
使用场景:一组API根据业务流程制作成测试脚本,想要移植到其他测试环境时,由于 数据库发生了变更,有些初始化数据也相应发生了变化,例如环境地址、请求路径等等。 甚至可以把服务器地址和接口的部分共同请求路径都做成了自定义变量。
实例
jmeter的自定义变量可以让我们随机选取变量,从而达到在性能测试过程中可以随机选 取变量的目的。但是在实际使用中发现一个问题,并不试用于所有场景,比如登录
我的自定义变量如图:
在登录表单中的随机变量取值方式为:
运行完后结果为:
可以看到,两个用户有一个登录成功,有一个失败,这是因为在取值时${__RandomFromMultipleVars(user1|user2)}
,用户名是随机取一个,而密码 ${__RandomFromMultipleVars(password1|password2)}
也是随机取一个,而密码与用户名 取的时候是独立的,有可能取到的用户名与密码不匹配,这是只有两个用户,要是用户 多的话可能会导致大量的登录失败。此种情况有两种解决方案,
第一:
不使用${__RandomFromMultipleVars(password1|password2)}
这个方法来取变量, ${__V(user${__threadNum})}
,换为这个方法,这个方法取的时候是第一个用户的 __threadNum
就是1,这样就能取到user1
,密码同理也是取到password1
,这样就能保证密码与用户名完全匹配了。
第二:
不用用户自定义变量,而是从csv文件中读取,在csv中取值是按行从左到右取值的, 把一个用户名密码写在同一行,这样取值的时候也能保证用户名与密码保持一致。
参考链接:https://blog.csdn.net/shuimengzhen/article/details/54410965
做数字记录的功能
----
================================================================================
在Sampler运行后执行。
在测试过程中,经常需要从请求的响应数据汇总,找到某些参数,作为下一个请求的参 数,这时候需要用到后置处理器。
Debug PostProcessor(调试后置处理器)
使用前面的采样属性的详细信息创建了一个子 样例,jmeter变量、属性和系统属性。
结果的值可以在监听器—观察结果树中查看返回值。
-
请求外(out Debug PostProcessor):
-
所有请求对Debug PostProcessor都是上一个请求,可获取当前请求之前所有测试计划、 用户定义的变量、参数化变量、 请求产生的变量数据。但无法获取请求内的前、后置 处理器定义生成的变量;
-
请求内(inner Debug PostProcessor):
-
当前所属请求为其上一个请求,可获取当前线程之前所有测试计划、用户定义的变量、 参数化变量、 请求产生的变量数据,以及当前 请求产生的变量数据。
获取Json格式响应数据的
$.error_code
、 $.result
、$.result.id
比如某一请求的返回值为:
{"statusCode":200,"data":{"userId":"4a2cbe616eb74f0d99190af072c8dea6","token":"37e7a9e198186f5a443e50e6138a5bd20bd"}}
这里因为返回的是json数据,$.data.token
,获取token的值
但是有碰到一个坑
另外一个接口请求返回值为:
{"statusCode":200,"data":[{"code":"407949","id":"aa477ad2085d492a99b877d14343d68d","name":"90一中4545"}]}
同样,使用$.data.id
去提取id的值时,发现获取到的数据为空
原来这个responses
的data为数组,故应为 $.data[0].id
提取第1个值
如下:
备注:
JSON中 data 是一个对象数组,data[0]
代表取的是第一个数组的对象,data[*]
代表取全部对象。
.id
取的是id
的值 .name
取的是name的值。
例如,返回值为:
-
{
-
“status”:0,
-
“data”:
-
{
-
: “resources”:
-
: [
-
: : {
-
: : : “id”:1,
-
: : : “name”:“广告位”
-
: : },
-
: : {
-
: : : “id”:2,
-
: : : “name”:“优惠券”
-
: : },
-
: : {
-
: : : “id”:3,
-
: : : “name”:“实物赞助”
-
: : }
-
: ],
-
: “trades”:
-
: [
-
: : {
-
: : : “id”:546,
-
: : : “tradeName”:“IT/互联网”
-
: : },
-
: : {
-
: : : “id”:547,
-
: : : “tradeName”:“游戏/动漫”
-
: : },
-
: ]
-
}
}
这里要分别取resources 和 trades 的所有id值,表达式可以写:$.data.trades[*].id 。(代表trades下所有子集中的id)
获取XML格式相应数据的
以“Jmeter_webservices.jmx”为例
APPly to:作用范围(返回内容的断言范围)
Main sample and sub-samples:作用于父节点的取样器及对应子节点的取样器
Main sample only:仅作用于父节点的取样器
Sub-samples only:仅作用于子节点的取样器
JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称
XML Parsing Options:要解析的XML参数
Use Tidy:当需要处理的页面是HTML格式时,必须选中该选项;如果是XML或XHTML格式(例如RSS返回),则取消选中;
Quiet表示只显示需要的HTML页面,Report errors表示显示响应报错,Show warnings表示显示警告;
Use Namespaces:如果启用该选项,后续的XML解析器将使用命名空间来分辨;
Validate XML:根据页面元素模式进行检查解析;
Ignore Whitespace:忽略空白内容;
Fetch external DTDs:如果选中该项,外部将使用DTD规则来获取页面内容;
Return entire XPath fragment of text content:返回文本内容的整个XPath片段;
Reference Name:存放提取出的值的参数;
XPath Query:用于提取值的XPath表达式;
Default Value:参数的默认值;
==============================================================================
利用监听器监控执行过程中的数据;如执行次数、响应时间、吞吐量、错误率等等…
在jmeter中,通过监听器组件来提供查看、保存、和读取已保存的测试结果功能。
默认情况下,测试结果将被存储为xml格式的文件,文件的后缀: “.jtl”。另外一种存储 格式为CSV文件,该格式的好处就是效率更高,但存储的信息不如xml格式详细。
查看结果树
使用Jmeter测试过程中使用最多的监听器
可以在测试过程中可以看到请求的参数、响应的结果,方便对测试脚本的结果做出判断
但是在实际项目过程中,不论是接口自动化测试还是性能测试,在真正运行测试脚本的 时候。一般情况下,查看结果树是需要关闭的。
附:一般只运用于调试脚本。
Summary Report
概要报表;概要信息报告
所有数据写入一个文件:保存测试结果到本地。
文件名:指定保存结果。
仅日志错误:仅保存日志中报错的部分。
Successes:保存日志中成功的部分。
Configure:设置结果属性,即保存哪些结果字段到文件。一般保存必要的字段 信息即可,保存的越多,对负载机的IO会产生影响。
Label:取样器/监听器名称 [最好改成业务名称]
Samples :事务数量
Average:平均一个完成一个事务消耗的时间(平均响应时间)
Median:所有响应时间的中间值,也就是 50% 用户的响应时间,大概是这个意思
Min:最小响应时间
Max:最大响应时间
以上单位都是ms
Std.Dev:偏离量/标准差,值越小表示越稳定
Error %:错误事务率
Throughtput:每秒事务数,即tps 吞吐量
Received KB/sec:网络吞吐量;接收和发送的网络流量 单位是KB
Avg.Bytes:平均数据流量,单位是Byte。
聚合报告
Label:请求对应的name属性值。
Samples : 具有相同标号的样本数,总的发出请求数。
Average :请求的平均响应时间。
Median - 50%:50%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第50%的值。
90% Line :90%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第90%的值。
95% Line :95%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第95%的值。
99% Line :99%的样本都没有超过这个时间。这个值是指把所有数据按由小到大将其排列,就是排列在第99%的值。
Min : 最小响应时间。
Max : 最大响应时间。
Error % :本次测试中,有错误请求的百分比。
Throughput : 吞吐量是以每秒/分钟/小时的请求量来度量的。这里表示每秒完成的请求数。
Received KB/sec : 收到的千字节每秒的吞吐量测试。
Sent KB/sec : 发送的千字节每秒的吞吐量测试。
聚合报告中的90%的理解
90% Line :90% of the samples took no more than this time. The remaining samples at leastt as long as this.
一组数由小到大进行排列,找到他的第90%个数(假如是12),那么这个数组中有90% 的数将小于等于12 ,也就是90%用户响应时间不会超过12 秒。
聚合图表(Aggregate Graph)
一般情况下使用不多,出图表的效率与LoadRunner 还是又一定的差距的。
Jmeter的痛点
1、图形监控,相比Loadrunner还是是逊色不少的
2、能监控Windows或Linux吗?就想Loadrunner一样。
扩展插件
-
下载
plugins-manager.jar
并将其放入lib / ext
目录,然后重新启动JMeter
-
我们需要将serverAgent目录下面的文件复制到我们的测试的服务器上,然后点击打
开(我这里是本机,直接在本机上面打开这个应用系统即可,它的默认端口:4444)
- ~下载地址:https://jmeter-plugins.org/wiki/PerfMonAgent/ 该链接地址已经失效~
百度云盘链接:http://pan.baidu.com/s/1skZS0Zb 密码:isu5
其中JMeterPlugins-Standard
和JMeterPlugins-Extras
是客户端的插件,ServerAgent
是服务端的插件。
下载成功后,复制JmeterPlugins-Extras.jar
和JmeterPlugins-Standard.jar
两个文件,放到jmeter
安装文件中的lib/ext
中,重启jmeter
,即可看到该监视器插件。如下图:
将ServerAgent-2.2.1.jar上传到被测服务器,解压,进入目录,Windows环境,双击
ServerAgent.bat启动;linux环境执ServerAgent.sh启动,默认使用4444端口。
如出现如下图所示情况,即表明服务端配置成功:
-
服务端启动校验
-
CMD进入命令框,观察是否有接收到消息,如果有,即表明ServerAgent成功启动。
-
客户端监听测试
-
给测试脚本中添加jp@gc - PerfMon Metrics Collector监听器,然后添加需要监控的服务 器资源选项,启动脚本,即可在该监听器界面看到资源使用的曲线变化。如下图所示:
在脚本启动后,即可从界面看到服务器资源使用的曲线变化,Chart表示主界面显示, Rows表示小界面以及不同资源曲线所代表的颜色,Settings表示设置,可选择自己需要 的配置。
PerfMon Metrics Collector
即服务器性能监控数据采集器。在性能测试过程中,除了监控TPS和TRT,还需要监控 服务器的资源使用情况,比如CPU、memory、I/O等。该插件可以在性能测试中实时监 控服务器的各项资源使用。
使用方法参照上述的 “客户端监听测试”
Response Times Over Time
即TRT:事务响应时间,性能测试中,最重要的两个指标的另外一个。该插件的主要作 用是在测试脚本执行过程中,监控查看响应时间的实时平均值、整体响应时间走向等。
使用方法如上,下载安装配置好插件之后,重启jmeter,添加该监视器,即可实时看到 实时的TRT数值及整体表现。
某次压力测试TRT变化展示图:
Transactions per Second
即TPS:每秒事务数,性能测试中,最重要的2个指标之一。该插件的作用是在测试脚 本执行过程中,监控查看服务器的TPS表现————比如 JU
某次压力测试TPS变化展示图:
Hits per Second
点击率
在做性能测试的时候,不建议添加太多的监听器,在并发量高得情况下
会出现问题,毕竟Jmeter 是需要读取文件的。
在QQ/163邮箱中开启pop3/smtp服务,并生成授权码,备用
在jmeter中添加邮件观察仪,并配置如下
说明信息:
1、文件名:只需要给出路径和保存的文件名称即可,给定之后将会把测试结果的数据写入到文件中
注:它不会将此文件已附件的形式在邮件中,只是将测试结果写入到了定的此目录文件中,如果你运行完脚本,
直接在此路径下打开此文件就可以看到运行结果
2、Address(s):收件人,添加多个收件人邮箱时,中间用逗号隔开,
如:lucky@iberhk.com,bob@iberhk.com
3、Success Limit与Failure Limit:当成功数与失败数为几时进行邮件的发送,我写的1,则失败1次后将发送邮件通知我
4、SMTP的配置见下文
SMTP的配置
重要信息:
HOST:smtp.exmail.qq.com
Port:465
Login:登录的邮箱,填写自己的邮箱即可
Password:16位的授权密码
Connection Security:一定要选SSL
如何获取授权码自行百度。
点击test mail则会在对应邮箱中收到邮件
在测试过程,需要配置success limit failure limit的值
===========================================================================
官方定义:
接口泛指实体把自己提供给外界的一种抽象化物(可以为另一实体),用以由内部操作 分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。
人类与电脑等信息机器或人类与程序之间的接口称为用户界面。电脑等信息机器硬件组 件间的接口叫硬件接口。电脑等信息机器软件组件间的接口叫软件接口。
在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换 可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。
白话文理解:
通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文
做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一过程(request(请
求)→response(响应));
类似我们的黑盒共嗯那个测试,即内部具体结构你不知道,但你需要知道我输入的什么,
之后输出什么才是对的,什么才是错的。这就是白话解释的接口。
HTTP
1、基于HTTP协议,通过post和get得到想要的东西
2、处理数据效率较高
3、当你需要调用一个你本服务的内容的时候,不涉及到跨域的问题,使用HttpService的方式
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。
别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。
我先来介绍一下这些东西怎么用,文末抱走。
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
(4)200多本电子书
这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。
基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。
(5)Python知识点汇总
知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。
(6)其他资料
还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。
这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
thon开发知识点,真正体系化!**
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
[外链图片转存中…(img-lfJ9404J-1712345887273)]
做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。
别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。
我先来介绍一下这些东西怎么用,文末抱走。
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。
(2)Python学习视频
包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。
(3)100多个练手项目
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。
(4)200多本电子书
这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。
基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。
(5)Python知识点汇总
知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。
(6)其他资料
还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。
这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算