前段时间公司一个项目做web自动化,刚结束来做下随笔总结。

采用技术是主流的python+selenium+unittest,脚本框架相对简单,设计思想主要有:

  • PO模式
  • selenium
  • unittest测试框架
  • 数据驱动

下图为框架结构:

脚本架构 脚本框架是什么意思_python

数据:测试数据,可用ddt装饰器、xml文件、excel(不建议,不方便维护)等实现,笔者在实际项目中用得较多的是ddt和xml文件,或者像元素定位方式这类数据,用py文件在page页面中直接管理

工具配置:获取浏览器驱动、日志类、操作中间件(如mysql、elastic、redis、mongodb等)、配置文件(yaml)、报告模板…

web页面

PO模式:页面与页面操作分离

基于PO模式,web页面就是对页面元素操作的封装,通常以单页面为单位(即一个类),页面内容较多拆分成以功能模块为单位

cases:用例。以单页面或单模块为单位构成测试集,书写自动化用例也应该遵循程序的设计原则–高内聚,低耦合,这样在实际应用中才能保持整体的鲁棒性,减少因脚本原因造成的用例执行失败

输出报告:一般采用htmltestrunner模板即可,不用自己造轮子

jenkins触发:可选。根据项目实际情况可部署在本地windows或公司的服务器

下面为脚本的目录结构:

脚本架构 脚本框架是什么意思_python_02

  • case:用例
  • common:公共流程,如登录,验证码识别,或基于不用用例集/模块封装的初始化/结束条件
  • config:配置文件、读取配置文件
  • logs:日志
  • pages:所有web页面类
  • report:报告-html
  • utils:工具配置
  • pages:所有web页面类
  • report:报告-html
  • utils:工具配置
  • run.py:启动文件