淘宝PC自动化测试框架AutomanX

                      王超




测试平台与发展--PC自动化测试框架组
概要

 �   项目简介
 �   功能介绍
 �   基础组件
 �   核心构建
 �   执行调度
 �   框架特点
 �   附录




PC自动化测试框架组
项目背景

                        Our aim is to make it perfect …

�   What?
    What?
     • AutomanX是基于iTest与Automan,并融合前端测试方案的淘宝新生代PC自动化测试框架

�   Why?
    Why?
     • 降低准入门槛:
       降低准入门槛:统一测试用例开发语言至Java
     • 降低支持成本:
       降低支持成本:提供统一的PC自动化测试框架,避免多框架的维护

�   How?
    How?
     • 框架革新:
       框架革新:丰富的数据准备、页面对象Jar包机制、Method级别调度、前端测试方案、Http
       测试、测试用例Junit结构化、数据工厂融合、Kelude平台调度等等
     • 脚本向前兼容:
       脚本向前兼容:提供工具将原来的Ruby脚本轻松批量转换成新形式
     • 框架向前兼容:
       框架向前兼容:提供跟原来相似的API和编程思路使测试人员能平缓过渡到新框架使用




PC自动化测试框架组                                                 3
AutomanX功能简介

      前端测试方案              Web UI测试
                              UI测试
   •前端单元测试            •功能自动化测试
   •前端交互测试            •Http请求测试
   •前端校验(Link、CSS)    •WebX测试(类Spring Unit)


        API测试
        API测试             兼容性测试
   •单元测试              •浏览器同步工具
   •HSF接口测试           •功能自动化兼容性测试
   •Service测试         • JS兼容性测试




PC自动化测试框架组
基础组件
                   Module Component

      基础组件            扩展组件            Core组件
                                      Core组件
      Browser           FileUtil      Junit扩展
       Element        BrowserUtil     DataDriver
       Selector         LinkUtil         Hsf
      Exception         CSSUtil         WebX
       Listeners       ImageUtil       Spring
      XmlToJava       PopWinUtil       DbUnit
       Runner           Assert           Tddl
                          …           CommonUti
      PM System                           l
       Logger                           Mock
          …                               …



PC自动化测试框架组
核心组件
          JMockit
          DbUnit
          Jasmine
             Junit
        Selenium 2.0
                             提炼思想
        Surefire插件
                              JQuery
         扩展开发
                           Data Driver
                           Page Model
                              Spring
                          Logger Analysis
                           WebX & Hsf


PC自动化测试框架组
执行调度
  �本地运行Eclipse环境下运行,类似Junit
  �平台运行,主要应用Kelude执行调度引擎Agent



     新建 Test Lab    Agent分发调度       调用 Runner


                                    SVN用例更新


                                     Build Job


                     Agent监听 Job     Job 执行


                                   日志推送至Kelude




PC自动化测试框架组                                       7
框架特点

准入门槛                         性能提升
� 统一测试脚本开发语言                 � 全新的Method级别调度执行引擎
� 前端测试方案、API测试方案、Web UI测试方   � Page Model业务线Jar包模式
  案融合,不同类型用例形式统一             � 无需运行时定制下载
� Kelude执行调度平台的无缝集成          � Java语言的先天优势




与iTest无缝融合
 iTest无缝融合                   全新的用户体验
� 用例结构与Junit完美统一             � 类似接口测试的测试环境搭建
� 数据准备方案与iTest完美融合           � 类似接口测试的执行调度
� Maven项目的用例结构               � 强大的 Eclipse




PC自动化测试框架组                                           8
附录:前端测试方案概览

         前端单元测试                     动态页面交互测试
    原理
    原理:基于jasmine-maven-plugin
   •原理                           原理:
                                •原理:AutomanX & Selenium-
   插件                           webdriver
    功能
    功能:
   •功能 支持jasmine的单元测试            功能
                                  功能:
                                •功能 页面元素功能验证;
                                javascript模拟点击;异步校验



            CSS校验
            CSS校验                        Link校验
                                         Link校验
    原理
    原理:
   •原理 页面元素的属性值对比                原理
                                 原理:
                                •原理 http webclient response
    功能
    功能:
   •功能 页面元素属性校验;页面               功能
                                 功能:
                                •功能 批量链接校验;死链接校
   元素Layout;样式校验                验;期望链接配置性校验;链接高
                                亮校验




