如图所示,ul下一共有7个li子标签1、假如要选取上图中的所有的li标签xpath表达式可以是//ul[@class="menu"]/li2、假如要选取第1个li标签xpath表达式可以是.//ul[@class="menu"]/li[1]3、假如要选取第2、3、4个li标签xpath表达式可以是//ul[@class="menu"]/li[posit...
Xpath
常用的
定位
方法
相信做过selenium UI自动化的朋友都知道,工作中大部分的元素
定位
都是使用
xpath
进行
定位
,所以
xpath
是UI自动化工作中非常重要的一个环节,所以我单独整理出来一篇博客出来~~希望对大家有帮助~
last()方法
当
标签
存在多个相同的时候,可以使用
xpath
中的last()方法,
定位
到最后一个
//
标签
名[last()]
//span/ul//li[last()]
如果我们要
定位
到倒数第二个,可以在last() 后面加上 -1,代表倒数第二个
//
标签
名[last(
xpath
定位
(全)简介1. 绝对
定位
:2. 相对路径:3.
标签
属性
定位
:4.
XPath
Axes(轴)和Step(步)
xpath
是一种在xm文档中
定位
的语言,详细简介,请自行参照百度百科,本文主要总结一下
xpath
的使用方法,个人看法,如有不足和错误,敬请指出。
注意:
xpath
的
定位
同一级别的多个
标签
索引从1开始 而不是0
XPath
使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。
谓语(Predicates)
谓语用来查找某个
接下来为大家分享以下
xpath
的表达式以及用法。
一.选取节点
Xpath
使用路径表达式在XML文档中选取节点。节点是通过沿着路径来选取的,通过路径可以找到我们想要的节点或者节点
范围
。
nodename
选取此节点的所有子节点。
xpath
(‘span’)
选取span元素的所有子节点
从根节点选取
xpath
(‘/div’)
从根节点上选取div节点
从匹配
选择
的当前节点
选择
文
《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》也可以作为高校开展性能测试课程的参考教材,让在校学生能对性能测试的本质和价值有一定的认识。
《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。
第一步(了解理论):磨刀不误砍柴工,打下基础;第二步(掌握工具):深入介绍LoadRunner 11工具三大部分(Virtual User Generator、Controller、Analysis)如何实现用户行为的模拟、性能指标的监控、负载的生成及后期的数据分析;第三步(项目实施):理论联系实际,介绍性能测试项目实施的流程和性能测试部门的组织管理;第四步(进阶提升):对一些当下流行的或比较特殊的协议和开发技巧通过真实案例进行介绍。
第1章 性能测试基础
1.1 性能测试工程师的标准及挑战
1.1.1 性能测试工程师的考评指标
1.1.2 性能测试工程师的挑战
1.2 性能测试基础
1.2.1 性能定义
1.2.2 性能指标
1.2.3 单机与网络性能测试
1.2.4 性能测试的流程
1.2.5 性能测试招聘要求
1.2.6 性能测试学习阶段
1.3 性能分析与调优
1.3.1 性能分析及调优原理
1.3.2 常见系统性能瓶颈
1.3.3 性能测试的注意要点
1.4 小结
第2章 LoadRunner综述
2.1 LoadRunner简介
2.2 LoadRunner工具组成
2.3 性能测试原理
2.4 自动化测试工具和性能测试工具的区别
2.5 协议分析
2.5.1 HTTP详细介绍
2.5.2 HTTP报文结构
2.5.3 HTTP请求
2.5.4 HTTP应答
2.5.5 HTTP捕获
2.5.6 HTTP回放
2.6 安装
2.6.1 在Windows下安装LoadRunner
2.6.2 安装Load Generator
2.6.3 附加组件
2.6.4 LoadRunner License
2.7 LoadRunner性能测试操作流程预览
2.8 小结
第3章 用户行为模拟
3.1 VuGen界面介绍
3.1.1 Tree图形化模式
3.1.2 脚本模式
3.1.3 Output Window
3.2 录制用户行为
3.2.1 录制流程
3.2.2 协议
选择
3.2.3 录制选项
3.2.4 开始录制
3.2.5 插入命令
3.2.6 结束录制
3.2.7 回放验证
3.2.8 录制回放常见问题
3.3 脚本开发
3.3.1 Action简介
3.3.2 脚本如何注释
3.3.3 语言规则
3.3.4 如何使用模板
3.3.5 脚本的导入导出
3.3.6 脚本调试
3.4 通用选项(General Options)
3.4.1 Parameterization
标签
3.4.2 Replay
标签
3.4.3 Environment
标签
3.4.4 Display
标签
3.4.5 Correlation
标签
3.5 运行设置(Run-Time Setting)
3.5.1 Run Logic
3.5.2 Pacing
3.5.3 Log
3.5.4 Think Time
3.5.5 Additional attributes
3.5.6 Miscellaneous
3.5.7 Speed Simulation
3.5.8 Browser Emulation
3.5.9 Preferences
3.5.10 Download Filters
3.5.11 Data Format Extensions
3.6 参数化
3.6.1 参数化的操作
3.6.2 Parameter List界面介绍
3.6.3 VuGen中的参数
3.6.4 Controller中的参数
3.6.5 同行取值(Same line as)
3.6.6 参数类型
3.6.7 数据向导(Data Wizard)
3.6.8 参数和变量
3.7 关联
3.7.1 关联原理
3.7.2 自动关联
3.7.3 手动关联
3.7.4 一边录制一边关联
3.7.5 关联函数web_reg_save_param_ex详解
3.7.6 关联函数web_reg_save_param_regexp详解
3.7.7 关联函数web_reg_save_param_
xpath
详解
3.7.8 关联函数的高级使用
3.8 检查点
3.8.1 文本检查点
3.8.2 自动检查点
3.8.3 图片检查点
3.9 事务
3.9.1 响应时间
3.9.2 添加事务
3.9.3 事务时间
3.9.4 手工事务
3.10 集合点
3.11 小结
第4章 负载生成及监控Controller
4.1 设计场景
4.1.1 新建场景
4.1.2 负载生成器管理
4.1.3 用户管理
4.1.4 运行设置
4.1.5 IP虚拟
4.1.6 场景运行原理
4.1.7 Service Level Agreement(服务品质保障)
4.2 系统监控
4.2.1 Scenario Groups(场景用户状态)
4.2.2 Scenario Status(场景运行状态)
4.2.3 计数器原理
4.2.4 计数器管理
4.2.5 SiteScope
4.3 场景运行
4.4 QTP脚本在场景中的运行
4.5 场景数据
4.6 小结
第5章 数据收集分析Analysis
5.1 新建Analysis分析
5.2 Analysis Summary
5.2.1 Analysis Summary(场景的摘要)
5.2.2 Statistics Summary(场景状态的统计说明)
5.2.3 5 Worst Transaction(SLA失败事务)
5.2.4 Scenario Behavior Over Time(场景行为综述)
5.2.5 Transaction Summary(事务摘要)
5.2.6 HTTP Responses Summary(HTTP响应摘要)
5.3 Graphs(数据图)
5.3.1 Vusers(虚拟用户状态)
5.3.2 Errors(错误统计)
5.3.3 Transactions(事务)
5.3.4 Web Resources(网页资源信息)
5.3.5 Web Page Diagnostics(网页分析)
5.3.6 Network Monitor(网络监控)
5.3.7 Resources(资源监控)
5.4 图设置与操作
5.4.1 Merge Graphs(合并图)
5.4.2 Auto Correlate(自动
定位
瓶颈)
5.5 Transaction Report(事务报告)
5.6 SLA Report(系统阈值监控报告)
5.7 External Monitor(外部监控数据导入)
5.8 Cross with result(跨脚本横向比较)
5.9 生成测试报告
5.9.1 New Report(新建报告)
5.9.2 Reprt Templates(报告模板)
5.9.3
HTML
报告
5.10 小结
第6章 性能测试实战
6.1 计划测试
6.1.1 分析系统阶段
6.1.2 定义测试目标
6.1.3 明确定义概念
6.1.4 编写性能测试计划
6.1.5 编写性能测试方案
6.1.6 编写性能测试用例
6.2 搭建测试环境
6.2.1 测试平台评估
6.2.2 数据生成
6.2.3 测试环境搭建手册
6.3 创建脚本
6.3.1 用户注册
6.3.2 用户查询
6.3.3 用户看帖
6.3.4 用户回帖
6.4 创建场景
6.4.1 场景设计
6.4.2 负载监控
6.5 运行场景
6.5.1 场景运行Checklist
6.5.2 场景运行记录
6.6 分析性能数据
6.6.1 性能调优原理
6.6.2 前端性能分析
6.6.3 后端性能分析
6.7 性能测试报告
6.7.1 平台对比性能测试报告
6.7.2 Phpwind85性能分析报告
6.7.3 DiscuzX2 VS Phpwind85性能对比报告
6.7.4 Phpwind85验收指标性能测试报告
6.7.5 Phpwind85压力测试报告
6.8 小结
第7章 性能测试组织
7.1 性能测试团队
7.2 性能测试流程分工
7.3 配置管理
7.4 性能测试自动化
7.5 小结
第8章 高级脚本开发
8.1 AJAX
Jsoup
Xpath
是一款纯Java开发的使用
xpath
解析
html
的解析器,
xpath
语法分析与执行完全独立,
html
的DOM树生成借助Jsoup,故命名为Jsoup
Xpath
.为了在java里也享受
xpath
的强大与方便但又苦于找不到一款足够强大的
xpath
解析器,故开发了Jsoup
Xpath
。Jsoup
Xpath
的实现逻辑清晰,扩展方便,支持几乎全部常用的
xpath
语法.http://www.cnblogs.com/ 为例
"//a/@href";
"//div[@id='paging_block']/div/a[text()='Next >']/@href";
"//div[@id='paging_block']/div/a[text()*='Next']/@href";
"//h1/text()";
"//h1/allText()";
"//h1//text()";
"//div/a";
"//div[@id='post_list']/div[
position
()1000]/div/h3/allText()";
//轴支持
"//div[@id='post_list']/div[self::div/div/div/span[@class='article_view']/a/num()>1000]/div/h3/allText()";
"//div[@id='post_list']/div[2]/div/p/preceding-sibling::h3/allText()";
"//div[@id='post_list']/div[2]/div/p/preceding-sibling::h3/allText()|//div[@id='post_list']/div[1]/div/h3/allText()";
在这里暂不列出框架间的对比了,但我相信,你们用了会发现Jsoup
Xpath
就是目前市面上最强大的的
Xpath
解析器。
如果不方便使用maven,可以直接使用lib下的依赖包跑起来试试,如方便可直接使用如下dependency(已经上传至中央maven库,最新版本0.1.1):
cn.wanghaomiao
Jsoup
Xpath
0.1.1
依赖配置好后,就可以使用如下例子进行体验了!String
xpath
="//div[@id='post_list']/div[./div/div/span[@class='article_view']/a/num()>1000]/div/h3/allText()";String doc = "...";
JXDocument jxDocument = new JXDocument(doc);
List<Object> rs = jxDocument.sel(
xpath
);
for (Object o:rs){
if (o instanceof Element){
int index = ((Element) o).siblingIndex();
System.out.println(index);
System.out.println(o.toString());
其他可以参考 cn.wanghaomiao.example包下的例子
支持标准
xpath
语法(支持谓语嵌套),支持全部常用函数,支持全部常用轴,去掉了一些标准里面华而不实的函数和轴,下面会具体介绍。语法可以参考http://www.w3school.com.cn/
xpath
/index.asp
关于使用
Xpath
的一些注意事项
非常不建议直接粘贴Firefox或chrome里生成的Xpa
django.db.utils.InternalError: (1050, "Table 'django_content_type' already exists")
香草味灬布丁:
Python中os.mkdir()与os.makedirs()的区别及用法
不吃香菜的小趴菜:
unrecognized options: --with-ssl
李逍遥xy:
windows无法启动redis服务错误1067
m0_74227515:
pyinstaller、jieba、wordcloud打包exe过程中遇到的问题总结一下
feizhaoqianjin: