抽空利用ECshop开源项目,写了下Selenium的Page Object自动化测试框架

Ecshop

├─common

├─config

├─data

├─logs

├─pages

├─picture

├─report

├─script

├─tools

├─run.py

详细介绍每个组件设计含义。

common

Python Package格式。存放通用功能函数,如浏览器启动函数、截图函数、日志生成函数、获取URL函数、HTML报告输出函数、配置文档读取函数等。

config

Directory格式。存放测试执行过程中所需的配置文件,可扩展。

data

Directory格式。测试执行时所需的测试文件,如测试用例、测试集等。

logs

Directory格式。存放测试执行时生成的日志文件,便于测试过程追溯。

pages

Python Package格式。存放页面操作类函数,如ECShop前端主页、注册页面、登陆页面等。

picture

Directory格式。测试发现缺陷或需定位问题时,可调用common中的截图函数,将截图文件保存在此处。

report

Directory格式。框架中已经有详细的日志设计,但如果需要输出HTML报告,则可调用common中的HTML报告输出函数,输出测试报告到此处。

script

Python Package格式。存放测试执行脚本,业务逻辑类的实现脚本,放在此处,调用pages中的基础类操作方法。

tools

Directory格式。selenium针对不同浏览器的操作调用方法不同,需加载对应的驱动文件,因此tools中可存放FireFox、IE、Chrome的selenium驱动文件。

run.py

run.py在测试自动化脚本的工程文件夹的根目录下,里面只有核心脚本是用__main__作为主函数入口,执行用例管理函数,如有需要,可利用unittest及HTML报告输出方法,设计执行脚本。

当框架没有设计多场景多用例调用函数时,可利用unittest进行测试用例管理。

干货||Selenium Page Object 自动化测试框架-框架设计