自动化测试框架设计(一)
基于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!
}