关于自动化的学习,一直是大家关注的话题,那么Python学习到什么程度就可以进行自动化测试了呢?下面结合我自身的学习历程跟大家分享一下。
初识自动化
刚开始学自动化的时候,是跟着视频课程学习的,当时学习完用Selenium进行脚本录制之后,就觉得自动化测试好简单,录制脚本后回放脚本就行了,所以学完录制脚本之后,就没再往下继续学习,使用Selenium脚本录制的功能进行脚本的录制回放。
结果可想而知,录制脚本时,一个鼠标悬浮事件没有录制上,导致元素找不到,最终整个脚本以失败而告终。
因为随着前台开发技术的不断更新换代,并不是所有的事件、操作都能使用Selenium自动录制上,还需要我们手动处理。
定位元素
总结这次失败的教训,我继续进行视频课程的学习,学到了使用WebDriver去定位元素,之前使用Selenium录制不到的鼠标悬浮操作,用元素定位的方式也定位到了,脚本能正常跑通。
学习完本章内容后,我使用现有的知识,写了一个回归测试的脚本,包含下单、新增用户、发货等功能,基本包含了系统的主要的功能流程。
但是在写完这个脚本后,我发现,目前掌握的知识只能满足于这种简单的流程测试,就像是下单的整个流程、发货的整个流程,并不能满足我们多样化下单的需求。
比如说我这次下单要买红色L码,下次下单要买蓝色S码,如果使用我们现有的这种脚本编写方式,同一个功能,只是参数不同,我们需要重复写这一段代码,有多少用例,就要重复多少次,不仅浪费时间,而且造成了代码的冗余,而且还有参数写错的风险。
如果后期某个参数名改变,我们要把所有相关的参数名都改一遍,不利于后期代码的维护,人员成本也比较高。
自动化测试框架
接下来就进行了自动化测试框架的学习,将不同的页面、初始化方法、功能模块等分开来写,引入UnitTest进行测试用例的管理等等。引入UnitTest之后,上面提到的代码冗余的问题就得到了解决。
因为UnitTest测试框架,把功能单独写一个方法里,使用该方法时就进行方法的调用,如上述提到的下单的功能,先将功能写成一个方法,然后将不同的参数值写到测试用例集合中,每次执行测试用例,就调用下单的方法,只需更改参数,不需要重复编写代码,这也解决了参数名更改导致的脚本问题,只需要在下单方法里修改参数名,并不需要在每个测试用例里都修改一遍,节省了时间,也避免了修改不完全造成的遗漏。
问题定位及解决
当然我们应该还具备问题定位及解决的能力。因为在学习的过程中,我们完全是按照视频教程上按部就班的操作的,所以基本上不会遇到什么问题。
但是在实际的工作中应用的时候,网站是千变万化的,难免会出现这样那样的问题,比如说教程里只说了可以通过class进行元素的定位,但没有说如果一个class有多个属性名应该怎么处理,比如我们如果直接把inputstyle password这两个元素作为元素定位的标志,实践发现并不能定位到元素,从搜索引擎搜索才知道,这种的代表这个元素都多个class的属性名,我们只需选择其中一个名称进行定位即可。
诸如此类的这种小知识一般在课程里不会提到,但是是实际的工作中确实经常遇见的,所以我们还需要具备问题解决的能力,不能只局限于教程上的知识,不然自动化测试是进行不下去的。
结语
学习到此,小编认为就可以尝试进行自动化测试脚本的编写工作了。
当然,这只是基础,学习是永无止境的,想要让自己变得更优秀,让自己写的脚本更好,我们要不断的扩展自己的知识,学到这里只是起点,后面我们还有很长的路要走。
但是也不能贪多,贪多嚼不烂,只是一味的学习但不应用到实际的工作中,学习的知识很快就会忘记了,而且学习和真正应用到工作也是不一样的,因为在工作中我们会遇到各种各样的在学习中未提及的知识点,需要我们不断的去充实、巩固当前已经掌握的知识,这样才能将知识转化为自己的所有物,并将其灵活运用。