• 测试工具-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 
    

    扫一扫,关注我

  • 相关阅读:
    ASC1 C New Year Bonus Grant
    CodeForces 180C Letter
    Codeforces 71C Round Table Knights
    GCPC2014 J Not a subsequence
    treeview自动从表中添加标题和列值做目录的方法2
    delphi学习treeview中从表列名和数据添加为目录并双击自动选中
    对一个表中所有列数据模糊查询adoquery
    单击dbgrid列标题排序 升降序
    从右键菜单里粘贴复制的工资到数据库里
    如何从右键弹出菜单中清空删除数据加清空前提问确定
  • 原文地址:https://www.cnblogs.com/hally/p/13735326.html
Copyright © 2020-2023  润新知