一些碎碎念
什么都做了,和什么都没做其实是一样的,走出“瞎忙活”的安乐窝,才是避开弯路的最佳路径。希望我的经历能帮助到有需要的朋友。
在测试行业已经混了5个年头了,以前经常听到开发对我说,天天的点点点有意思没?
我的职业生涯开始和大多数测试人一样,开始接触都是纯功能界面测试,第一份测试工作就是在电商公司做功能测试,工作忙忙碌碌,每天在各种业务需求学习和点点中度过,过了好几年发现自己还只是一个功能测试工程师,看着身边人一个个的在技术的道路上越走越远,而自己只会功能测试,焦虑感也油然而生,这一份工作给我的总体感受是大量的写测试用例,自己写测试用例的能力熟练了不少,测试技能倒是没有多大的提高,真正需要技术的工作却因为技术能力的不够而没有机会,几度怀疑自己的职业规划方向是否正确了,是不是应该离开了?这个压力也导致我心里一直有个声音:要不要辞职?
不得已开始思考怎么去改变现状,当时最简单的想法是挤出时间去学习各种测试技术,然后需要掌握一些常用测试工具来辅助测试,提高自己的价值,也就是核心竞争力。在找资源的时候偶然认识到开发知识对于测试工作的帮助,编程语言的能力会决定你测试技术的深度。当然也能带来收入的高度。
于是我开始学习python,那时候正是脚本语言开始流行起来,因为当时项目的原因,开始用Python和Selenium尝试做自动化测试。那个时候,关于Python版的Selenium并不多,在学习的同时我开始发表相关博客。而且我觉得python来做自动化和对于编程基础比较薄弱的测试工程师来说特别的合适,python还能用来爬虫,用python还能写一些定时脚本,数据库脚本,效率非常高。
怀着这份野心,先是花小半年时间学习了UI自动化,需要学的内容有很多。学习过程中所有的知识都是零散的,想要组合起来对一个小白来说确实不容易。有了UI自动化学习经验,学习接口自动化基本没有费什么功夫。
UI自动化,接口自动化学完了,因为工作需要又去学了性能,后来发现性能真的是个无底洞,需要了解开发知识、服务器架构、操作系统、测试监控工具、容器知识等等。知识面太广,现在还在苦苦挣扎。在性能测试过程中,也去学了一些开发知识,之前做UI/接口自动化或者功能测试时只能从黑盒/灰盒层面去判断BUG原因,学了开发知识后,大概就知道这个bug是如何产生了。
当时由于公司的规模和产品的局限性,导致自动化测试始终未能应用到公司实战项目中。我觉得外面的大公司有更多机会,现在自动化已经流行而且越来越普及,我想要突破自己的测试技术瓶颈,专职做自动化,偶然机会下朋友推荐我去字节做测试开发,负责开发公司定制化的测试质量平台。
这对于我来说又是一个挑战,新的领域,测试开发在一线城市非常吃香。当时的待遇比初、中级开发工程师要高。
到岗后就是顶住压力,不断的学习测试开发技能,而且学以致用。技术架构采用的是前后端分享,包括Python的后端开发框架Flask,前端框架vue,elementUI组件等,这对我自己的测试生涯也算是有了一个提高。薪资方面也有了一个大的突破!(突然发现,自己还是涉足挺广)。下定决心的事情一定能做成!
没有努力过就不要说测试这个行业没前途,作为一个过来人,对学习过程中的困难深有体会。
如果你也在往自动化测试开发方向发展,在适当的年龄,选择适当的岗位,将自己的优势都发挥出来!
自动化测试学习建议
1、多样化练习
完全按照视频里的操作方法,用视频里的网站,按部就班的写代码,效果不大,并不是说没有必要。因为课程里所使用的网站都是老师“精心挑选”的,主要针对某个模块某个知识点而来的,用来做例子的功能也是最简单,主要目的是让学员明白当前所讲的知识点。
但是在实际应用的过程中肯定会比这复杂。所以建议在按照视频里的例子练习完成后,多拿一些常用的网站或者工作中正在使用的网站多做练习,这样我们往往会获取到一些课程里没有的知识。
一开始不会没关系,就是照着现有脚本抄也要练习,因为只有练习才能熟能生巧。
2、虚心学习不自以为是
因为我之前是有代码基础的,所以在第一次学习的过程中将所有代码相关的课程都跳过了,所以导致了知识的断层。第二次学习的过程中,是将课程从头到尾的完整的看了一遍并进行了实际操作,才发现,之前被我跳过的内容隐藏了一些我从前并不知道的知识点。
3、有始有终
第一次学习时,学习完脚本录制之后,就停止学习了,并没有继续学习后续的内容。
第二次学习后发现,用录制的方式写脚本是很low的,很有局限性,并不能满足所有的需求,后来用WebDriver和UnitTest才是真正的高级,解决脚本录制不能解决的问题。
4、应用到日常的工作中
我们学习完自动化之后,不要学习完就行了,而要积极的将其应用到我们日常的工作中,如果放着不用,一段时间之后我们学习到的知识都会慢慢遗忘。将其应用到工作中后,不仅能对技术进行不断练习、优化、升级,还能提高工作效率,何乐而不为呢?
这是我自学自动化的历程,走了不少弯路,也没有专人的指导,只能靠自己去摸索,希望我自己犯的错误能让大家引以为戒。
5、全面了解,选好切入点
目前自动化测试方向大概有以下几个:
辅助测试脚本方向:以Shell,Python为主来简化重复的工作,过滤日志等;
接口自动化测试方向:Python+Unittest+HtmlTestRuner+Jenkins和Java+Httpclient+TestNG+Jenkins,当然还有很多其他二次开发的框架或工具,不过核心是一样的;
页面自动化方向,主要有Python+Webdrver+HtmlTestRunner+Jenkins,Java+Webdriver+TestNG+Jenkins,以及其他的框架和工具;
App自动化测试方向:以Robotium+Java+TestNG+Jenkins,
Appium+Java+TestNG+Jenkins,Appium+Python+HtmlTestRunner为主。
当然这里介绍的都是简单的,最基本的实现方案,作为入门学习比较合适。其他五花八门的二次开发的框架,包含众多功能的方案留待你以后提升。先从这几方面了解入手,选择一个语言体系,建议从接口自动化入后,然后再去学习页面和app。
自动化测试学习路线图
如果说你在自动化测试工程师阶段还想往性能测试方面去进行发展,要求就会更多了,其实性能也是一种自动化。所以第一个你也必须要掌握一门编程语言,第二个语言脚本,第三个指标,第四个调优。
以上~最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于做软件测试的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
祝大家都能拿到心动的offer~~