从写下第1个脚本到年薪30W,我的自动化测试心路历程
我希望我的故事能够激励现在的软件测试人,尤其是还坚持在做“点点点”的测试人。
你可能会有疑问:“我也能做到这一点的可能性有多大?”因此,我会尽量把自己做决定和思考的过程讲得更具体一些,并尽量体现更多细节。
每个测试人的经历都不一样,但我希望我的经历中能让你有所收获。
测试新人
我的软件测试职业开始和大多数最普通的测试人员一样,一开始在一家社交平台的公司做软件测试,公司最开始只我人一位软件测试人员,没有任何流程和规范,但好在工作比较轻松,这就导致我有充足的时间学习各种测试技术和工具。
当你认为工作很闲时,这正是你可以有更多的时间投入学习的时候,但是,学习的内容一定要基于自己的工作来,这样才能把学来的技术变成工作经验。
当时,有一些机会在工作中做性能测试,于是,学会了使用LoadRunner和JMeter,有一次需要测试MySQL数据库的性能,用JMeter搞了半天不知道怎么设置,结果叫一位开发的同事帮我过来很快就搞定了。
这让我认识到开发知识对于测试工作的帮助,编程语言的能力会决定你测试技术的深度。
选择Python
大概在2013年的时候,脚本语言变得越来越流行,我正纠结学习Python还是Ruby,后来,我被分到社区项目的测试工作,公司产品开始选用Python开发的,所以,我毫不犹豫的选择了Python。
如果你不知道学习什么编程语言,那么就根据项目的开发语言来,这也会有助于你对测试的bug的理解。
接着,开始用Python语言和Selenium来尝试做自动化测试。那时,关于Python版的Selenium并不多,在学习的同时我开始发表相关博客。
交流是学习新技术的驱动力,大多数时候我们很难坚持学一个新技术的原因就在于缺少反馈,不管是做内部分享或者是社群交流都是很好的反馈机制。
2014年的时候,由于项目的原因,开始使用Robot Framework测试框架,正因为有Python的基础所以很快就理解了Robot Framework框架的工作原理,并可以根据项目的需要开发系统关键字。
掌握自动化工具的原理使用起来才能更加游刃有余,而这也需要你有一定的编程基础的原因。
2015年随着移动App越来越流行,趁着换工作的间隙,我开始学习了一个月的appium自动化工具,但工作中用不到后来就没在继续了。
后来,我开始针对另一个社区项目编写Web UI自动化测试,前后做了几个月,积累了一些经验,开始尝试设计Web自动化框架,当时主要还是针对Selenium API的封装。
自动化测试
为什么我越来越有更多机会去做自动化相关的工作,当然,是我先学会了这项技能,然后才有,公司项目又比较适合去做自动化,所以,我就尝试去做了,最后,这就变成了我的经验。
但是,没多久我会调到另外一个项目负责接公司口平台的测试,这个项目支撑公司内部不同的业务线,为了更加高效的保证接口的质量,开发设计了一套基于PHPunit的接口自动化项目,因为整个接口平台也是有PHP开发,所以,我开始尝试用PHP编写接口自动化测试。这个自动化项目非常高效的保证了接口平台的稳定性,我持续维护了两年。
测试有时候必须跟着项目发展自己的技术,但也正是之前的编程基础和自动化的经验的积累,所以,才会很快的上手接口自动化项目。
2018年我开始做全栈工程师,和团队一起从零开发内部管理平台,后端用Django框架设计接口,前端用vue.js框架设计页面,项目已经在整个公司得到应用。
这个阶段跨度有点大,但应了我前面的一些思路,当你掌握的更多的技术,那么你也会有更多的机会继续提升自己。
你也在往自动化方向发展吗?
在适当的年龄,选择适当的岗位,尽量发挥好自己的优势。
我的自动化测试之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,所以,我和朋友花了一段时间整理编写了下面的软件测试工程师发展规划路线,会给你带来帮助和方向:
《软件测试工程师发展全栈路线》
一、测试基础
了解测试的基础技能,掌握主流缺陷管理工具的使用,熟练测试环境的操作与运维
小码哥说测试 | 测试基础 |
---|---|
测试计划/测试用例 | 黑盒用例设计等价类/边界值/场景分析/判定表/因果图分析/错误推断 |
缺陷 | 缺陷生命周期/缺陷分级/缺陷管理工具禅道/Jira |
数据库 | Mysql/环境搭建/增删改查/关联查询/存储过程 |
Linux | 系统搭建/基本指令/日志分析/环境搭建 |
二、Linux必备知识
Linux作为现在最流行的软件环境系统,一定需要掌握,目前的招聘要求都需要有Linux能力。
小码哥说测试 | Linux必备知识 |
---|---|
Linux系统简介与准备 | Linux作为现在最流行的软件环境系统,一定得会,从CenterOS版本系统进行介绍,安装,目录结构等基础内容学起,也为后续自建测试环境准备。 |
Linux远程工具Xshell | 详细介绍如何入门使用Linux,并进行常规的远程管理,文件传输操作,涉及其中的工具Xshell,Xftp |
Linux文件属性与管理 | Linux文件,目录基本属性,文件操作,文件管理,目录操作,目录管理。切忌自毁行为操作,如何预防意外操作 |
Linux用户与组管理 | 如何在Linux中新增,删除,修改用户与组,并赋予相应权限,不再因为权限问题而卡壳 |
Linux文件编辑器 | Linux文件编辑器vi的使用,命令模式,输入模式,操作实例,快捷键,管道命令,使用心得。在一个没有图形化的系统下到底如何编辑的呢? |
Linux常用系统设置 | 网络设置,环境变量,磁盘管理,时间设置,系统资源,防火墙,应有尽有,不用担心毫无头绪。 |
Linux安装软件 | Linux安装命令,以及如何通过tar,gz等网络上下载的安装文件进行安装,如MySQL数据库安装。 |
Linux Docker容器 | Docker容器技术讲解,image镜像管理,仓库,容器创建,启动,操作,镜像打包,赶上行业流行技术 |
三、Shell脚本
掌握Shell脚本:包括Shell基础与运用、Shell逻辑控制、Shell逻辑函数
小码哥说测试 | Shell |
---|---|
Linux Shell基础与应用 | shell脚本编程介绍,环境类型,变量,参数,运算符,数组的使用,零距离接触脚本 |
Linux Shell逻辑控制 | shell逻辑应用,test命令,流程控制,数据输入与输出,脚本逻辑不再单调,玩出花样 |
Linux Shell函数 | shell脚本函数写法,文件互相调用,脚本实战应用,懂得开发,测试,运维都可以做什么 |
Windows脚本批处理 | Linux玩够了,再来看看Windows常规命令用法,批处理脚本写法,实战应用,并不是到哪都是Linux,Windows脚本也是常用脚本之一,看到这里可能你就用的Windows |
四、互联网程序原理
自动化必经之路:前端开发基础知识以及互联网网络必备知识四、互联网程序原理
小码哥说测试 | 互联网程序原理 |
---|---|
Web前端开发基础 | HTML、CSS基本内容学习。为什么测试课程有开发?对不起,如果不会,自动化可能不欢迎,很多自动化测试问题都出自于开发基础 |
Web前端开发脚本 | JavaScript最主流的脚本学习,同样的,这也会在自动化测试中涉及,在一些工具中其实也经常用到动态脚本,也是JavaScript语言 |
开发者调试工具测试应用 | 虽然浏览器的F12被命名为开发者工具,但实际上测试不管在功能测试还是自动化测试中,都起到了很关键的作用。如解析HTML,定位元素,调试脚本,监控网络抓包等等 |
互联网程序网络架构 | 通过网络架构详细理解互联网程序的诞生,逻辑细节,互联网通讯原理又是如何将数据传递到其他计算机的,TCP,UCP,HTTP,等等协议的关系又是什么。 |
HTTP协议数据结构分析 | 完整解析HTTP协议数据结构,包括Request、Response数据格式,Header的定义和用法各种状态代表什么,如何辨别错误。分析协议中参数的位置,rest结构,各种常见的body数据形式,解析方式,常见数据解析错误的原因。 |
Cookie与Session机制 | 解读Cookie到底是什么,和Session存在什么样的关系,如何测试Cookie与Session,需要注意什么 |
五、MySQL数据库
软件测试工程师必备MySQL数据库知识,不仅仅停留在基本的“增删改查”。
小码哥说测试 | MySQL数据库 |
---|---|
MySQL数据库测试应用 | MySQL环境搭建,客户端Navicat的基本使用与数据操作,学习并巩固基本的SQL语法,增删改查缺一不可,掌握各种条件的使用方法 |
MySQL高级查询 | 查询升级,掌握多表查询,子查询,查询分组,统计函数的使用,并对经典面试题进行学习与分析 |
MySQL自定义函数 | 既然有内置函数,当然也不缺自定义函数的位置,也是经常会使用到的,这就好比任意一种开发语言一样都离不开函数的定义与使用 |
MySQL存储过程SP | 数据库必不可少的存储过程,通常也叫SP,如何定义?如何测试?怎么样使用更安全,测试到底用存储过程还能做什么更多便于测试的内容 |
MySQL事物与编程 | 数据库事务使用案例,索引的原理与使用,数据库SQL编程在测试中的应用,如何用其快速精准的产生大量指定的测试数据 |
六、抓包工具
Fiddler,Wireshark,Sniffer,Tcpdump各种抓包工具适用于各种项目,总有一款适合你的
小码哥说测试 | 抓包工具 |
---|---|
抓包原理与方式 | 只有了解抓包的原理,才能真正去用好一个适合的工具,选择合适的方向和方法,否则都是徒劳的 |
抓包工具选择 | 抓包工具的分类与功效,什么样的项目适合哪种工具,如何去辨别工具的优势 |
Fiddler基础功能 | 作为专业的HTTP体系的抓包工具,详细介绍其工具原理,如何过滤数据,如何搜索想要的数据,如何对web,非web,手机,HTTPS协议等各种环境进行抓包 |
Fiddler高级功能 | 学会使用其进行接口测试,断电,脚本等方式进行数据的修改,替换,模拟数据进行接口Mock测试,创建自己定义的菜单功能 |
Wireshark | 与其说是抓包,更是一种抓包后的分析工具,在各个系统下利用其它与系统一体化的抓包工具进行数据抓取整理并展示,有着强大的过滤和分析功能 |
Sniffer | 黑科技抓包工具,有多种版本,非常专业的抓包工具 |
Tcpdump | Linux、Android系列的系统中的抓包插件神器 |
七、接口测试工具
接口测试神器,你绕不开的强大工具:Jmeter。小巧灵活:Postman
小码哥说测试 | 接口测试工具 |
---|---|
Jmeter接口测试入门 | Jmeter简介,环境准备,目录结构介绍 ,如何录制脚本,以及基础组件的使用,线程、作用域、HTTP请求、定时器、断言等等 |
Jmeter接口测试进阶使用 | Jmeter逻辑控制、前置处理器、后置处理器、监视器、结果树,如何参数化、正则表达式关联、事务、检查点等等。并带领大家对带有token等动态数据的项目进行实战演练 |
Jmeter接口测试高级功能 | Jmeter脚本思考时间、随机时间、线程启动间隔、并发集合点、联机远程调用,webservice、websocket、jdbc、命令调用等等 |
Postman接口测试工具使用 | 行业标准HTTP、rest接口测试神器,基本请求、分组保存、动态变量、脚本、数据关联、参数化、自动断言、批量运行、持续集成。思路类似其他接口工具,避免泛滥学习 |
八、Web自动化测试Java&Python
了解自动化的目的,熟练掌握TestNG&unittest自动化框架,以及断言与日志处理
小码哥说测试 | Web自动化测试Java&Python |
---|---|
自动化框架思路引导 | 我们做自动化到底为了什么?节省人力、加快速度、还是让机器代替手动、还是提升自我。应该如何建立思路,而非无脑进坑任机器摆布 |
Java&Python3开发环境及基本语法 | Java&Python开发环境搭建,基础语法入门,让不会代码的以最快速度入门,方便适应后续自动化测试开发内容学习,代码够用即可,并不是学得越多越好 |
Java&Python3集合类型与面向对象开发 | Java&Python各种基本类型、集合数据类型的理解与操作,循环语句、判断语句,面向对象的开发,函数的使用,类的使用 |
Selenium3环境与浏览器驱动配置 | 基于selenium3的web自动化环境搭建,正确的浏览器配置,不再为起不了浏览器而烦恼。支持IE、Firefox、Chrome等等 |
Selenium3多种定位及动态操作 | selenium3常见定位方法,属性和值的获取,如何动态判断不一定存在的元素,复杂的网页结构,需要多步骤操作的元素等等 |
特殊情况处理(js、特殊控件等) | selenium3自动化测试中,常见的特殊情况处理,如日期、控件、智能等待、文件上传下载、网页嵌套结构,各种弹窗的处理方式,cookie处理,JavaScript脚本调用等 |
TestNG&unittest自动化框架使用 | Python unittest、Java TestNG自动化框架的使用,环境处理、基本使用逻辑,数据驱动模型,数据库数据载入等 |
自动化框架断言与日志处理 | 自动化中最重要的是什么?作为测试当然是断言,没有断言的自动化毫无用处,如何展示日志与结果是自动化测试的根本 |
PageObject框架设计模式 | PageObject框架设计模式,到底是做什么的?如何更好的快速管理控件,从此做起 |
九、接口与移动端自动化
专业接口调用、测试解决方案。组建完整的web和接口自动化框架,Appium整体使用
小码哥说测试 | 接口与移动端自动化 |
---|---|
接口自动化方案Requests | Python Requests、Java HTTPclient接口框架,都是专业的接口调用、测试的解决方案,使用简单快速,结合工具的使用方式和功能,快速上手并对其操作,解决其中的疑难杂症 |
web+自动化框架整合 | 自动化测试是相通的,如何将web与接口、甚至更多的测试类型和方向结合起来,组成完整的自动化框架 |
Appium环境搭建 | Appium环境相对复杂,针对Android系统进行完整的环境搭建演练,解决环境上的问题,并进行基本的自动化操作 |
Appium自动化实战与框架结合 | Appium整体使用与web自动化类似,引导使用典型功能,并针对一款APP进行实战操作 |
十、敏捷测试&TestOps构建
揭开TestOps的神秘面纱,持续集成Jenkins框架烂熟于心
小码哥说测试 | 敏捷测试&TestOps构建 |
---|---|
构建敏捷测试运维架构体系 | 敏捷测试是什么?为什么需要敏捷,行业都提到的devops又是什么?TestOps能做什么 |
持续集成Jenkins框架实战 | 持续集成最常见的一套框架,介绍Jenkins操作、权限、系统管理等,常用构建与运行实例讲解 |
静态扫描测试Sonar | 一款自动化的代码扫描工具,便捷式快速扫描代码中的问题,做到提前发现,统一规范,自动化中的代码测试神器 |
十一、性能测试&安全测试
软件测试的彼岸:性能测试和安全测试,选个方向努力爬坑吧!
小码哥说测试 | 性能测试&安全测试 |
---|---|
性能测试学习路线 | 如何学习性能测试,性能测试到底该怎么学习,使用什么工具?工具并不代表性能,接口的基础对性能测试非常重要,而工具只是辅助,更多的是思路和策略。你不会并不是分析而是准备阶段 |
loadrunner脱离浏览器录制专题 | IE无法启动被测网站?打不开浏览器?程序无法在浏览器中被打开?这些都没关系,还是一样能录制,但录制是偷懒专用的,对于学习有一定的辅助作用,也会带入无法脱离的坑 |
性能测试工具操作实践 | loadrunner、jmeter,有了前面的基础使用,看懂脚本不是问题,带上关键的参数化、动态数据关联、事物、日志,大部分的脚本都可以搞定进行实践 |
系统监控方案实施 | 工具自带监控?系统监控?JVM内部监控?数据库监控?各种监控的意义何在,如何在各种情况下精准监控数据 |
安全测试起源与工具介绍 | 应该如何进行安全测试,安全测试都有哪些分类?都会用到什么样的工具,各自的作用又是什么,如web漏洞扫描,端口扫描,系统扫描等 |
web安全测试手工实战 | 接口测试在安全中的作用,不会手动的安全测试,那就永远无法理解自动化以后产出的结果 |
安全扫描工具测试实践 | 实际介绍以及使用APPscan、awvs等专业安全扫描工具 |
企业安全建设(SDLC) | 企业应该如何进行安全建设,制定更安全的软件生命周期。从哪些方面进行着手 |
学习资源分享
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】
这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享~
相关文章:

从写下第1个脚本到年薪30W,我的自动化测试心路历程
我希望我的故事能够激励现在的软件测试人,尤其是还坚持在做“点点点”的测试人。 你可能会有疑问:“我也能做到这一点的可能性有多大?”因此,我会尽量把自己做决定和思考的过程讲得更具体一些,并尽量体现更多细节。 …...

JAVA八股、JAVA面经
还有三天面一个JAVA软件开发岗,之前完全没学过JAVA,整理一些面经...... 大佬整理的:Java面试必备八股文_-半度的博客-CSDN博客 另JAVA学习资料:Java | CS-Notes Java 基础Java 容器Java 并发Java 虚拟机Java IO目录 int和Inte…...

GAN系列基础知识
原始值函数 原始GAN的值函数是 minGmaxDV(D,G)Ex∼pdata(x)[logD(x)]Ez∼pz(z)[log(1−D(G(z)))]min_Gmax_DV(D,G) E_{x \sim p_{data}(x)}[logD(x)]E_{z \sim p_{z}(z)} [log(1-D(G(z)))]minGmaxDV(D,G)Ex∼pdata(x)[logD(x)]Ez∼pz(z)[log(1−D(G(z)))] 其中Ex…...

Linux/CenterOS 7.9配置汉化gitlab服务器
1.安装gitlab的依赖项 yum install -y curl openssh-server openssh-clients postfix cronie policycoreutils-python2.启动postfix,并设置为开机启动 systemctl start postfixsystemctl enable postfix3.防火墙和selinux的设置 setenforce 0systemctl stop fire…...

