最近帮助一个客户项目改进它们的自动化测试,SUT是一个分别基于iOS和Android进行原生开发的APP,客户团队的即有测试代码使用Cucumber、Appium、WebDriver构建,属于非常典型的UI自动化测试套装。代码的层级结构大致如下:
1 | └── Tests/ |
整个测试代码粗看起来有板有眼,feature文件中合理的使用了数据驱动,glue文件中对step的定义和参数化都还不错。但翻看到PageObject时就傻眼了,一个登录页面的PageObject竟然有3000行代码!是的,你没看错,足足3000行,是QA测试登录页面的PageObject代码,而不是Dev开发登录页面的代码。这个页面本身没有复杂的交互与功能设计,比如Social Login、单页注册等,就是一个非常简单、传统的登录页面,类似下面这样: