自动化测试框架设计(一)

分类: AUTOMATION 发布于:

基于selenium的web page自动化框架

需求分析

  • case 组织模块化

  • 可在jenkins中运行(无头浏览 定时,每天一次)
  • 兼容主流浏览器(IE,Chrome,Firefox)

  • 面向对象实现,易于使用,可扩展

  • 报告友好,易读

  • 无编程经验者可清晰描述测试用例

  • api(json,xml,soap)可测试

  • 适配常规web组件(弹窗、js)

  • 可配置,自适应不同环境(develop,staging,product)

优秀的BDD框架-Cucumber

选用cucumber-jvm 基本解决了框架级别的问题:

  • 运行时环境 - java

  • 测试用例编写 - cucumber中的自然语言描述语法gerkin

  • 使用mvn profile 解决运行时环境问题

  • page object 实现页面元素封装

  • 使用cucumber-jvm-reports-plugin解决插件问题,兼容jenkins

  • 使用feature file组织case

  • 使用selenium java 驱动浏览器。jenkins中headless[方案待定]

框架组成

行为驱动框架cucumber

java 版本

https://github.com/cucumber/cucumber-jvm

  • 完整支持cucumber的特性

  • 报告

https://github.com/jenkinsci/cucumber-jvm-reports-plugin

报告兼容jenkins, 清晰易读,并包含异常信息

  • 支持数据驱动

  • 实现简单

// Why doesn't this work?
@Given("I have {int} cukes in my {string}")
public void some_cukes(int howMany, String what) {
    // HALP!
}