有头发且有趣的码农万里挑一~
53
有料叔 | 一位有故事的程序猿
功能测试工程师的呐喊
在职场面试过程中,经常会遇到一个问题:你对自己的职业生涯有什么规划?在我们的简历里面,一般也会写上“未来/职业规划是什么?
从毕业至今为止,这个问题的答案一直是:在实际环境中实践学习的知识,提高测试技巧和效率,在技术之后学习管理技巧,从一个底层的测试成长到专业项目管理人员。
从毕业到现在5年多的时间,个人简历修改了N遍,但是“职业规划”这一栏的内容就一直没变化过。而关于所谓的技术,自己也是在持续学习中。
个人截止至今的职业生涯,可以划分为以下三个阶段:
从上图中可以看到,每个阶段不管是测试技巧还是测试理论上,都有一定程度的提升,这也是个人觉得我能拿到比别人稍微高点的工资的主要原因:保持学习,持续进步。
在自己还是纯功能测试的时候,我就想学习自动化,在做功能测试时,持续了大概有2年左右的学习,都在门槛上挣扎,没有系统性的学习,没有可实践的环境。
自我学习一直停留在:元素定位?启动浏览器/app?看到别人刷刷写代码自动化时,除了眼睁睁的羡慕之外,觉得自己自学的跟没学一样~~不知从何下手。
相信很多功能测试工程师,都梦想着成为自动化测试工程师/测试开发工程师,时刻呐喊着:我要学习,我要转自动化/测开,然而一直在踌躇不知如何入手。
如何从功能转自动化测试?
选择适合自己的自动化框架
市面上有很多自动化,例如:selenium、appium、robotframework、airtest等等五花八门的。从学习者的自身能力上来划分,可以化为两类:1、代码能力强的;2、代码能力较弱的。
代码能力较强的,可以直接选择脚本语言来写自动化脚本,全程代码实现自动化测试。
代码能力较弱的,可以选择半代码的自动化测试工具,例如常见的robotframework、airtest等。
个人选择了RobotFramework,使用关键字驱动的一种自动化测试框架,可以根据不同的library来实现接口、APP、web自动化。
RF自动化学习过程:
1、掌握基础:
参考书籍:RobotFramework自动化测试修炼宝典(或者百度基础教程也可以)
掌握基础关键字:定义变量/列表/字典、自动化核心关键字库(接口自动化-requestlibrary、web自动化-selenium2library等)
掌握断言关键字:run keyword if等
日志:log/log many
2、脚本升级
定义变量:全局变量
用户关键字:代码封装
3、日志文件
RF自带日志文件:
掌握程度:运行报错时,能分析基础错误
掌握脚本构建工具-Jenkins
Jenkins主要用来构建自动化脚本,主要掌握项目的以下几种配置:
1、参数化构建
2、定时构建
3、报告输出
掌握基础的构建,基本上能适用大部分的自动化测试,如果需要深入学习也可以专门去学习jenkins这门课。
掌握一门脚本语言-Python
根据个人的自身条件选择适合自己的脚本语言,作者是代码小白,所以选择当前较为流行的python语言。
对于小白的我学习python的过程:
1、找一个python小白视频,从第一章节看到最后一章
目标掌握:python的基础语法
2、实践学习:写读取表格
由于个人习惯用表格存取测试用例,故此处实践学习如何读取表格数据
3、实践学习:获取时间
由于部分接口或者日志,需要使用时间来进行区分,故此处学习了时间模块函数的知识点
4、实践学习:图文识别
由于自动化过程中需要识别图文验证码,故此处学习了python+OCR识别图文的知识点……
实际自动化过程中,不论是web/app/接口自动化,都会有部分功能需要单独写脚本来实现,所以掌握一门开发语言,还是很有必要的。
至于掌握的程度根据个人自身需要,不要求你能自己写出来,至少网上百度到的要能读懂,并修改为能实现自己目标的脚本。
环境+实践
所有的学习都必须建立在实践的基础上,否则都是空谈。
现在很多“mini”公司打着“后期公司会有自动化”的名义招聘人才进去,实际进去之后除了功能还是功能,缺少成熟的自动化平台,对于从功能转自动化测试小白来说,个人学习后很难真的开展真正意义上的自动化实践:
缺少技术指导,自身能力不足(当然也有真的人才能独自挑起公司自动化的大梁);
真正的自动化脚本维护需要大量的时间;
所以有一个真实的自动化平台或真实的自动化团队,对一个刚转型自动化测试的小白来说,是一个很大的助力。即使进去之后可能只是擦边球的接触~~但是多多少少都能偷学点实践经验。