山洪灾害监测预警平台 山洪灾害监测预警系统解决方案 以人为本 科学防御
平升电子山洪灾害监测预警平台 山洪灾害监测预警系统解决方案,集信息采集、传输、分析和预警等功能于一体,实现预警信息及时、准确地上传下达,提升监测预警能力,使可能受灾区域能够及时采取措施,最大程度减少人员伤亡和…...

The Number Of ThreadPoolExecutor
序言整理下Java 线程池中线程数量如何设置的依据巨人肩膀:https://blog.csdn.net/weilaizhixing007/article/details/125955693https://blog.csdn.net/yuyan_jia/article/details/120298564#:~:text%E4%B8%80%E4%B8%AA%E7%BA%BF%E7%A8%8B%E6%B1%A0%E5%A4%84%E7%90%86%E8%AE%A1,…...

Linux(Linux各目录结构详解)
我们知道Linux系统是一个文件系统,它的文件系统就类似windows系统下的磁盘文件系统。 我们连接上一台linux系统的服务器。 输入命令 : ls / 我们可以看到 linux系统的根目录下有这些目录 bin boot data dev etc hbr home lib lib64 lostfoun…...

UART通讯简介
UART全称Universal AsynchronousReceiver/Transmitter,通用异步收发传输器。 一、工作原理 和其它串口一样,数据按照二进制从低位到高位一位一位的传输,能将要传输的数据在串行通信与并行通信之间加以转换,能够灵活地与外部设备进…...

