首先比较一下手动和自动:
1.1什么是自动化测试
自动化测试的概念:
软件自动化测试就是通过测试工具或者其他手段,
按照测试人员的预定计划对软件产品进行自动化
测试,他是软件测试的一个重要组成部分,能够
完成许多手工测试无法完成或者难以实现的测试
工作,正确合理的实施自动化测试,能够快速,
全面的对软件进行测试,从而提高软件质量,节
省经费,缩短软件的发布周期。
自动化测试的历史
1.自动化测试就是任何利用工具来辅助的测试,几乎在计算机工业产生的第一天,这种测试就出现了。
1.2 为什么进行自动化测试
1.自动化测试的好处:
2.自动化测试的好处:
1)自动化功能测试
2)自动化性能测试
2.自动化功能测试的分类:
1)单元测试
程序员搞定
2)接口测试
3)功能测试
大中型项目或长期项目可以采用自动化测试
1.3 自动化测试的分类
3.性能测试主要是使用测试工具
1.4 web自动化条件和使用范围�
1.使用自动化的前提条件
1)手动测试已经完成,后期再不影响进度的前提下逐渐实现自动化
2)项目周期长,重复性的工作都交给机器去实现
3)需求稳定,项目变动不大
4)自动化测试脚本复杂度比较低
5)可重复利用
2.使用自动化测试的场景
1)频繁的回归测试
2)冒烟测试
3)传统行业需求变化不大,应用频繁
4)性能测试
1.5 web自动化常用的工具
1.常见的自动化web测试工具:
2)Selenium(开源)
ThroughtWorks一个强大的基于浏览器的开源自动化测试工具,通常用来编写web应用的自动化测试
IBM Rational Test Professional的简称,是一款先进的自动化的功能和回归测试工具,使用与测试人员和GUI开发人员,基础是针对Java,.NET的对象计数和基于web应用程序的录制,回放功能
2.0 为什么要学习元素定位
1.为什么要学习元素定位?
1)计算机没有智能到人的程度。
2.元素定位的工具或手段有哪些?
1.为什么要学习元素定位?
1)计算机没有智能到人的程度。
2.元素定位的工具或手段有哪些?
2.2 xpath
1.什么是xpath?
2.什么是XML?
2.2 xpath
4.节点的概念:每个XML/HTML的标签我们都称之为节点
5.XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
查找某个特定的节点或者包含某个指定的值的节点
选择未知节点
选取若干路径
补充:
//*[text()=“x’x’x”] 全部//title/text() 本内容是xxx的元素
//*[starts-with(@attribute,”xxx”)] 属性以xxx开头的元素
//*[contains(@attribute,”xxxxx”)] 属性中含有xxx的元素
//*[@attribute1=value1 and @attribute2=value2] 同时有两个属性值的元素
XPath的语法 我们在前面已经提到过 XPath是用来帮助XSLT在XML源文档中查找定位信息的语言 在实际使用过程中 XPath和XSLT总是混在一起使用 在上面一章的语法例子中我们已经有使用到XPath的语法 只是没有明确点出 但W C将它们分成两个标准 所以我们也将它们拆成两章来讲解
XPath的语法
当前位置 寻址 *** 作 运算符 功能函数
当前位置
当我们使用XSLT处理XML源文档是 我们用Context来表示当前正在被模板处理的节点位置 比如xsl:template match= / 语句中表示Context在文档的根(root)节点 我不知道如何准确的翻译Context这个词 它类似于C语言里的指针 表示程序当前运行的位置 理解Context对于正确处理XSL模板非常重要 当您的XSL模板输出的文档和您想要的不一样 最先应该分析的就是Context在哪里 Location Paths是用于设定你想要寻找的Context节点位置 就类似DOS的目录命令 我们看个例子
<xsl:for each select= child::PEOPLE/descendant::PERSON >
其中child::PEOPLE/descendant::PERSON就是XPath语法 这个表达式就是一个Location Paths 代码说明要显示所有PEOPLE元素的子元素和所有PERSON元素的子元素 通常我们会采用更简单的写法
<xsl:for each select= PEOPLE//PERSON >
我们来解释path的两种表示方法 / 和 // / 是表示当前文档的节点 类似DOS目录分割符 例如 /PEOPLE表示选择根节点下的PEOPLE元素 PEOPLE/PERSON表示选择PEOPLE元素下所有的PESON子元素 // 则表示当前文档所有的节点 类似查看整个目录 例如 //PEOPLE表示选择文档中所有的PEOPLE元素 无论它在什么层次 PEOPLE//PERSON表示在PEOPLE元素下所有的PERSON元素 无论它的层次多深
寻址 *** 作
Axis和Predicate是XPath语法中对Location Paths进行定位 *** 作的语法 具体的用法列表如下
Axis语法表 表达式 简写 说明 self 选择当前的节点 例子 : <TD><xsl:value of select= /></TD> 代码表示在当前位置插入当前的节点包含的文本(text)值 parent 选择当前节点的父节点 attribute @ 选择一个元素的所有属性 例子: <TD><xsl:value of select= @PERSONID /></TD> 选择PERSON元素的所有属性 child 选择当前节点的所有子元素 ancestor 选择当前节点的所有父元素(包括父元素的父元素 类推)
Axis帮助我们选择当前节点周围所有的节点 而Predicate则用来定位当前节点内部的元素 表示方法为方括号[]中加表达式 [ Expression ] 具体举例如下:
PERSON[position()= ] 这句代码表示寻找第二个 PERSON 元素
PERSON[starts with(name B )] 这句代码表示寻找所有名称以 B 开头的PERSON元素
运算符
这一节介绍XPath的运算符(Expressions) 列表如下 运算符 说明 and or 就是普通意义的and or = 等于 != 不等于 >>= 大于 大于等于 <<= 小于 小于等于 注意 在XSL文件中 <符号要用<表示 * div 加减乘除 mod 取模 | 两个节点一起计算
功能函数(Functions)
在XPath里有很多功能函数可以帮助我们精确寻找需要的节点
count()功能 作用 统计计数 返回符合条件的节点的个数 举例 <p><xsl:value of select= count(PERSON[name=tom]) /></p> 说明 代码的用途是显示PERSON元素中姓名属性值为tom有几个
number()功能 作用 将属性的值中的文本转换为数值 举例 <p>The number is: <xsl:value of select= number(book/price) /></p> 说明 代码的用途是显示书的价格
substring() 功能 语法 substring(value start length) 作用 截取字符串 举例 <p><xsl:value of select= substring(name ) /></p> 说明 代码的用途是截取name元素的值 从第一个字母开始显示到第三个
sum()功能 作用 求和 举例 <p>Total Price = <xsl:value of select= sum(//price) /></p> 说明 代码的用途是计算所有价格的和
上面这些功能只是XPath语法中的一部分 还有大量的功能函数没有介绍 而且目前XPath的语法仍然在不断发展中 通过这些函数我们可以实现更加复杂的查询和 *** 作
lishixinzhi/Article/program/ASP/201311/21862最近在自学JAVA的过程中,偶然想到了做个爬虫程序,经过简单的对比,发现了WebMagic这个库,在使用库的过程中因为涉及到正则表达式和XPATH,所以做个笔记,记录一下,否则稍微过段时间不看就忘记了。
以内涵社区为例,打开 内涵社区 ,然后右键“检查”(Chrome浏览器,得到如下html,这里只截取其中一部分作为示例)
然后,开始我们的爬虫程序:
创建一个类GithubRepoPageProcessor(为什么叫Github...因为跟着写demo的时候创建的,懒得修改了)继承PageProcessor,并实现方法:
好,那么这里就要用正则和XPATH提取我们需要的内容了:
先来看下正则表达式的常用字符:
接下来使用上面的html文件依次举例:
1、获取所有的数字
扩展例子:
2、获取所有p标签里的内容
3、获取所有的href内容
分析GithubRepoPageProcessor里面的内容:
创建MainApp写入main方法并调用运行
最终效果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)