您的位置:首页 > 编程语言 > Python开发

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

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

项目基于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

    --......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: