一直没有时间书写项目实战中的自动化实战文章,刚好项目中用到了冒烟测试脚本,就此通过项目对自动化测试实战技术进行梳理,顺便也给想学习的朋友一个方向。
此自动化测试走的是BS全流程测试,即冒烟测试。
先对项目及脚本目录做一个总的介绍。
1.脚本目录
项目结构项目结构大致如此,我会给出github上的脚本地址,另外,需要注意的是,运行脚本的时候要注意run_test.py中test_dir和report_dir都是绝对地址,如果要运行脚本需要改成自己当年目录的地址,否则会报错。另外运行环境是python2.7.13, 其他版本还未测试,建议在2.7大版本下运行。
Github地址:znyw2_smoke
2.脚本书写大致思路
首先大概介绍下 PageObject书写的思路
页面元素如图,整个实时监控界面都是由一堆元素组成的(涉及部分前端知识,了解更好,不了解也不影响),页面上的元素主要分为button--按钮,input---输入,scroll---滚动条(本文没有涉及)三大类,而鼠标主要负责点击,键盘负责输入。而其中点击元素又起着跳转界面的作用,此元素定位十分关键。本次脚本多用xpath和classname定位,其他定位方式因为各种局限原因,并未使用,很多人刚接触自动化测试,都是被例子带歪了。。。真正项目中开发一般不会给你id和name这种独有的ID的,原因很简单。。现在很多都是各种框架和组件,基本上最常用的还是xpath,所以对xpath不熟练的朋友还要抓紧练习此定位方式。
脚本中就是将这些元素的定位全部分离出来,然后作为页面类的属性数据封装起来,然后通过书写类的方法去把操作比如click--点击操作,input---输入操作分别按照取名封装起来,颗粒度要小,以方便之后的复用,而方法函数中的参数要分离出来,以方便外部脚本的输入调用。
此界面跳转过程:
点击左侧卡片告警详情出现 点击【通知调度】按钮出现dialog弹窗前端界面的跳转如上图,都是通过鼠标的点击事件实现的,而在输入事件后,通过http协议和后台提供的http协议传递给后台接收并处理然后插入数据库做永久化存储。
对应的类脚本:
类脚本类脚本书写完,还要再写调用脚本,以形成实际操作:
调用脚本调用脚本中的driver即driver=driver.Chrome()驱动,用以当作所有的find_element的方法驱动公共参数。
此界面的操作就这么写完了,实际上此脚本封装的还不够干净,因为定位的方法在行为中,最好是将定位的方法和定位数据都在类属性中书写,但目前脚本那么写就会报错,只能参考下别人封装的写法了,不过此脚本目前阶段干活是没问题的。
自动化测试是一门非常实践的技术,其是为测试本身这项活动服务的,所以先完成业务,再修改脚本,这是一个测试应该特别注意的准则。
后面将对其中一个界面,调用了js语言的界面进行讲解,最后再对runtest.py调用模块讲解下。暂定是三个部分。
在写脚本的过程中,发现了implicitly()方法与driver方法的不同,有些界面必须加sleep界面才能跑通,所以需要查询一下此两者的区别。
网友评论