web自动化基础

一、认识web自动化测试

  1. 概念:软件自动化测试就是通过测试工具或者其他手段,按照测试人员的预定计划对软件产品进行自动化测试。

  2. 为什么要进行自动化测试

    1. 自动化的好处?
      • 缩短测试周期
      • 避免人为出错
      • 测试信息存储
      • 轻易获取覆盖率
      • 自动化测试可以实现自动或者定时执行
  3. 自动化测试的分类

    1. 整体分类
      • 自动化功能测试
      • 自动化性能测试
    2. 自动化功能测试的分类
      • 单元测试:程序员搞定
      • 功能测试
      • 接口测试:大中型项目或长期项目可以采用自动化测试
  4. web自动化条件和使用范围

    1. 使用自动化的前提条件

      1. 手动测试已经完成,后期不在影响进度的前提下逐渐实现自动化
      2. 项目周期长,重复性工作都交给机器去实现
      3. 需求稳定,项目变动不大
      4. 自动化测试脚本复杂度比较低
      5. 可重复利用
      
    2. 使用自动化测试的场景

      1.频繁的回归测试
      2.冒烟测试
      3.传统行业需求变化不大,应用频繁
      4.性能测试
      
  5. web自动化常用的工具

    QTP(收费)、Selenium(开源)、RFT(收费)

  6. 元素的定位

    css选择器

    xpath路径表达式

    1. 为什么要学习元素定位?
    1)计算机没有智能到人的程度。
    2)计算机不能像手动测试人员一样通过眼看,手操作鼠标点击,操作键盘输入。
    3)计算机通过一系列技术手段找到元素
    
     2. 元素定位的工具或手段有哪些?
    
    css选择器
    xpath
    
    1. 环境及工具

    材料:

    1)firefox35
    2) firebug插件
    3)firepath插件
    
  7. xpath

    1. 什么是xpath?

    XPath即为XML路径语言,它是一种用来(标准通用标记语言的子集)在 HTML\XML 文档中查找信息的语言。

    1. 获取元素
    nodename:选取此节点的所有子节点
    /:从根节点选取
    //:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
    .:选取当前节点
    ..:选取当前节点的父节点
    @:选取属性
    
    1. 查找某个特定的节点或者包含某个指定的值得节点
    /head/meta[1]:选取属于head子元素的第一个meta元素
    /head/meta[last()]:选取属于head子元素的最后一个meat元素
    /head/meta[last()-1]:选取属于head子元素的倒数第二个meta元素
    /head/meta[positon()<3]:选取前面的两个属于head元素的子元素的meta元素
    //title[@lang]:选取所有拥有名为lang的属性的title元素
    //title[@lang='eng']:选取所有titl元素,且这些元素拥有值为eng的狼属性
    
    1. 选取未知节点
    *:匹配任何元素节点
    @*:匹配任何属性节点
    node():匹配任何类型的节点
    
    /head/*:选取head元素的所有子元素
    //*:选取文档中的所有元素
    html/node()/meta/@*:选择html下面任意节点的meta节点的所有元素
    //title[@*]:选取所有带有属性的title元素
    
    1. 选取若干路径
    //head/title | //head/price:选取head元素的所有title和price元素
    //title | //price:选取文档中的所有title和price元素
    /head/meta/title | //price :选取属于meta元素的所有title元素,以及文档中所有的price元素
    
  8. css选择器

    1. 什么是css选择器?

    CSS 中,选择器是一种模式,用于选择需要添加样式的元素。计算机能够通过css选择器定位到相应元素,我们在编写自动化测试脚本的时候很多时候是在不断地找到css选择器。

    1. css选择器语法
  • 通过伪类名、id、标签名定位
.class:选择class='value'的所有元素
#id:选择id='value'的所有元素
*:选择所有元素
element:选择所有标签元素
  • 通过元素之前嵌套关系
element,element:选择所有标签元素和标签元素
element element:选择标签元素内部的所有标签元素
element>element:选择父元素为标签元素的所有标签元素
  • 通过属性
[attrlbute]:选择带有name属性所有元素
[attrlbute=value]:选择name=value的所有元素
[attrlbute^=value]:选择属性以value开头的每一个元素
[attrlbute$=value]:选择属性以value结尾的所有元素
[attrlbute*=value]:选择属性中包含value的每个元素

你可能感兴趣的:(web自动化基础)