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

  1. 基本语法

  1. 使用示例
  • 根据元素属性定位
<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

扫一扫,关注我

最新文章

  1. .NET Core的日志[2]:将日志输出到控制台
  2. C++ STL简述
  3. 安装Hive(独立模式 使用mysql连接)
  4. netstat监控大量ESTABLISHED连接与Time_Wait连接问题
  5. c++代码模板
  6. JavaScript之工厂方式 构造函数方式 原型方式讲解
  7. javascript笔记 面向对象
  8. ZOJ-2112-Dynamic Rankings(线段树套splay树)
  9. json对象和json字符串转换方法
  10. 学习VC MFC开发必须了解的常用宏和指令
  11. 用golang写的 分解x86 intel boot/recovery工具
  12. ConfirmCancelDialog【确认取消对话框】
  13. AngularJS 1.x系列:Node.js安装及npm常用命令(1)
  14. 吴恩达机器学习笔记49-主成分分析问题(Principal Component Analysis Problem Formulation)
  15. 【Go】优雅的读取http请求或响应的数据
  16. UCloud首尔机房整体热迁移是这样炼成的
  17. javascript arguments参数问题
  18. CodeForces - 429A Xor-tree
  19. websocket介绍 以及 vue websocket使用案例
  20. [转][C#][WebApi]

热门文章

  1. HDU 6609 离散化+权值线段树
  2. Federated Learning: Challenges, Methods, and Future Directions
  3. 通过索引优化sql
  4. 【转】Echarts自适应
  5. Linux环境编程进程间通信机制理解
  6. vue 使用 sass 或者 less ( vue-cli 3 )
  7. 【Maven】Mac操作系统下安装配置maven环境变量
  8. Resources.UnloadUnusedAssets
  9. Codeforces1365
  10. Google Code Jam 2020 Round1B Expogo