本主题说明如何配置和应用 XML 排序工具,该工具可递归地或根据选定的排序目标和排序关键节点对 XML 进行排序。

本章包含:

了解 XML 排序

许多服务在每次调用服务时都以不同的顺序返回结果列表。元素的这种随机顺序使得在测试用例中定义验证变得很有挑战性。XML 排序工具就是为了解决这个问题而设计的。例如,它可以用于获取 Parasoft 书店服务返回的图书条目,按价格重新排序,并对每个图书条目下的作者列表按字典顺序进行排序。XML 排序工具可以链接到其他 XML 工具的输出,例如 SOAP 客户机的 SOAP 响应。添加工具并定义所需的排序之后,它将输出根据指定配置排序的 XML 内容。然后可以使用 XML 断言器、差异或其他验证工具对排序后的内容进行验证。

Recursive XML sort 选项将递归地对所有节点排序(例如,在扩散之前删除排序)。首先,它根据类型对节点进行排序:首先是文本节点,然后是处理指令,最后是元素。元素属性首先按名称排序,然后按值排序。元素首先按元素名排序,然后按属性名/值排序,然后按文本内容排序,最后按使用相同标准的子节点排序。文本节点彼此之间的顺序不变。  处理指令按其目标和数据值排序。

Custom XML sort 允许你在此工具中定义一个或多个排序指令。如果定义了多个排序指令,那么 XML 文档将首先根据第一条指令进行排序,然后再根据第二条指令进行排序,依此类推。每条排序指令的目的是对一组标记为“排序目标”的元素进行排序,这些目标元素使用该指令中定义的排序关键条件进行排序。

配置 XML 排序

若要配置 XML 排序工具:

  1. 请添加一个 XML 排序工具作为另一个工具(如 SOAP 客户机或消息传递客户机)的输出。为了简化配置过程,建议你:
    • 首先调用其他工具,以便可以在流量查看器中捕获流量;响应消息将帮助你稍后配置排序(基于从服务返回的示例消息)-或-
    • 如果你不能运行它,那么尝试使用 WSDL、模式或请求消息(如果可能的话)配置客户机。
  2. 指定要使用的排序模式。
    • 若要递归地对所有节点排序,请选择 Recursive XML sort。在这种情况下,不需要额外的配置。
    • 若要定义一个或多个排序指令,请选择 Custom XML sort,然后继续执行以下步骤。
  3. 单击 XML 排序工具编辑器中的 Add 。将启动一个向导来帮助你定义需要排序的元素列表。配置之后,当根据 XML 排序工具的 XML 输入进行计算时,目标 Xpath 字段应该返回一个节点列表。这是将被排序的节点列表。
  4. 在向导的第一个页面中,单击 Modify,然后执行以下其中一个操作:
    • 如果执行第 1 步,XPath 编辑器将使用示例消息填充,以帮助你可视化地构造 XPath。在这种情况下,应该选择需要排序的节点的父节点。可以调整生成的 Xpath 表达式并使用 Evaluate Xpath 按钮对它进行测试。
      -或-
    • 如果没有执行步骤 1,就无法知道 XML 应该是什么样子。在这种情况下,需要手动提供 XPath。




  5. 在向导中单击 Next ,然后定义目标元素应该如何排序(即指定应该用作排序键的目标元素下的节点)。注意:
    • 默认情况下,将添加一个使用目标元素文本内容作为键的条目。




    • 可以通过单击 Modify 按钮并自定义键 Xpath 来修改默认条目。
    • 如果执行了第 1 步,那么编辑器生成的 XPaths 将相对于目标元素。换句话说,它将表示从单个目标节点开始的 XPath 查询。相反,可以配置绝对 XPath 表达式。如果这样做,请确保它们基于整个 XML 内容根节点。
    • 可以将其他密钥 XPaths 配置为辅助和三元排序密钥。这意味着将根据第一个 XPath 键对目标元素排序,然后根据第二个 XPath 键对具有匹配键的元素排序,依此类推。
  6. 单击 Finish 完成向导。
  • No labels