web自动化测试

一、自动化测试

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

2.优点:

  • 自动化测试是软件测试的一个重要组成部分,能够完成许多手工测试无法完成或者难以实现的测试工作。
  • 正确合理的实施自动化测试,能够快速,全面的对软件进行测试,从而提高软件质量,节省经费,缩短软件的发布周期
  • 缩短测试周期,计算机行业更新迭代快速,大量频繁的回归测试消耗时间,自动化测试能够将重复的实行交给计算机去做,加快测试速度
  • 避免人为出错,测试人员不可能持续高度集中,并且人类易受外界影响(头疼脑热,精神不振),可能会造成人为错误
  • 测试信息存储,自动化测试将测试信息和数据储存在文件中,思路清晰明确,交接方便
  • 轻易获取覆盖率,自动化测试能够解放测试人员,使测试人员能够有更多的精力做那些非重复性的工作
  • 其他,自动化测试可以实现自动或者定时执行

3.自动化测试的分类:

①整体分类:

  • 自动化功能测试
  • 自动化性能测试

②自动化功能测试的分类:

  • 单元测试:程序员搞定
  • 接口测试
  • 功能测试

4.性能测试工具:

  • 性能测试主要是使用测试工具
  • Loadrunner、Jmeter等,对软件进行压力测试、负载测试等等,因为这些无法用手工进行代替,所以必须自动化
  • 场景:为了测试一个web站点的服务能力,需要模拟上千上万的请求(比如打开浏览器访问站点),人的速度是远远达不到这样的操作的

二、web自动化

1.web自动化条件和使用范围

①使用自动化的前提条件:

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

②使用自动化测试的场景:

  • 频繁的回归测试
  • 冒烟测试
  • 传统行业需求变化不大,应用频繁
  • 性能测试

3.web自动化常用的工具

①QTP(收费):QTP是Mercury公司的Quick Test Professional的简称,是一种自动测试工具。

Selenium(开源):ThroughtWorks一个强大的基于浏览器的开源自动化测试工具,通常用来编写web应用的自动化测试

③RFT(收费):IBM Rational Test Professional的简称,是一款先进的自动化的功能和回归测试工具,使用与测试人员和GUI开发人员,基础是针对Java,.NET的对象计数和基于web应用程序的录制,回放功能

三、元素的定位

1.为什么要学习元素定位?

  • 计算机没有智能到人的程度
  • 计算机不能像手动测试人员一样通过眼看,手操作鼠标点击,操作键盘输入
  • 计算机通过一系列计数手段找到元素(按钮、输入框、模拟键盘等)

2.元素定位的工具或手段有哪些?

  • css选择器
  • xpath

3.元素定位的工具:firefox35(版本低的兼容性好一些)、firebug插件、firepath插件

 

 

四、Xpath

1.介绍:XPath是一门在XML文档中查找信息的语言

2.节点:每个XML/HTML的标签我们都称之为节点

3.表达式:

①查找某个特定的节点或者包含某个指定的值的节点

表达式描述
/绝对路径,从根节点一层层选取,第一个/相当于document
//相对路径,从指定节点读取,匹配所有符合条件的节点
.选取当前节点,./是当前绝对路径下,.//是当前相对路径下
..选取当前节点的父节点
@选取节点中的属性
/a/b[1]选取a节点下多个重复b节点中的第一个b节点
/a/b[last()]选取a节点下多个重复b节点中的最后一个b节点
/a/b[last()-1]选取a节点下多个重复b节点中的倒数第二个b节点
/a/b[position()<5]按位置范围选取,选取a节点下多个重复b节点中的前四个b节点
//a[@content]选取a节点下所有带有content属性的节点
//a[@content="666"]选取a节点下所有带有content属性且属性值为666的节点

②查找未知节点

表达式描述
*匹配全部节点
@*匹配全部带属性的节点
node()匹配任何类型的节点,用于代替某节点
/html/node()/*匹配html节点下所有的子节点,node()即为head和body标签
//*匹配全部节点
/html/node()/meta/@*匹配html节点下所有子节点中,meta节点的所有属性
//a[@*]匹配所有带属性的a节点

③查找若干路径

表达式描述
//a | //b选取所有的a和b节点
/a/b/c | //d选取a节点下的b节点的所有c节点,以及所有的d节点

④常用方法

表达式描述
//*[text()="xxx"]查找节点中间的文本内容为xxx的节点
//*[starts-with(@aaa,"xxx")]查找属性aaa的属性值以xxx开头的节点
//*[contains(@aaa,"xxx")]查找属性aaa的属性值包含有xxx的节点
//*[@aaa=v1 and @bbb=v2]查找同时满足两个属性值条件的节点

五、CSS选择器

1.介绍:css中,选择器是一种模式,用于选择需要添加样式的元素。计算机能够通过css选择器定位到相应元素

2.表达式:

①通过伪类名、id、标签名定位

表达式举例描述
.class.aaa选择class="aaa"的所有元素
#id#bbb选择id="bbb"的所有元素
**选择所有元素
elementinput选择所有的<input></input>元素

②元素之间的嵌套关系

表达式举例描述
element1,element2form,span选择所有form标签和span标签
element1 element2form span选择form元素内部所有的span标签
element1>element2form>span选择父元素为form的所有span标签

③通过属性查找

表达式举例描述
[attribute][href]选择带有href属性的所有元素
[attribute=value][href="xxx"]选择href属性为xxx的所有元素
[attribute^=value]a[href^="https"]选择href的属性值以https开头的所有a元素
[attribute$=value]a[href$="com"]选择href的属性值以com结尾的所有a元素
[attribute*=value]a[href*="baidu"]选择href的属性值包含baidu的所有a元素

④通过父子关系查找

表达式举例描述
:only-childp:only-child匹配属于某一个父元素的唯一子元素p
:nth-child(n)p:nth-child(2)匹配某个父元素下第二个子元素p
:nth-last-child(n)p:nth-last-child(2)匹配某个父元素倒数第二个子元素p
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彭俞伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值