当前位置: 首页> 技术文章> 基于PO和单例模式的python+selenium UI自动化框架设计

基于PO和单例模式的python+selenium UI自动化框架设计

基于PO和单例模式的python+selenium UI自动化框架设计

深圳多测师王sir原创

日期:2019-12-06


一、创建一个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表示关闭
在后台数据库可以直接关闭'''


需要了解更多技术和获取更多免费技术视频的加入我们多测师的技术交流群或者可以微信我(15367499889

加入我们多测师的技术交流群定期获得福利哦!!!

upfile1583500570164.png                       upfile1583503305394.png


更多免费软件测试和python、Java开发、大数据和人工智能的学习资料就在多测师官网地址:http://www.duoceshi.cn

加入我们只需要三个月就可以月薪上万!!!

upfile1583500745149.png


上一篇: robotframework自定义测试库

下一篇: 软件测试之手工测试人员如何转测试开发?

QQ技术交流群

多测师官方学习交流
556733550

加入群聊