python2.7基于selenium的web自动化测试项目--框架设计

来源:互联网 发布:福州seo推广 编辑:程序博客网 时间:2024/06/06 16:34

为避免每次版本迭代上线后,回归不全导致未改动的模块产生新的问题,同时为了解放重复的流程回归测试,所以有了这个业务流程自动化回归项目的初版。


项目基于Python2.7、selenium3.0、unittest框架组合而成
使用POM模式,即Page Object Model页面对象模式来使测试代码更易阅读、维护、复用
    POM下,应用程序每一个页面都有一个对应的page class
    每一个page class维护改web页的元素集和操作这些元素的方法
    page class中的方法都是相对应的业务场景


主要目录:(和后台系统中的项目保持一致)
    --base
        --各目录中的__init__.py是为了声明当前目录是一个Package,便于其他模块import调用
        --Base.py   各公共方法的二次封装以及定义,如抛弃selenium最外层的定位方法,直接传入By类的变量,既避免过长的函数定义也规范了元素定位的变量定义;同时由于系统中部分控件用鼠标点击不好定位,不能灵活
           的传参,所以根据控件类型封装各type_xx函数,调用js来替代原生方法;考虑到代码的运行速度远高于浏览器的渲染速度以及网络加载速度,在隐式等待30秒的基础上,基类中的定位方法在操作前都设置强制等待
           0.2s的时间,避免page页中的每个操作后都加强制等待时间的繁琐
        --Login.py  登录页的元素定位及操作方法
        --Page.py   各web页面的实际地址,供其他pageClass中的操作方法调用
        --SQL.py    对数据库的操作,目前只做对测试数据的清理
        --test.py   自动化测试的入口,继承unittest框架,实例化各pageClass并调用其对应的业务操作方法。目前只定义了一个用例,因为当前关心的是流程,不是各case。后期稳定的基础上,加入大量case后,会使用
            套件去管理各case
    --user
        --系统中用户管理模块中的各page
    --house
        --系统中的房源管理模块中的各page
    --contract
        --系统中的合同管理模块中的各page
    --......






阅读全文
1 0
原创粉丝点击