前言
大环境下的测试岗要求越来越高了,主要是内卷的严重!!
现在对于如今的测试人来说,几乎没有人不知道自动化测试,甚至查看各大招聘网站,你从任何一个招聘渠道来看最近两年对测试岗位的要求,几乎都要求会自动化测试。
从流程的角度来看,自动化测试将测试自动化工具和操作添加到常规软件开发工作流中。
例如,交付到存储库的新版本可以使用一个或多个规定的工具自动进行自动测试方案;测试可以在非工作时间实施,几乎没有开发人员干预(如果有的话)。
与以前的测试运行相比,自动测试结果会被仔细记录下来,并交付给开发人员进行审查。根据结果,可以将软件循环回给开发人员进行进一步的工作,或批准为部署的候选软件。
一、为什么要做自动化
那企业或者是我们测试人员为什么要做自动化测试呢?
从工作角度来说,目前互联网需求迭代快,人员流动快,一个需求从提出到上线时间紧急,其影响的范围可能不太清楚,在上线之前必须对原有功能进行回归测试。不管是接口还是从客户端,都需要大量的测试工作,大数据时代,测试用例量非常庞大,如此繁复单调的工作让人工来测试的话,根本不能保证效率和质量,所以必须要借助于非人工手段来实现。
从个人发展方面来讲,时代在发展,对我们的要求也越来越高,所以我们要迎接变化,不断提升自己才行。
虽然你可以坚持手工测试是基础,是王道,可是并没有企业愿意为你这个信念买单。除非你生活无忧无虑,可以坚持自己的信念,否则你就要尊重业界发展的规律,不断充电从而使自己更有价值。
二、实施自动化测试
在实施自动化测试工作之前,你必须对要测试的业务非常熟悉,核心业务流程,具体的功能模块的实现,前后端如何交互,以及业务未来的发展与迭代频率等等。然后按以下思路来进行选择与实施你的自动化测试:
(1) 根据业务特点,选择自动化测试方案。你的业务是前后端分离的吗?业务比较注重用户交互还是数据完整性?用户量有多大,有没有需要承担的压力等等,通过考虑业务的特点,才能选择比较合适的方案。
(2) 根据业务侧重点,确认自动化覆盖范围和粒度。通过业务特点选择了自动化测试方案,然后根据业务侧重点来确认范围和粒度了。比如,你确定要进行Web UI自动化测试,不能看页面就去写自动化测试用例,要根据业务重点来确认。哪些业务流程是核心,必须覆盖?哪些功能暂时有技术难点,或是变化比较快,可以放为二期来实现。通过对手工用例的评审,来准确确定自动化测试的范围,实现用例的粒度。
(3) 根据自动化测试用例范围,选择实现框架和语言。目前业务自动化测试工具,开源框架多如牛毛,让人无从选择,但是它们还是各用侧重点的。需要根据测试用例的范围和特点,参与人员的水平,用例的使用场景和未来计划来选择合适的框架。比如,我们要做接口自动化测试,而参与人员大部分不会代码 ,那选择Python+Unittest+HtmlTestRuner+Jenkins就比选择Java+Httpclient+TestNG+Jenkins实现起来成本更低。
三、怎样学习自动化测试
(1) 准确定位自己,明确目标
有不少同学意识到了自动化测试的重要性,就去网上查询资料啊,乱找一气,最后越学越迷茫,处于会与不会之间,前路不知如何去走?这是什么原因呢?
这是因为你在学习自动化测试之前没有想明白几个问题:
我的真实水平如何?
如果学习一项新的技术或是语言,我愿意投入的精力是多少?
从现在开始学习,三个月或是半年后应该达到什么目标?
我了解现在业界的自动化测试类型或是体系吗?
想好这些问题再去入手学习,必定事半功倍。
(2) 全面了解,选好切入点
目前自动化测试方向大概有以下几个:
辅助测试脚本方向:以Shell,Python为主来简化重复的工作,过滤日志等;
接口自动化测试方向:Python+pytest/Unittest+HtmlTestRuner+Jenkins和Java+Httpclient+TestNG+Jenkins,当然还有很多其他二次开发的框架或工具,不过核心是一样的;
web自动化方向,主要有:Python+Webdrver+HtmlTestRunner+Jenkins,Java+Webdriver+TestNG+Jenkins,以及其他的框架和工具;
App自动化测试方向:以Robotium+Java+TestNG+Jenkins, Appium+Java+TestNG+Jenkins,Appium+Python+HtmlTestRunner为主。
当然我说的都是简单的,最基本的实现方案,作为入门学习比较合适。其他五花八门的二次开发的框架,包含众多功能的方案留待你以后提升。
四、抛弃工具,多用开源
业界好像从来不缺少自动化测试工具,QTP,Realobot Framework,LoadRunner等等,知名不知名的数不胜数。
先不说这些工具效果如何,目前大公司是从来不用这些工具的,大家都使用开源的框架,工具进行定制化自己的测试方案。
使用开源的Webdriver, Appium,Robotium等搭建自己的自动化测试工程。掌握一个整体的自动化工程工作原理,为以后搭建自己的自动化工程,工具,平台做准备。
要知道,它只是一个工具,一种测试方案,最终的效果还是由实施的人来决定的。在几年前的时候,用Jenkins做持续化集成比较热门,接下来几年好像没有那么火了,但是近两年docker技术的出现,又使CI,CD变得火热起来。
五、总结
人生终有许多选择。每一步都要慎重。但是一次选择不能决定一切。不要犹豫,作出选择就不要后悔。只要我们能不屈不挠地奋斗,胜利就在前方。
如果你能把做事当锻炼,把忙碌当享受,把挫折当成长,把吃亏当收获,把不幸当噩梦,把成功当往事,那么,你的生活就会感到无比宽慰,无比自在!
让奋斗之花遍地盛开;让奋斗的清泉在泉眼中喷涌而出;让奋斗的雄鹰在蓝天下翱翔;让奋斗的果实丰硕地结满大树下吧!