前段时间公司一个项目做web自动化,刚结束来做下随笔总结。
采用技术是主流的python+selenium+unittest,脚本框架相对简单,设计思想主要有:
- PO模式
- selenium
- unittest测试框架
- 数据驱动
下图为框架结构:
数据:测试数据,可用ddt装饰器、xml文件、excel(不建议,不方便维护)等实现,笔者在实际项目中用得较多的是ddt和xml文件,或者像元素定位方式这类数据,用py文件在page页面中直接管理
工具配置:获取浏览器驱动、日志类、操作中间件(如mysql、elastic、redis、mongodb等)、配置文件(yaml)、报告模板…
web页面
PO模式:页面与页面操作分离
基于PO模式,web页面就是对页面元素操作的封装,通常以单页面为单位(即一个类),页面内容较多拆分成以功能模块为单位
cases:用例。以单页面或单模块为单位构成测试集,书写自动化用例也应该遵循程序的设计原则–高内聚,低耦合,这样在实际应用中才能保持整体的鲁棒性,减少因脚本原因造成的用例执行失败
输出报告:一般采用htmltestrunner模板即可,不用自己造轮子
jenkins触发:可选。根据项目实际情况可部署在本地windows或公司的服务器
下面为脚本的目录结构:
- case:用例
- common:公共流程,如登录,验证码识别,或基于不用用例集/模块封装的初始化/结束条件
- config:配置文件、读取配置文件
- logs:日志
- pages:所有web页面类
- report:报告-html
- utils:工具配置
- pages:所有web页面类
- report:报告-html
- utils:工具配置
- run.py:启动文件