基于PO模式和单例模式的Python+Selenium UI自动化框架设计【多测师】

一、创建一个project、每个包的分层如下:

upfile1575590824609.png

最终的框架结构:
 


二、config包中创建一个config.ini主要用于存储当前项目的绝对路径,[project]表示section节点   project_path表示option
 

globalconfig里面首先通过ReadConfigIni这个类创建一个对象,用对象调用实例方法getConfigValue读取ini文件里面的
section和option来获取project_path对应的value,从而可以获取到项目的绝对路径
作用:
1、可以把项目的绝对路径设置为一个常量
2、可以通过项目路径拼接report、Data和TestCase的路径来获取报告、数据和测试用例的路径、这个可以为后面的跑测试用例
打下基础。

 


三、Data包当中下面有一个data.xlsx文件、这个文件主要用于存放需要被测对象的url地址和账号密码信息等等,都可以通过xlrd模块来进去读取
 


四、DoExcel.py这个模块当中实现的主要是用来读取上面data.xlsx这个文件内容的,首先要引入一个模块xlrd这个模块可以在dos窗口通过pip install xlrd来进行安装
可以通过xlrd.open_workbook打开一个Excel文件,然后通过 sheet_by_name方法来打开具体的哪个sheet文件
然后通过cell方法去获取对应行和列的value值
 


五、ReadConfigIni模块主要是用来读取ini格式结尾的文件的,通过section节点和option来获取对应的value值
 


六、创建一个BasePage模块主要是封装所有页面的公共类,然后创建driver对象,这个driver对象而且是单例的并且把
元素定位方式也封装了一遍这是为后面的PO设计模式做准备
 
 


七、Place_Order模块封装的是登录的整个流程、用到了PO设计模式
PO的意思就是page object页面对象模型
1、所有当前页面的元素都是当前页面对象的属性
2、优点就是元素定位容易修改
3、缺点就是代码量过多
4、这里只举了一个小例子、如果元素定位比较多的话需要单独封装在一个类当中
 


八、TestCase层开始编写测试用例、继承unittest.TestCase类
unittest单元测试框架是用来管理和组织测试用例的
可以按照类开始=》方法开始=》函数体=》方法结束=》类结束的步骤运行测试用例
 


九、run_all模块里面主要封装了自动搜索用例、并且通过runner对象运行测试用例并且生成测试报告
还封装了发送邮件的方法
 


十、mail模块当中主要封装了发送邮件的类和方法、可以把生成的报告以附件和HTML格式发送到规定的邮箱中
 
 


十一、框架的总结:
'''
框架总结
优点:
1.层次分明
2.模块化
3.降低耦合性
4.易于维护 -- 元素定位修改比较方便
5.代码复用性大 -- 登录方法可以重复使用
缺点:
1.比较繁琐,代码量比较多
2.方法调用比较多,出现问题比较难定位'''
'''
对于验证码的处理1.开发会给一个万能的验证码
2.后台数据库对验证码会进行配置项管理 Y表示打开 N表示关闭
在后台数据库可以直接关闭'''

posted @ 2020-05-10 21:47  多测师_树哥  阅读(836)  评论(0编辑  收藏  举报