zoukankan      html  css  js  c++  java
  • 测试工具-XPath使用

    XML有两种MIME类型,即application/xml和text/xml,在HTTP中,MIME Type类型被定义在Content-Type header中。我们经常也会看到接口返回数据类型为XML格式。功能测试/自动化脚本里,经常会需要提取xml数据,用作上下文使用或者用作断言校验。使用XPath可以很好的完成对XML的查找、提取和使用,同样也支持HTML元素的解析。

    JMeter的XPath提取器

    image

    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. 基本语法

    image

    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 
    

    扫一扫,关注我

  • 相关阅读:
    iOS_UIImage的方向(imageOrientation)
    iOS-LaunchImage启动页
    iOS_UIImage_毛玻璃效果
    iOS_常用C语言函数
    iOS_UIImage_Gif的合成
    iOS_UIImage_Gif的分解
    iOS_UIImge_Gif的展示
    iOS_UIImage_jpg<-->png转换
    Mysql学习第三天
    Mysql学习第二天
  • 原文地址:https://www.cnblogs.com/hally/p/13735326.html
Copyright © 2011-2022 走看看