一个基于python+selenium的page-object自动化测试框架

Watcher是一款基于Selenium的自动化测试框架,适用于小型项目自动化测试。框架采用用户故事驱动的设计理念,支持持续集成,并确保主流程正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先上框架git链接:

watcher自动化测试框架

https://gitee.com/yukarijiang/watcher#0-qzone-1-79223-d020d2d2a4e8d1a374a433f596ad1440

这个框架目前才刚刚起步,还有很多不完善和不适当的地方,但可以用于学习selenium以及小型的项目的自动化测试,同时也期望与对自动化测试感兴趣的朋友深入交流。先上框架结构:

config/                                                  //配置文件夹

|——config.ini                                       //配置文件

data/                                                     //存放数据的文件

|——demo.xml                                     //xml数据

driver/                                                  //存放引擎文件

log/                                                      //存放日志文件

|——2018-05-05/                                //日志按天存储

|————170031.txt                           //每次运行的日志文件

report/                                                //测试报告输出文件

|——excel/                                          //excel测试报告

|————2018-05-05/                       //测试报告按天存储

|——————203211.xls                   //每次运行的测试报告

|——html/                                         //html测试报告

|——image/                                       //截图

|————2018-05-05_203211/         //截图按照每次测试存储

src/                                                    //核心代码目录

|——api/                                           //接口测试目录(暂未开发)

|——gui/                                           //UI测试目录

|————action/                              //行为

|————page/                                //页面

|————story/                                //用户故事

uit/                                                   //工具目录

index.py                                           //入口文件

       整个框架是按照用户故事进行组织的,主要用于自动验证按照用户故事操作是否正确,不用于发现各类型错误。之所以如此设计,在于首先要检测出错误需要编写大量的测试代码进行判断,其次维护成本也相当高,而笔者使用自动化测试的目的在于持续集成的过程中,保证主流程不出问题,即主要用户故事能走得通。

       整个项目通过index.py单入口运行,即在项目目录下:python index.py即可运行。index.py中包括了每次测试的配置,比如日志、截图、报告的输出位置等。

        uit/文件下为基础工具模块。包括:config.py(读取配置文件)、log.py(输出日志)、report.py(输出测试报告)等。

        page/ 基于page-object的思想,将每个页面封装成一个类,页面的操作为类方法,本框架中page类中不处理数据,只进行dom的选择与操作。

        action/ 文件下的action类为行为类、行为类用于给page类的方法填充数据,组合page类的操作成一个行为,例如示例中通过baidu进入csdn这个行为,包括了在baidu页面输入csdn,点击搜索的第一条链接进入csdn。

        story/ 文件夹下即为用户故事类,每个用户故事由多个action串联而成。

        基于以上的结构,page类为基础类,直接面向页面dom,action类只能调用page类的方法对dom进行操作,story类只能调用action类的方法,将一系列行为组织成一个完整的用户故事,其中story类中还包括了数据的还原,比如添加一个用户,测试完毕则删除这个用户。index.py里可配置多个story,对多个用户故事进行批量测试。

        以上架构基于笔者对自动化测试不成熟的想法,若有不适当的地方,还请批评指正。

        




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值