1. 概念模型化和分层降低代码复杂度 : 定位器/页面/模块
1. 定位器 Element Locator : 从DOM中定位到目标元素
1.可以通过 xpath , byClass, byName 等方法定位到目标元素
2.通常还要配合wait-until机制在合适的时机去找目标元素
2. 页面 Page : 对应一个完整的WEB页面
尽量采用和开发团队对等的页面Page概念,方便沟通。
某些WEB页面虽然主功能不同,但采用同样的布局,所以很可能这些页面中的某些部分在这些页面中通用,这样的通用部分也可以抽象出来做成通用的模型来使用,比如叫做 PageFragment。
3. 模块 Module : 尽量和被测系统的模块划分相对应
通过将模块和页面采用和开发团队一致的概念,当系统功能或者界面发生变化时,测试团队会很容易识别变化所发生的区域从而最快速度赶上变化。
2. 充分利用 Java 代码的重构能力不断演进代码
Java代码在主流的IDE,比如IDEA 或者 Eclipse都有很好的重构支持,当变化发生时,充分利用重构不断演化自动化测试的代码很重要,这样有至少两个很重要的
目的 :
- 代码总是能跟得上最新的设计和实现
- 该废弃掉的代码抓紧时间废弃掉,留下来会使代码变肥,难以理解或者导致误解
3. 代码的变化规模要和导致该变化的产品功能变化规模保持线性
线性的变化,定量的或者定性的,给人的感觉都是事情可以预期和估计的。
非线性的规模变化,会导致自动化代码的复杂度变化不可预期,进而导致工作量和项目时间无法控制,这绝对不是你想看到的。