充分运用分层设计思想,集合Page Obejct模式,在设计测试框架的时候需要考虑几方面:
- 数据分离,如数据的初始化、备份、销毁、还原等等,有条件的可以基于docker做环境隔离
- 基本操作封装,如启动浏览器的切换、click、input、select等等
- 通用业务逻辑封装,如登陆操作、清空购物车操作、获取验证码等等
- 元素分离(参考PO设计模式),集中管理page element,在业务脚本中以元素变量替代,统一变更和维护
- 复杂操作封装,如web测试的各种dialog处理、js sandbox、iframe同源跨域,移动端的上下左右swip、清空缓存等等
- 脚本健壮性考虑,比如rerun、WaitForElement显式or隐式等待等
- 如果有的选择,不建议用坐标、截图(比如sikuli那种)进行操作
- 有达人总结了一条公式:
自动化的收益 = 迭代次数 * (全手动执行成本 - 维护成本) - 首次自动化成本
业内有很多出色的设计方案,这里说的比较简单,欢迎大家踊跃补充。