80 90后表示真干不过,部门新来的00后已经把我卷奔溃了,不想干了····
都说00后躺平了,但是有一说一,该卷的还是卷。这不,刚开年我们公司来了个00后,工作没两年,跳槽到我们公司起薪18K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 …...
Python中2.x 与 3.x 版本区别?
Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下相容。 许多针对早期 Python 版本设计的程式都无法在 P…...
性能指南笔记一
全面的性能 1.好处和效率之间的权衡在增加程序特性的过程 2.数据库永远是瓶颈,分布式系统的整体性能问题 我们当前的性能处于什么百分位? 是不是整体的性能属于下降的? 一开始就考虑可能性很小的性能问题? 3.吞吐量测试 TPS 每秒…...
es数据导入导出
使用elasticdump导入导出数据 一、安装elasticdump 终端中输入 1 npm install elasticdump -g -g表示全局可用,直接在终端输入 elasticdump --version,出现版本信息即表示安装成功,如下 1 2 C:\Users\T470s>elasticdump --version 6.3.3 …...
Python3入门教程||Python3 字符串||Python3 列表
Python3 字符串字符串(string,简写为str)是 Python 中最常用的数据类型之一。我们可以使用引号( 或 " )来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:var1 Hello World!var2 "W3Cscho…...
API 的安全性
大家好。今天聊一个很重要但是大部分人不重视的API安全问题。api固有的范围和风险意味着它们需要一种不同的安全方法。应用程序编程接口(api)是现代应用程序的构建模块,它们的使用正在以惊人的速度增长。然而,随着使用的增加,风险也会增加。。…...
Linux驱动->设备树
1.定义 设备树(device tree是描述硬件信息的一种树形结构,设备书文件在linux内核启动后被内核解析。描述一个硬件设备信息的节点我们叫做设备节点,一个设备节点内部包含当前硬件的多个不同属性,相同节点不同 2.设备树的文件格式…...

一天一道力扣题
232. 用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek()…...

算法leetcode|36. 有效的数独(rust重拳出击)
文章目录36. 有效的数独:样例 1:样例 2:提示:分析:题解:rustgoccpythonjava36. 有效的数独: 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效…...

都说爱有回音,这次情人节驱动人生宠你!
来了来了,它又来了——那个一波人狂欢,一波人孤单的节日。 眼看着身边人在订花订餐厅,选礼物,空气中弥漫着微妙的氛围,驱动哥脑海里只有明天下班的地铁挤不挤得过这群约会的人。 不过根据哥的观察,发现一个…...
npm安装依赖报错 npm code ERESOLVEnpm ERESOLVE unable to resolve dependency tree
在安装npm i vue-router (路由)时出现了这个错误。 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: vue_test@0.1.0 npm ERR! Found: vue@2.6.14 npm ERR! node_modules/vue npm ERR! vue@"^2.6.…...

【项目设计】—— 基于Boost库的搜索引擎
目录 前言 一、项目的相关背景 1. 什么是Boost库 2. 什么是搜索引擎 3. 为什么要做Boost搜索引擎 二、搜索引擎的宏观原理 三、搜索引擎技术栈和项目环境 四、正排索引 VS 倒排索引 —— 搜索引擎的具体原理 1. 正排索引(forword index) 2. 倒…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...