在学习时手写记录优化自己所学到的知识并且分享给他人是我的快乐
1.自动化框架 翻译 (Automation Framework)
需要 1.配置文件管理 (我选用ini文件)
2.业务逻辑代码和测试脚本分离
3.输出测试报告文件
4.输出日志(log)文件
5.自定义的库封装(我们有很多方法需要重复调用,例如浏览器的引擎以及basepage.py的封装)
6.管理,执行脚本的方式(比如unittest框架 执行效率比较高)
7.第三方插件引入(例:html第三方报告)
所以框架设计如下
1.配置文件 PS:我们需要适用一个自己熟悉类型的文件来管理配置数据和全局变量
2.框架的主要代码 PS: 主要包含 日志类(log) 自定义封装基类 配置文件读取类以及各种调度
3.产品业务页面 PS:页面对象,业务逻辑分层,分页独立出来
4.测试脚本集合 PS:考虑采用第三方框架和创建测试单元 例如unitest
5.日志和报告 PS: 测试报告和日志的输出,报告需要采用第三方插件来实现
6.邮件功能或者持续集成 PS:例如jenkins 以及其他可以扩展的功能
我们搭建一个测试框架的基本思想就是POM,如果需要修改页面,那么就要修改页面元素定位,从而要修改这个类中的测试代码,这个类如果不是页面元素,业务逻辑,测试脚本分离开来的的修改起来就比较混乱而且麻烦。所以我们需要适用pom思想,比如
Class A负责的是页面元素的定位和业务逻辑操作代码的封装,Class B负责专门编写测试用例脚本,如果前端页面发生改变,我们只需要在Class A中修改部分代码就OK,简单清晰。
POM的优势 1 :实现页面对象和测试脚本分离,业务逻辑代码和测试脚本分离
2 :每一个页面对应一个页面类,页面中的元素写到这个页面类中
3 :页面类主要包括该页面的元素定位,以及这些元素相关的页面操作
4 :代码复用从而减少测试脚本的代码量
5 :层次清晰,同时支持多个编写自动化脚本开发,例如:每个人编写哪些页面,不互相影响
6 :页面类和业务逻辑类名称如果有意义,便有利于维护和