PC自动化测试框架组                                                    9
附录:页面对象模型一




PC自动化测试框架组
附录:页面对象模型二




PC自动化测试框架组
附录:Web UI用例工程结构

 �典型的Maven项目




                � A:
                  A:测试用例基类
                � B:
                  B:测试类
                � C:
                  C:测试数据
                � D:
                  D:配置文件
                � F:
                  F:pom.xml




PC自动化测试框架组
附录:Web UI用例结构

 �典型的Junit用例结构




                       �Script include Data
                       �Script & Data




PC自动化测试框架组                                    13
附录:用例日志

 �XML日志结构,并与kelude平台无缝集成




PC自动化测试框架组                 14
附录:Page Model Jar包

                     高                   中                   低

          Jar模式             Non Jar模式        Non Jar SVN模式

     �将Page Model打成Jar   �无Page Model Jar包   �无Page Model Jar包
     包,deploy到maven库     �将page model类文件     �Page model类文件上
     �配置测试工程的            从page model系统下载     传的SVN
     pom.xml,以引用之前       到当前测试工程             �将page model类文件
     的Jar包               �Page model类文件无     从SVN下载到当前测
                         需上传的SVN             试工程
     �优点:便于共享,
     工程精简                �优点:流程简单            �优点:流程简单
     �不足:流程繁杂            �不足:工程变大            �不足:SVN臃肿,
                                             不利于Page Model维护




      建议模式:                       高
      建议模式:用例开发完毕,Release时,建议使用优先级高的模式
     �建议模式:
      折衷模式:              中
      折衷模式:开发过程中,可以使用中优先级模式
     �折衷模式:
      不建议模式:                           低
      不建议模式:开发方便,但是测试项目和SVN臃肿,不建议使用优先级低的模式
     �不建议模式:




PC自动化测试框架组                                                       15
附录: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自动化测试框架组                                                   16
附录:技术基础

                  Skilled in the following domains…

    为了更好的使用我们的整个框架,必须掌握的技能基础如下:


�   编程语言: Java
�   熟悉Html,了解各种页面元素的特点、用法;
�   了解JavaScript脚本语言
�   了解JQuery之页面元素查找语法
�   了解数据库原理,能编写SQL语句;
�   了解XML、 XPath、Ajax;
�   了解使用编译工具Maven 、版本库工具SVN




PC自动化测试框架组                                            17
附录:用例规范

                      Quality is everything …
       Tips …


�   数据驱动:要做到流程和数据的分离
�   消除冗余:通过不断抽象,消除冗余
�   精简易读:测试用例应该尽量精简易读,避免复杂逻辑
�   健壮性:测试用例必须非常健壮,避免误报
�   用例规范:严格以java规范撰写测试用例代码
�   测试类:建议Web UI测试类撰写5个左右的测试方法,接口测试类撰写10个左右的
    测试方法
� 原子性:确保原子性设计用例,减少用例对其他环境的依赖




PC自动化测试框架组
附录:技术合作

                                    Make it perfect together…
                                                    together…
          Tips …

  我们提供了很完善的支持力度,也欢迎业务线小二贡献代码,合作促进
框架建设:

�淘测试:http://taobaotesting.com/blogs/2226
�问答系统: http://kelude2.taobao.net/faq/query_faq.htm?typeId=12
� 框架介绍: 10.232.23.62软件备份PC自动化框架组1_AutomanX0_框架介绍
� 用例规范与操作手册: 10.232.23.62软件备份PC自动化框架组1_AutomanX1_操作手册
      327482282
� 旺旺群:327482282                                              �拥有4+子公司
                                                  �拥有12+产品线
                                                  �拥有2700+个用例(Web
                                                  UI部分)




PC自动化测试框架组
2012-12-20

Top100summit automan x之框架介绍 王超

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