我如何根据我的喜好对肥皂的响应进行分类



在此处输入图像描述

我想先根据逻辑"数字"数字对"名称"部分进行排序,然后是大写字母,然后是小字母"。我该如何完成?

更多信息会很好。乍一看,看来您正在寻找Xquery断言。这将不会订购或修改响应,但是它将在主张中转换响应,以将其与您控制的顺序相匹配。

什么时候使用它?当您不确定您获得实体的顺序时,并且要将这些动态排序的项目与固定集匹配。

可以在此处找到一个示例:http://readyapi.smartbear.com/structure/assertions/property/xpath/xquery/xquery/example

我将尝试以一些示例作为参考组成一个示例项目。

一件事:不要在Soapui网站上停止示例。你可以发疯。您可以使用XPath检索的所有内容,您可以在Xquery中使用。

示例:假设有一个xml,从此来源(这里也有用,请注意您( - xquery示例

<?xml version="1.0"?>
<?xml-stylesheet href="catalog.xsl" type="text/xsl"?>
<!DOCTYPE catalog SYSTEM "catalog.dtd">
<catalog>
   <product description="Cardigan Sweater" product_image="cardigan.jpg">
      <catalog_item gender="Men's">
         <item_number>QWZ5671</item_number>
         <price>39.95</price>
         <size description="Medium">
             <color_swatch image="red_cardigan.jpg">Red</color_swatch>
             <color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
         </size>
         <size description="Large">
             <color_swatch image="red_cardigan.jpg">Red</color_swatch>
             <color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
         </size>
     </catalog_item>
     <catalog_item gender="Women's">
         <item_number>RRX9856</item_number>
         <price>42.50</price>
         <size description="Small">
             <color_swatch image="red_cardigan.jpg">Red</color_swatch>
             <color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
             <color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
         </size>
         <size description="Medium">
             <color_swatch image="red_cardigan.jpg">Red</color_swatch>
             <color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
             <color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
             <color_swatch image="black_cardigan.jpg">Black</color_swatch>
         </size>
         <size description="Large">
             <color_swatch image="navy_cardigan.jpg">Navy</color_swatch>
             <color_swatch image="black_cardigan.jpg">Black</color_swatch>
         </size>
         <size description="Extra Large">
             <color_swatch image="burgundy_cardigan.jpg">Burgundy</color_swatch>
             <color_swatch image="black_cardigan.jpg">Black</color_swatch>
         </size>
     </catalog_item>
 </product>
</catalog>

现在假设您不知道这些事情到达哪个顺序。您确实知道测试数据本身非常稳定。这可能意味着此查询检索到的项目编号很可能是相同的。为了我们的缘故,假设您要测试价格为预期的价格。

那么您有两个选择:1.为您期望的每个项目创建一个单独的XPATH2.使用Xquery创建可验证的查询(您可以在断言下找到(

Xquery示例:

<results>
    {
        for $item in //catalog/product/catalog_item
        let $id := $item/item_number
        let $price := $item/price
        order by $id
        return
            <price itemId='{data($id)}'>{data($price)}</price>
    }
</results>

此查询的结果是:

<results>
     <price itemId='QWZ5671'>39.95</price>
     <price itemId='RRX9856'>42.50</price>
 </results>

使用该行for $item in //catalog/product/catalog_item,我告诉Xquery通过该地址在所有元素上迭代。变量 $item可以进一步使用。这似乎在这里似乎徒劳无功,但是在更复杂的情况下,模块化是您的朋友。在行之外,我定义了更多变量。您不必这样做,但是我想变得更详细,而不是以后看不到我在做什么(我是功能性测试仪(。要分配变量,请使用语句let $id := $item/item_number。如您所见,当我更深入地挖掘XML时,我重复了我迭代的父母。

执行某些功能时,我们需要使用"边界" {}定义功能。注意:检索实际数据的功能是{data(variable with path or path here)}

本质上,您甚至不需要包含项目ID。您可以订购一个值,而无需将其包含在返回的输出中。我个人喜欢它在我的集合中验证以后的差异。

至于数字,然后是资本,然后是小帽子,我不知道您是否使用正确的工具来工作。我确定这是可能的。但是鉴于您可以相信Soapui每次都以相同的方式对Xquery进行分类小帽子。目的是验证从响应中取出时始终排序的集合。

从本质上讲,要校准断言,您将用模拟来喂食预期输出的示例XML。然后,在"断言配置"屏幕中,您可以选择使用您设计的Xquery从响应XML获取预期输出。

如果确实是您所描述的那种本质,请详细说明。

Xquery的来源:

  • https://en.wikibooks.org/wiki/xquery/searching,paging_and_sortinghttps://www.w3schools.com/xml/xquery_intro.asphttps://www.w3schools.com/xml/xpath_intro.asp

笨重,仍然不完整,但可能是解决问题的核心的方法:用肥皂本机构验证始终排序的响应。

最新更新