一、认识web自动化测试
概念:软件自动化测试就是通过测试工具或者其他手段,按照测试人员的预定计划对软件产品进行自动化测试。
-
为什么要进行自动化测试
- 自动化的好处?
- 缩短测试周期
- 避免人为出错
- 测试信息存储
- 轻易获取覆盖率
- 自动化测试可以实现自动或者定时执行
- 自动化的好处?
-
自动化测试的分类
- 整体分类
- 自动化功能测试
- 自动化性能测试
- 自动化功能测试的分类
- 单元测试:程序员搞定
- 功能测试
- 接口测试:大中型项目或长期项目可以采用自动化测试
- 整体分类
-
web自动化条件和使用范围
-
使用自动化的前提条件
1. 手动测试已经完成,后期不在影响进度的前提下逐渐实现自动化 2. 项目周期长,重复性工作都交给机器去实现 3. 需求稳定,项目变动不大 4. 自动化测试脚本复杂度比较低 5. 可重复利用
-
使用自动化测试的场景
1.频繁的回归测试 2.冒烟测试 3.传统行业需求变化不大,应用频繁 4.性能测试
-
-
web自动化常用的工具
QTP(收费)、Selenium(开源)、RFT(收费)
-
元素的定位
css选择器
xpath路径表达式
- 为什么要学习元素定位?
1)计算机没有智能到人的程度。 2)计算机不能像手动测试人员一样通过眼看,手操作鼠标点击,操作键盘输入。 3)计算机通过一系列技术手段找到元素
2. 元素定位的工具或手段有哪些?
css选择器 xpath
- 环境及工具
材料:
1)firefox35 2) firebug插件 3)firepath插件
-
xpath
- 什么是xpath?
XPath即为XML路径语言,它是一种用来(标准通用标记语言的子集)在 HTML\XML 文档中查找信息的语言。
- 获取元素
nodename:选取此节点的所有子节点 /:从根节点选取 //:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。 .:选取当前节点 ..:选取当前节点的父节点 @:选取属性
- 查找某个特定的节点或者包含某个指定的值得节点
/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的狼属性
- 选取未知节点
*:匹配任何元素节点 @*:匹配任何属性节点 node():匹配任何类型的节点 /head/*:选取head元素的所有子元素 //*:选取文档中的所有元素 html/node()/meta/@*:选择html下面任意节点的meta节点的所有元素 //title[@*]:选取所有带有属性的title元素
- 选取若干路径
//head/title | //head/price:选取head元素的所有title和price元素 //title | //price:选取文档中的所有title和price元素 /head/meta/title | //price :选取属于meta元素的所有title元素,以及文档中所有的price元素
-
css选择器
- 什么是css选择器?
CSS 中,选择器是一种模式,用于选择需要添加样式的元素。计算机能够通过css选择器定位到相应元素,我们在编写自动化测试脚本的时候很多时候是在不断地找到css选择器。
- 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的每个元素