51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 534|回复: 0

[原创] Python学到框架层次可以做web自动化

[复制链接]
  • TA的每日心情
    无聊
    11 小时前
  • 签到天数: 932 天

    连续签到: 4 天

    [LV.10]测试总司令

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

    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-18 20:51 , Processed in 0.064175 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表