Web 自动化测试---XPath

1.1什么是自动化测试
首先比较一下手动和自动:

  1. 手动
image.png

1.1什么是自动化测试

自动化测试的概念:
软件自动化测试就是通过测试工具或者其他手段,
按照测试人员的预定计划对软件产品进行自动化
测试,他是软件测试的一个重要组成部分,能够
完成许多手工测试无法完成或者难以实现的测试
工作,正确合理的实施自动化测试,能够快速,
全面的对软件进行测试,从而提高软件质量,节
省经费,缩短软件的发布周期。

自动化测试的历史
1.自动化测试就是任何利用工具来辅助的测试,几乎在计算机工业产生的第一天,这种测试就出现了。

2.历史上从来没有出现过“测试自动化取代测试工程师工作”这种事情发生,除非你完全忽略测试人员们的真正工作。

3.测试自动化意味着使用测试工具。自动化测试是个古老的理念。

1.2 为什么进行自动化测试
1.自动化测试的好处:

1)缩短测试周期
    计算机行业更新迭代快速,大量频繁的回归测试消耗时间,自动化测试能够将重复的实行交给计算机去做,加快测试速度。

2)避免人为出错
    测试人员不可能持续高度集中,并且人类易受外界影响(头疼脑热,精神不振),可能会造成人为错误
    
3)测试信息存储
    自动化测试将测试信息和数据储存在文件中,思路清晰明确,交接方便

2.自动化测试的好处:

4)轻易获取覆盖率
    自动化测试能够解放测试人员,使测试人员能够有更多的精力做那些非重复性的工作。
5)其他
    自动化测试可以是实现自动或者定时执行

自动化测试的方向是对的,而且趋势也是如此,但是有些自动化实现不了的还是会手动测一把1.整体分类:        

1)自动化功能测试
  2)自动化性能测试
2.自动化功能测试的分类:
1)单元测试
程序员搞定
2)接口测试
3)功能测试
大中型项目或长期项目可以采用自动化测试

1.3 自动化测试的分类
3.性能测试主要是使用测试工具

Loadrunner、Jmeter等,对软件进行压力测试、负载测试等等,因为这些无法用手工进行代替,所以必须自动化。

为了测试一个web站点的服务能力,需要模拟上千上万的请求(比如打开浏览器访问站点),人的速度是远远达不到这样的操作的

1.4 web自动化条件和使用范围�
1.使用自动化的前提条件

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

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

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

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

3)RFT(收费)

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

2.0 为什么要学习元素定位
1.为什么要学习元素定位?
1)计算机没有智能到人的程度。

2)计算机不能像手动测试人员一样通过眼看,手操作鼠标点击,操作键盘输入。

3)计算机通过一系列计数手段找到元素(按钮、输入框、模拟键盘等)

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

1.为什么要学习元素定位?
1)计算机没有智能到人的程度。

2)计算机不能像手动测试人员一样通过眼看,手操作鼠标点击,操作键盘输入。

3)计算机通过一系列计数手段找到元素(按钮、输入框、模拟键盘等)

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

1)css选择器

2)xpath

2.2 xpath
1.什么是xpath?

XPath 是一门在 XML 文档中查找信息的语言
W3School官方文档:http://www.w3school.com.cn/xpath/index.asp

2.什么是XML?

XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML 
XML 的设计宗旨是传输数据,而非显示数据

2.2 xpath
4.节点的概念:每个XML/HTML的标签我们都称之为节点

image.png
image.png
image.png

5.XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。


image.png
aee2f45e6787ebdd2befe9996012a62.png
19e22b48343dd9f411a99565bba9d9d.png
b7c10a33ce4f9be4b4da4f89d258968.png
c003087c9fe1d6012412cdbab2e3449.png
3bd057c0239846c47d089a5e10c1d96.png
55410b5db10708e826489b737bbc233.png
6a55c8b8cada61f232b6c4a32e2a2fe.png

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

image.png

45c4c5c7ed3a435c677482257f8136d.png

9779d9ade3996f2b46e684c4422d579.png

7bfe47a797773a5b31b19758f13bd4a.png

a8418c4abc6d73b941e14d47cdd912e.png

14b0b83fb12599a21d30d935f8cd6ca.png

b8816913ff8dfe515c87420de084c0e.png

选择未知节点


image.png
42c0f1f48249e8edddf1cceb36dd38f.png

434cc66b3d73d857d7ff712f0ac568d.png
952f292a3bbbd4e1ec78e09fb4049af.png

f78530358a3aafb07486fde3fe90422.png

选取若干路径


image.png
a837d1b2d6a43f714a4f7a32f98e4d1.png

补充:
//*[text()=“x’x’x”] 全部//title/text() 本内容是xxx的元素

//*[starts-with(@attribute,”xxx”)] 属性以xxx开头的元素

//*[contains(@attribute,”xxxxx”)] 属性中含有xxx的元素

//*[@attribute1=value1 and @attribute2=value2] 同时有两个属性值的元素

7b1930ae7ed909e7d700d2c531638cb.png

你可能感兴趣的:(Web 自动化测试---XPath)