记得当初刚刚入职测试员时,我是属于那种非常勤劳又努力的员工,作为新人一想得到领导的赏识,二想能很快的上手工作内容,所以不敢浪费一分一秒,甚至吃饭上厕所都要拿着手机学业务。
所以在有一个比较长的阶段,几乎我每天都是团队里最早到公司,又最晚下班的一个。虽然累,但是心里还算比较踏实,至少在工作中我已经算对得起自己了…
而组内同事刘工,一般情况下都是准时上下班的,即使项目进度比较紧急,他也很少加班,除非是有特殊情况,他才加班,但是也会很快的完成任务。
要是按勤奋程度和工作时间长短来衡量,我想我比刘工积极多了。按理说,我这么积极,工作量应该比刘工多才对,其实不然,领导安排给我的工作任务和张工的任务相比,我比他还要少…
刘工之前是做外包测试的,后来去了字节自动化测试,积累了足够知识和自学后,就转岗测试开发,那时他就是一位多能手,项目安排他做什么他就能做什么,工资也是一年比一年高。1年内也涨薪了2次,很多人都由内而外的夸奖
从他提交的代码看,他的代码不仅规范而且很优雅,大的不说,就他能对一些基本控件进行封装处理,还做了拓展,方便给其他开发人员调用,就已经很让我敬佩不已了。
而我所谓的工作时间长,其实大多时间是在重复地造轮子,一个相同的功能重复做,不仅没有做封装处理,导致冗余代码还多,抱着好学和求学的态度,当时就申请和他做一个项目,把自己的项目整理出一个测试框架去学selenium,网站的架构,代码知识,知识,网络瓶颈,系统优化,优化脚本,去设计场景,去获取目标用户量,去执行,去分析压力结果。在长时间的一起工作中,从他那里学到了不少,也能更有效率的解决问题,果然,一次比一次的加班时间少…
我结合自己的经历,做了一些总结和学习方法,希望能对大家有所帮助。
学习路线:测试工具使用->Python编程->测试框架->测试框架开发
首先是测试工具的使用,比如说我要去进行web自动化是不是我要去进行自动化测试环境搭建,环境工具。比如说去安装Python安装,这些环境安装。
至于AppUI自动化,除了上面的一些技能还要会比如说adb的命令,app的环境,app的压力测试之类的。
接口测试其实也是一种功能测试,但是它并不等于功能测试,因为对于接口测试的话也分为1.接口功能测试(需要借助工具进行测试);2.接口压力测试;3.接口安全性测试。而且接口的功能测试是需要借助工具来完成,工具的话就有比如:Postman、Jmeter;抓包的工具fiddler等。
编程语言的能力会决定你测试技术的深度,我当时学的是Python语言,了解编程的都知道Python对新人比较友好,相比其他编程语言来说会比较简单。
在网上找了很多的学习资料和学习视频,但是学起来就会遇到很多问题,没有人能帮我解答,还有很多编程的相关知识,也不太懂,自己一个人学起来很费劲的。容易从入门到放弃。
所以也是到处去找那种软件测试的学习社区,有幸遇到了一位测试行业的技术大佬,进到了一个很不错的学习交流群内,里面有很多人都和我一样想要提升,所以都在一起学习,有什么问题都会在群里相互讨论、技术交流,这也极大的提高了学习效率。
Python是软件测试进阶的第一步,我们需要掌握Python编程语法,具有一定的编码能力,为基础自动化测试做准备,其次还要掌握Python在自动化中的应用、掌握代码的函数封装、类封装的技能。
我们还要懂测试框架,Selenium,appium,unittest,pytest,这都是一些开源的框架你至少要懂中间的一到两个。
比如说做WebUI自动化的话,我要懂Selenium+python;做AppUI自动化的话,我要懂appium+python。
如果是进行接口测试的话肯定也是需要去做一个接口的框架,比如:requests。
一般一个框架的诞生过程会经过三个阶段:
1.学会使用
大致了解框架的使用,可以去看框架的官方文档,一般里面都有详细的介绍,安装之后便可以开始尝试直接拿它来做项目。
2.阅读源码
想要提升自己的能力、达到进阶的效果,当然不能只局限于框架的使用层面上。需要自己多花几周甚至几个月的时间去阅读框架的源码,这样有助于框架使用过程的各种问题的处理和排查。
3.自研框架
自研框架的要求就比较高,一般都是企业对性能有极高的要求,所有的开源或商业的框架都无法满足公司需求才会走上自研的道路。我们可以尝试分析整个框架性能瓶颈,用更高性能的语言替换关键模块,或用寻找、研究更好的算法去实现关键功能。
根据这个学习架构路线,不断地去摸索与提升,突破技术的瓶颈,可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。我也是走过这样一段路,才能获得更多高薪职位的机会,付出终有回报,也算是对我能力的一种认可吧,真正的证明了自己的价值。至少税后30+的薪水是我当前状态下比较满意的。
如果说你在自动化测试工程师阶段还想往性能测试方面去进行发展,要求就会更多了,其实性能也是一种自动化。所以第一个你也必须要掌握一门编程语言,第二个语言脚本,第三个指标,第四个调优。
最后也为大家准备了一份配套的自动化学习资源,你可以在公众号:豆子熊,获取上方网盘资源完整版及自动化资源详细解析。
以及一份216页软件测试工程师面试宝典文档资料。相对应的视频学习教程免费分享!,其中资料包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
祝大家都能拿到心动的offer~~