200 likes | 661 Views
淘宝 PC 自动化测试框架 AutomanX 王超. 测试平台与发展 --PC 自动化测试框架组. 概要. 项目简介 功能介绍 基础组件 核心构建 执行调度 框架特点 附录. PC 自动化测试框架组. 项目背景. Our aim is to make it perfect …. What ? AutomanX 是基于 iTest 与 Automan ,并融合前端测试方案的淘宝新生代 PC 自动化测试框架 Why ? 降低准入门槛: 统一测试用例开发语言至 Java 降低支持成本: 提供统一的 PC 自动化测试框架,避免多框架的维护 How ?
E N D
淘宝PC自动化测试框架AutomanX王超 测试平台与发展--PC自动化测试框架组
概要 • 项目简介 • 功能介绍 • 基础组件 • 核心构建 • 执行调度 • 框架特点 • 附录 PC自动化测试框架组
项目背景 Our aim is to make it perfect … • What? • AutomanX是基于iTest与Automan,并融合前端测试方案的淘宝新生代PC自动化测试框架 • Why? • 降低准入门槛:统一测试用例开发语言至Java • 降低支持成本:提供统一的PC自动化测试框架,避免多框架的维护 • How? • 框架革新:丰富的数据准备、页面对象Jar包机制、Method级别调度、前端测试方案、Http测试、测试用例Junit结构化、数据工厂融合、Kelude平台调度等等 • 脚本向前兼容:提供工具将原来的Ruby脚本轻松批量转换成新形式 • 框架向前兼容:提供跟原来相似的API和编程思路使测试人员能平缓过渡到新框架使用 PC自动化测试框架组
AutomanX功能简介 前端测试方案 Web UI测试 • 前端单元测试 • 功能自动化测试 • 前端交互测试 • Http请求测试 • 前端校验(Link、CSS) • WebX测试(类Spring Unit) 兼容性测试 API测试 • 浏览器同步工具 • 单元测试 • 功能自动化兼容性测试 • HSF接口测试 • JS兼容性测试 • Service测试 PC自动化测试框架组
基础组件 Module Component 基础组件 扩展组件 Core组件 Browser FileUtil Junit扩展 Element BrowserUtil DataDriver Selector LinkUtil Hsf Exception CSSUtil WebX Listeners ImageUtil Spring DbUnit PopWinUtil XmlToJava Assert Tddl Runner … CommonUtil PM System Mock Logger … … PC自动化测试框架组
核心组件 JMockit DbUnit Jasmine Junit Selenium 2.0 提炼思想 Surefire插件 JQuery 扩展开发 Data Driver Page Model Spring Logger Analysis WebX & Hsf PC自动化测试框架组
执行调度 • 本地运行Eclipse环境下运行,类似Junit • 平台运行,主要应用Kelude执行调度引擎Agent 调用 Runner 新建 Test Lab Agent分发调度 SVN用例更新 Build Job Job 执行 Agent监听 Job 日志推送至Kelude PC自动化测试框架组
框架特点 • 性能提升 • 全新的Method级别调度执行引擎 • Page Model业务线Jar包模式 • 无需运行时定制下载 • Java语言的先天优势 • 准入门槛 • 统一测试脚本开发语言 • 前端测试方案、API测试方案、Web UI测试方案融合,不同类型用例形式统一 • Kelude执行调度平台的无缝集成 • 全新的用户体验 • 类似接口测试的测试环境搭建 • 类似接口测试的执行调度 • 强大的 Eclipse • 与iTest无缝融合 • 用例结构与Junit完美统一 • 数据准备方案与iTest完美融合 • Maven项目的用例结构 PC自动化测试框架组
附录:前端测试方案概览 动态页面交互测试 前端单元测试 • 原理:AutomanX & Selenium-webdriver • 功能:页面元素功能验证;javascript模拟点击;异步校验 • 原理:基于jasmine-maven-plugin插件 • 功能:支持jasmine的单元测试 Link校验 CSS校验 • 原理:http webclient response • 功能:批量链接校验;死链接校验;期望链接配置性校验;链接高亮校验 • 原理:页面元素的属性值对比 • 功能:页面元素属性校验;页面元素Layout;样式校验 PC自动化测试框架组
附录:页面对象模型一 PC自动化测试框架组
附录:页面对象模型二 PC自动化测试框架组
附录:Web UI用例工程结构 • 典型的Maven项目 • A:测试用例基类 • B:测试类 • C:测试数据 • D:配置文件 • F:pom.xml PC自动化测试框架组
附录:Web UI用例结构 • 典型的Junit用例结构 • Script include Data • Script & Data PC自动化测试框架组
附录:用例日志 • XML日志结构,并与kelude平台无缝集成 PC自动化测试框架组
附录:Page Model Jar包 高 中 低 Jar模式 Non Jar模式 Non Jar SVN模式 • 将Page Model打成Jar包,deploy到maven库 • 配置测试工程的pom.xml,以引用之前的Jar包 • 优点:便于共享,工程精简 • 不足:流程繁杂 • 无Page Model Jar包 • 将page model类文件从page model系统下载到当前测试工程 • Page model类文件无需上传的SVN • 优点:流程简单 • 不足:工程变大 • 无Page Model Jar包 • Page model类文件上传的SVN • 将page model类文件从SVN下载到当前测试工程 • 优点:流程简单 • 不足:SVN臃肿,不利于Page Model维护 • 建议模式:用例开发完毕,Release时,建议使用优先级高的模式 • 折衷模式:开发过程中,可以使用中优先级模式 • 不建议模式:开发方便,但是测试项目和SVN臃肿,不建议使用优先级低的模式 PC自动化测试框架组
附录:Page Model Jar包 • 结构说明 • Base是根节点 • Buy是一个App • CartBuy、BuyNow等是一个个项目 • 项目添加规则 • 应用名.项目名.模块名,比如 • MyTaobao.TeJia.Portal • 调用说明: • 调用格式:projects =Buy.CartBuy, Buy.BuyNow, Buy • 调用分析:则会download CartBuy、BuyNow2个项目的page model文件,Buy会被忽略,Buy就无需设置 PC自动化测试框架组
附录:技术基础 Skilled in the following domains… • 为了更好的使用我们的整个框架,必须掌握的技能基础如下: • 编程语言: Java • 熟悉Html,了解各种页面元素的特点、用法; • 了解JavaScript脚本语言 • 了解JQuery之页面元素查找语法 • 了解数据库原理,能编写SQL语句; • 了解XML、 XPath、Ajax; • 了解使用编译工具Maven 、版本库工具SVN PC自动化测试框架组
附录:用例规范 Quality is everything … • 数据驱动:要做到流程和数据的分离 • 消除冗余:通过不断抽象,消除冗余 • 精简易读:测试用例应该尽量精简易读,避免复杂逻辑 • 健壮性:测试用例必须非常健壮,避免误报 • 用例规范:严格以java规范撰写测试用例代码 • 测试类:建议Web UI测试类撰写5个左右的测试方法,接口测试类撰写10个左右的测试方法 • 原子性:确保原子性设计用例,减少用例对其他环境的依赖 Tips … PC自动化测试框架组
附录:技术合作 Make it perfect together… • 我们提供了很完善的支持力度,也欢迎业务线小二贡献代码,合作促进框架建设: • 淘测试:http://taobaotesting.com/blogs/2226 • 问答系统: http://kelude2.taobao.net/faq/query_faq.htm?typeId=12 • 框架介绍: \\10.232.23.62\软件备份\PC自动化框架组\1_AutomanX\0_框架介绍 • 用例规范与操作手册: \\10.232.23.62\软件备份\PC自动化框架组\1_AutomanX\1_操作手册 • 旺旺群:327482282 Tips … • 拥有4+子公司 • 拥有12+产品线 • 拥有2700+个用例(Web UI部分) PC自动化测试框架组