测试工具-XPath使用
2024-10-09 16:35:48
XML有两种MIME类型,即application/xml和text/xml,在HTTP中,MIME Type类型被定义在Content-Type header中。我们经常也会看到接口返回数据类型为XML格式。功能测试/自动化脚本里,经常会需要提取xml数据,用作上下文使用或者用作断言校验。使用XPath可以很好的完成对XML的查找、提取和使用,同样也支持HTML元素的解析。
JMeter的XPath提取器
XPath页面的参数介绍
Apply to:作用范围(返回内容的断言范围)
Main sample and sub-samples:作用于父节点的取样器及对应子节点的取样器
Main sample only:仅作用于父节点的取样器
Sub-samples only:仅作用于子节点的取样器
JMeter Variable:作用于jmeter变量(输入框内可输入jmeter的变量名称)
XML Parsing Options:要解析的XML参数
UseTidy:当需要处理的页面是HTML格式时,必须选中该选项;如果是XML或XHTML格式(例如RSS返回),则取消选中;
Quiet:表示只显示需要的HTML页面,
报错异常:Report errors表示显示响应报错,
显示警告:Show warnings表示显示警告;
Use Namespaces:如果启用该选项,后续的XML解析器将使用命名空间来分辨;
Validate XML:根据页面元素模式进行检查解析;
Ignore Whitespace:忽略空白内容;
Fetch external DTDs:如果选中该项,外部将使用DTD规则来获取页面内容;
Return entire XPath fragment of text content:返回文本内容的整个XPath片段;
引用名称Reference Name:存放提取出的值的参数。
XPath Query:用于提取值的XPath表达式。
匹配数字:取第几个匹配结果,0随机,-1全部,1代表第一个,2代表第二个,....以此类推
默认值 Default Value:参数的默认值。
如何编写XPath
- 基本语法
- 使用示例
- 根据元素属性定位
<span class="x-bw" style=""></span>
选取属性class的属性值为x-bw的所有节点
//span[@class='x-bw']
- 层级属性结合定位
查找某元素内部的所有元素,选取div 元素内部的所有span
//div[@id="divId"]//span
第二个双斜杠,表示选取内部所有的 span,不管层级关系
- 使用谓语定位
查找倒数第几个子元素,选取form下的倒数第一个span
//form[@id="form"]/span[last()-1]
- 使用逻辑运算符
查找name属性为wd或者class属性为 s_ipt 的任意元素,取其中之一满足即可
//*[@name='wd' or @class='s_ipt']
- 使用文本定位
contains 选取属性或者文本包含某些字符
starts-with 选取属性或者文本以某些字符开头
ends-with 选取属性或者文本以某些字符开头
//div[contains(@id, 'divId')] 选取id 属性包含divId的div元素
Java的XPath工具包
Java自带一个XPath工具包javax.xml.xpath
Python的XPath工具包
pip install scrapy
扫一扫,关注我
最新文章
- .NET Core的日志[2]:将日志输出到控制台
- C++ STL简述
- 安装Hive(独立模式 使用mysql连接)
- netstat监控大量ESTABLISHED连接与Time_Wait连接问题
- c++代码模板
- JavaScript之工厂方式 构造函数方式 原型方式讲解
- javascript笔记 面向对象
- ZOJ-2112-Dynamic Rankings(线段树套splay树)
- json对象和json字符串转换方法
- 学习VC MFC开发必须了解的常用宏和指令
- 用golang写的 分解x86 intel boot/recovery工具
- ConfirmCancelDialog【确认取消对话框】
- AngularJS 1.x系列:Node.js安装及npm常用命令(1)
- 吴恩达机器学习笔记49-主成分分析问题(Principal Component Analysis Problem Formulation)
- 【Go】优雅的读取http请求或响应的数据
- UCloud首尔机房整体热迁移是这样炼成的
- javascript arguments参数问题
- CodeForces - 429A Xor-tree
- websocket介绍 以及 vue websocket使用案例
- [转][C#][WebApi]
热门文章
- HDU 6609 离散化+权值线段树
- Federated Learning: Challenges, Methods, and Future Directions
- 通过索引优化sql
- 【转】Echarts自适应
- Linux环境编程进程间通信机制理解
- vue 使用 sass 或者 less ( vue-cli 3 )
- 【Maven】Mac操作系统下安装配置maven环境变量
- Resources.UnloadUnusedAssets
- Codeforces1365
- Google Code Jam 2020 Round1B Expogo