前面系列Python3+Selenium2自动化系列博文,陆陆续续总结了自动化环境最基础环境的搭建、IE和Chrome浏览器驱动配置、selenium下的webdriver模块提供的元素定位和操作鼠标、键盘、警示框、浏览器cookie、多窗口切换等场景的方法、web自动化测试框架、python面向对象和POM设计模型以及python下的单元测试模块unittest模块。本来计划陆续循序渐进的继续写一些篇章总结python面向对象编程、python下的logging日志模块、os.path路径处理模块、time模块处理时间,如格式化时间输出以及一些第三方模块如读取和向excel文件中写入数据的模块:xlrd和xlwt,写完这些后,再开始写本篇的终极目标:编写一个轻量级的自动化测试框架。最终放弃这样做,原因:楼主发现python面向对象编程、python的这些标准库模块或者第三方模块其实很多博客已经做了很好的总结,总之,会学习的人,百度后总能从一大堆的文章中,查看并甄选出对自己解决问题或者思考有帮助和收获的文章,如百度python logging模块使用,多看博文就一定能找到对自己有帮助的文章。曾经楼主也是在学习实践中遇到很多坑,也是根据IDE输出上提示的错误自己先思考解决,还是不行就百度一下或者看书,并深度学习下这块的内容,然后再去解决问题,从这些博文以及自己买的python类的书籍中也是受益良多,这也是楼主一直以来自己的学习方式。这里,每个人都有自己的学习和思考问题的方式,找准适合自己的学习方式并执行它,完成一个阶段目标,然后设置下一个新目标,并为之努力。因此,在写这个轻量级的自动化web测试框架前,我跳过了上述诸多内容,包括且不限于:python面向对象编程、python常用标准库loggging、time、os.path运用等等,在后面的轻量级框架代码中会有部分注释,对于这些python相关的内容学习,大家根据自己的情况去充实,坚持学习并持之以恒。在楼主身边,有太多类似的人学习总是三天晒鱼、两天打网的,完全沉不下心来学习东西,浅尝辄止,没有积淀,如果认定一个东西就去想办法搞定,加油!楼主也在为自己新的目标fighting中,当然目标是广义的,可以是生活方面、工作方面、情感方面.......,好像跑偏题了O(∩_∩)O,这些人生鸡汤似的废话就不说了,看看下面这个web自动化测试框架是如何实现的吧~
二、项目架构说明
该项目架构基于楼主公司的一款B/S软件设计,大家也可以根据自己的被测软件来构建适合自己的架构层级,当然也可以参考楼主的。做自动化测试项目,当搞懂了思想和方法,其实都是万变不离其宗,就跟写代码一样,语言万千种,唯一不变的就是语言中殊途同归的思想,因此,玩会了套路自然就能凌驾于套路之上,运用并加入自己的东西。在PyCharm中新建如下的项目层级:
有过开发经历的小伙伴都知道,有个好的交互式开发工具对于我们创建和管理清晰的项目架构很方便,PyCharm就是一款交互良好的python开发工具。楼主上面的项目层级中部分目录和目录下的文件没展开,下面显示一个完整的目录结构,并说明每个目录是用来干嘛?放什么东西?
当然这个项目层级设计,不是楼主一时间就固定下来的,也是在不断的摸索和采坑中,不断调整出的一个适合自己的框架目录层级。项目框架设计好了后,接下来就是慢慢补充内容一步步实现上面每个目录需要的东西。来吧,开始造轮子~
三、配置文件设计
首先,对于上面的config.ini的配置文件进行配置。说到配置文件,不管是开发人员还是测试人员都不会陌生,还有xml、txt等格式的配置文件,配置文件就是用来配置一些参数和固定的变量值,一般是程序固定不变的东西我们就放这里面,用于程序直接调用,如果修改配置文件中变量的值,程序调用该变量就会产生不同的输出行为。如在做自动化测试时,我们可以将测试的不同浏览器写入到该文件中,当我们需要调用firefox浏览器时,将参数设置成firefox即可,测试脚本将会在火狐浏览器进行。如下图,在配置文件中设置了浏览器参数、测试url、邮件服务器、邮件发送和接收者等参数。