开发转测试:从0开始的6年自动化之路...

自动化初识

作为一个测试人,我们或多或少都听过或用过自动化,我们都曾在初入测试行业时,满怀期待的以为测试的尽头是不用测试员点点了,项目一提测,小手点下自动化的开关,瞬间测试的工作就完成了。

这就是我一开始从开发转向测试时最好奇的地方,带着这个好奇心,我激情满满地加入了公司刚成立的自动化组,一探测试到底是如何摆脱手工劳动而完成测试的,一干就是6年。

接下来,把我们的自动化在公司的使用进程一一介绍给大家,希望它能对你有所启发,有所帮助。

自动化启动

我相信每一个搭建起自动化团队的公司,无疑不是想通过自动化来提高工作效率、节省时间、节省人力。

但有一个致命的地方,很多初次起草做自动化的人,他可能根本不了解自动化的本质和特点,仅仅知道“做了自动化就可以像其他公司一样提高效率”,这是我们做了3年自动化之后觉悟出来的道理。

这不是在批评、埋怨谁,我很感谢感激走过那3年,人生每一段路都没有虚度,它让我深刻认识到什么样的做法是可以的什么样是行不通的。

我在这里说出来,只是想后来者可以不用花这么长时间来明白,希望你们在做出决策之前对自动化有更全面的认识。

2016年,领导决定测试部要做自动化,当时我才从开发转到测试没多久,还在做功能测试(体验功能测试阶段),做了一段时间便感觉挺繁琐的,加上自己平常也在查阅相关自动化领域的资料。

所以,当领导说要成立自动化组时,我特别兴奋,决定要加入自动化组,心想终于有真正的机会来尝试自动化这个新玩意了。

虽然我有一些蹩脚的开发功底,但毕竟没有实战过自动化,于是我们从外面招来了一个自动化方向的大牛。

技术大牛就是不一样,仅用2周就搭建起了我们的自动化项目架构,并进行了相关封装抽取。那个时候我真正知道了Selenium、Webdriver、TestNg、Jenkins集成起来的一套自动化系统的工作流程及用法。

写到这里,你大概已经知道,我们实现的是一套UI自动化方案。框架搭建完了,剩下的就开始收集用例、转化脚本了,也是在写脚本的过程中,我慢慢知道了所谓的自动化测试是如何实现自动的。

自动化初期,我们并没有什么经验,我们只知道至少要把公共主流程性的用例给自动化了。

于是,便以我功能测试几个月对业务的了解开始抽取了某一模块这种类型的用例,技术大牛和我分工把这些用例都给转化出来了,这个过程,对于我来说学到了很多,知道了PO模式、数据驱动、元素定位以及里面的一些坑等。

写脚本对于我来说上手很容易,很快我俩就完成了一期自动化用例,然后又把这些用例集成到Jenkins上,至此,自动化就算初步运作起来了。

探索自动化的意义

完成一期脚本转化以后,马不停蹄地开始做二期的脚本开发规划。有很长一段时间,我觉得我们做自动化好像失去了做它的意义,我们完成了脚本开发,为啥不用呢?怎么才能把它用到工作中去呢?

当自己做的东西没有在工作中发挥它的价值的时候,做的人就会逐渐丧失对这份工作的热情,因为他没有得到反馈,他不知道接下来奋斗的目标在哪里。当然,也依然会持续做着一些可有可无的工作。

次年,也就是2017年,领导开始跟我们一起想办法,一开始的办法是跟功能测试人员说,我们哪些模块一些什么样的用例已经实现自动化了,让他们在测试的过程中,如果需要执行那种类型的用例的时候,就去Jenkins上执行。

试运行了一段时间证明,靠自由自愿的方式就别想把工作干好。

大部分人都不选择用自动化,即使他的项目可以用。还有一部分有心用的同学,由于不懂开发相关技术,不会分析出错时的问题,常常需要找自动化开发者去帮忙看,加之,前期UI自动化脚本确实没那么稳定,运行错误的概率又更高了。

那不用自动化的原因就出来了:

1、不感兴趣,觉得手工测测挺好的;

2、想用,奈何自己技术有欠缺,不会分析脚本问题,加大使用难度;

3、想用,但脚本稳定性太差,丧失对自动化的信任度。

相比其他同事,自认为算是一个自动化的狂热者,不太相信自动化不能在工作中发挥作用。心想,一定是你们自己不会用才这样。于是,我申请了做一段时间适合自动化应用模块的测试。

我是怎么做的呢?以下,是一个正常项目测试中自动化应用流程图,直到今天我也依然使用的这个思路。

 按照这样的流程,磕磕绊绊地应用了几个项目。真实的效果是:

1、使用了自动化以后确实发现了一些问题,但分析定位出那是一个bug确实不是肉眼一下就能看出的;

2、效率上看,若考虑投入成本/产出,这谈不上提高了我多少测试效率,但若是一份脚本开发维护,多人使用,那又是不一样的;

3、Jenkins上执行用例并没有那么方便,常常看得头昏眼花。

也只有在我真正参与使用了我们的自动化以后才认识到,咱们这个自动化确实有很多不完美的地方,那我也总算清楚了,下一步也知道调整的方向在哪。

 职业转型的路,到底该怎么走?

我的自动化测试之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,所以,我和朋友特意花了一段时间整理编写了下面的《自动化测试工程师学习路线》,也整理了不少【网盘资源】,需要的朋友可以文末免费获取网盘链接。希望会给你带来帮助和方向。

一、先学习一门编程语言,建议python

二、Python自动化测试框架应用

三、自动化测试篇 - Web UI 自动化

四、自动化测试篇 - 移动端UI 自动化

五、自动化测试篇 - 接口自动化测试

六、自动化测试篇 - 持续集成Git、jenkins、Docker

七、自动化测试篇 - 性能测试LoadRunner、jmeter、app性能

八、自动化测试篇 - WEB安全测试、渗透测试、漏洞扫描

九、自动化测试篇 - RobotFramework、AirTest

10、测试开发篇-自动化测试平台开发

11、互联网高薪测试拓展知识、Redis、MongoDB、Nginx集群实战

上面就是我为大家整理出来的一自动化测试工程师发展方向知识架构体系图。希望大家能照着这个体系在3-4个月完成这样一个体系的构建。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。

送给大家一句话:

让自己变得更强:想一想,如果你想在测试这个行业一直做下去,你的经验和测试技术是远远不够的,你需要进阶,你需要丰富你的技术栈!还等什么!

最后

我从自己开始转型的2010年到真正理解了自动化的2014年,再到一直做自动化,做到转型为devops的现在2017年。这中间真是走了很多弯路,踩了很多坑,接触过各种公司和项目:小到初创企业,大到跨国公司,外资,内资,合资,人力外包,项目外包,电商网站,互联网金融,云计算平台。主要用过四种语言,十几种工具,见过各种历史遗留框架、工具、平台,写过大大小小的类库、工具、改造过平台。虽然我只工作了9年,但换了7次单位,真是说多了都是泪啊。。。

绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

​这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

猜你喜欢

转载自blog.csdn.net/jiangjunsss/article/details/125982938