如何在SOAP UI的测试用例XPATH上获取节点

萨米

在玩SOAP UI入门教程时,我陷入了困境,因为我无法为简单测试生成断言条件。
我正在使用XPATH方法来测试以下SOAP消息:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <GetCitiesByCountryResponse xmlns="http://www.webserviceX.NET">
            <GetCitiesByCountryResult><![CDATA[<NewDataSet>
      <Table>
        <Country>Belarus</Country>
        <City>Riga Airport</City>
      </Table>
      <Table>
        <Country>Mauritius</Country>
        <City>Plaisance Mauritius</City>
      </Table>
      <Table>
        <Country>Mauritius</Country>
        <City>Rodrigues</City>
      </Table>
      <Table>
        <Country>Cyprus</Country>
        <City>Ercan</City>
      </Table>
      <Table>
        <Country>Cyprus</Country>
        <City>Larnaca Airport</City>
      </Table>
      <Table>
        <Country>Cyprus</Country>
        <City>Athalassa</City>
      </Table>
      <Table>
        <Country>Cyprus</Country>
        <City>Paphos Airport</City>
      </Table>
      <Table>
        <Country>Cyprus</Country>
        <City>Akrotiri</City>
      </Table>
      <Table>
        <Country>Austria</Country>
        <City>Niederosterreich / Lugplatz  Vos</City>
      </Table>
      <Table>
        <Country>Austria</Country>
        <City>Graz-Thalerhof-Flughafen</City>
      </Table>
      <Table>
        <Country>Austria</Country>
        <City>Innsbruck-Flughafen</City>
      </Table>
      <Table>
        <Country>Austria</Country>
        <City>Klagenfurt-Flughafen</City>
      </Table>
      <Table>
        <Country>Austria</Country>
        <City>Linz / Hoersching-Flughafen</City>
      </Table>
      <Table>
        <Country>Austria</Country>
        <City>Salzburg-Flughafen</City>
      </Table>
      <Table>
        <Country>Austria</Country>
        <City>Wien / Schwechat-Flughafen</City>
      </Table>
      <Table>
        <Country>Austria</Country>
        <City>Aigen Im Ennstal</City>
      </Table>
      <Table>
        <Country>Austria</Country>
        <City>Horsching Aus-Afb</City>
      </Table>
      <Table>
        <Country>Austria</Country>
        <City>Schwaz Heliport</City>
      </Table>
      <Table>
        <Country>Austria</Country>
        <City>Tulln</City>
      </Table>
      <Table>
        <Country>Austria</Country>
        <City>Zeltweg</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Jakutsk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Cul'Man</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Ekimchan</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Habarovsk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Troickoe</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Anadyr</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Buhta Providenja</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Magadan</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Petropavlovsk-Kamchatskij</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Juzhno-Sahalinsk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Vladivostok</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Chita</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Irkutsk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Ust'Ordynskij</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Bodajbo</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Kirensk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Nizhneudinsk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Horinsk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Ulan-Ude</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Arhangel'Sk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Kotlas</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>St. Peterburg</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Murmansk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Velikie Luki</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Tot'Ma</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Vologda</City>
      </Table>
      <Table>
        <Country>Belarus</Country>
        <City>Vitebsk</City>
      </Table>
      <Table>
        <Country>Belarus</Country>
        <City>Minsk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Barnaul</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Enisejsk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Novosibirsk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Krasnodar</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Mineral'Nye Vody</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Rostov-Na-Donu</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Adler</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Elista</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Volgograd</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Hanty-Mansijsk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Surgut</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Ekaterinburg</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Brjansk</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Moscow / Sheremet'Ye</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Tver</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Voronez</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Moscow / Vnukovo</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Ust', Kulom</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Syktyvkar</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Penza</City>
      </Table>
      <Table>
        <Country>Russian Federation</Country>
        <City>Samara</City>
      </Table>
      <Table>
        <Country>Brunei Darussalam</Country>
        <City>Brunei Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Archerfield Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Amberley Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Alice Springs Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Brisbane Airport M. O</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Coolangatta Airport Aws</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Cairns Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Charleville Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Gladstone</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Longreach Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Mount Isa Amo</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Mackay Mo</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Oakey Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Proserpine Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Rockhampton Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Broome Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Townsville Amo</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Weipa City</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Gove Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Tennant Creek Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Yulara Aws</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Albury Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Devonport East</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Goldstream Aws</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>East Sale Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Hobart Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Launceston Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Laverton Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Moorabbin Airport Aws</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Mount Gambier Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Mildura Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Melbourne Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Macquarie Island</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Wynyard West</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Adelaide Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Albany Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Broken Hill Patton Street</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Ceduna Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Derby</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Darwin Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Bullsbrook Pearce Amo</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Edinburgh M. O.</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Forrest Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Geraldton Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Kalgoorlie Boulder Amo</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Kununurra Kununurra Aws</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Leigh Creek Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Learmonth Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Meekatharra Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Port Hedland Pardoo</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Parafield Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Belmont Perth Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Katherine Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Woomera Aerodrome</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Bankstown Airport Aws</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Canberra</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Coffs Harbour Mo</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Cooma</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Camden Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Dubbo</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Norfolk Island Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Nowra Ran Air Station</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Richmond Aus-Afb</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Sydney Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Tamworth Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Wagga Airport</City>
      </Table>
      <Table>
        <Country>Australia</Country>
        <City>Williamtown Aerodrome</City>
      </Table>
    </NewDataSet>]]></GetCitiesByCountryResult>
        </GetCitiesByCountryResponse>
    </soap:Body>
</soap:Envelope>

如何找到通往City-Rodrigues的XPath? 我正在使用这个:

// :GetCitiesByCountryResponse /:GetCitiesByCountryResult / :NewDataSet /:Table [1] / *:City [1]

并给出错误XPathContains断言路径失败的错误:xpath缺少内容[声明名称空间soap =' http://schemas.xmlsoap.org/soap/envelope/ '; 声明名称空间ns1 =' http://www.webserviceX.NET '; // :GetCitiesByCountryResponse /:GetCitiesByCountryResult / :NewDataSet /:Table [1] / *:City [1]]

就像注释中提到的那样,请使用Script Assertion而不是现有的Xpath断言。话虽如此,您不必使用以下脚本为测试用例添加任何其他测试步骤。只需为SOAP Request获得上述响应的同一测试步骤添加脚本断言即可
请遵循在线注释。

/**
* This is script assertion for the soap request test step.
* Extracts CDATA of response first.
* Later checks if the xpath is ok
**/
//Closure to extract data of given node name
def searchData = { data, element ->
   def parsedData = new XmlSlurper().parseText(data)
   parsedData.'**'.find {it.name() == element} as String
}

//Closure to check the xpath
def searchByXpath = {data, xpath ->
   def holder = new com.eviware.soapui.support.XmlHolder(data)
   def xpathResult = holder.getNodeValue(xpath)
   log.info "Xpath result : ${xpathResult}"
   xpathResult
}

//check if the response is non empty
assert context.response, "Response is empty or null"

//Gets the CDATA part of the response
def cdata = searchData(context.response, 'GetCitiesByCountryResult')

//Gets the xpath result
def cityName = 'Rodrigues'
def result = (searchByXpath(cdata, "//Table/City[. = '$cityName']/text()") == cityName) ? true : false 
log.info "Is city ${cityName} exist in the table: ${result}" 

//Check the xpath result is true(i.e., given city name exists in the table)
assert result, "${cityName} does not exist in the result table"

以上是对现有城市的测试。

万一,如果您想做一个消极的测试,即一个城市不应该存在,请使用下面的代码片段。

例如,假设San Francisco表中没有City并要声明。

/**
* Demonstration of negative assertion
* Given city should not exists
**/
def cityName1 = 'San Francisco'
def result1 = (searchByXpath(cdata, "//Table/City[. = '$cityName1']/text()") == cityName1) ? true : false
log.info "Is city ${cityName1} exist in the table: ${result1}" 

//Check the xpath result is false (i.e., given city name does not exist in the table)
assert !result1, "${cityName1} exists in the result table"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在SOAP UI测试用例XPATH上获取节点时出错

来自分类Dev

在SOAP UI测试用例XPATH上获取节点时出错

来自分类Dev

如何在groovy脚本中访问SOAP请求-SOAP UI

来自分类Dev

即使 SOAP UI 中的测试用例在继续之前清理失败,如何调用某些步骤?

来自分类Dev

如何使用 Windows 10 机器作为集线器,MAC 机器作为节点,在 Selenium Grid 上的 Safari 上运行测试用例

来自分类Dev

如何为Junit测试用例编写xPath

来自分类Dev

如何在SOAP UI中复制测试步骤的原始请求?

来自分类Dev

如何在SOAP UI中复制测试步骤的原始请求?

来自分类Dev

如何在两个不同的节点中运行单个硒测试用例?

来自分类Dev

如何加快Xcode中的UI测试用例?

来自分类Dev

如何使用RallyAPI获取测试用例的结果?

来自分类Dev

如何在iOS Xcode UI测试用例中启动系统应用

来自分类Dev

如何在UI测试用例中检查XCUIElement的背景颜色?

来自分类Dev

如何在不失败测试用例的情况下等待UI元素

来自分类Dev

如何在soapUI中使用测试用例拆解脚本获取REST请求数据

来自分类Dev

如何在节点soap中添加“命名空间”以请求

来自分类Dev

如何在AIF Soap UI中使用OR创建请求

来自分类Dev

如何在Soap Client输出PHP中仅获取XML

来自分类Dev

如何在REDHAT 5上安装PHP SOAP

来自分类Dev

如何在REST App上使用SOAP Web服务

来自分类Dev

肥皂用户界面 | 如何在没有肥皂信封的 Soap UI 中解析 XML(响应)的节点

来自分类Dev

如何在javascript / node中动态生成测试用例?

来自分类Dev

如何在测试用例中使用AppDelegate?

来自分类Dev

如何在laravel测试用例中模拟xmlHttpRequests?

来自分类Dev

如何在XCTest中运行“单个测试用例”?

来自分类Dev

如何在junit中建立测试用例?

来自分类Dev

如何在Robot框架中跳过特定的测试用例?

来自分类Dev

如何在单元测试用例中退出脚本

来自分类Dev

如何在启动Mocha测试用例之前增加延迟?

Related 相关文章

  1. 1

    在SOAP UI测试用例XPATH上获取节点时出错

  2. 2

    在SOAP UI测试用例XPATH上获取节点时出错

  3. 3

    如何在groovy脚本中访问SOAP请求-SOAP UI

  4. 4

    即使 SOAP UI 中的测试用例在继续之前清理失败,如何调用某些步骤?

  5. 5

    如何使用 Windows 10 机器作为集线器,MAC 机器作为节点,在 Selenium Grid 上的 Safari 上运行测试用例

  6. 6

    如何为Junit测试用例编写xPath

  7. 7

    如何在SOAP UI中复制测试步骤的原始请求?

  8. 8

    如何在SOAP UI中复制测试步骤的原始请求?

  9. 9

    如何在两个不同的节点中运行单个硒测试用例?

  10. 10

    如何加快Xcode中的UI测试用例?

  11. 11

    如何使用RallyAPI获取测试用例的结果?

  12. 12

    如何在iOS Xcode UI测试用例中启动系统应用

  13. 13

    如何在UI测试用例中检查XCUIElement的背景颜色?

  14. 14

    如何在不失败测试用例的情况下等待UI元素

  15. 15

    如何在soapUI中使用测试用例拆解脚本获取REST请求数据

  16. 16

    如何在节点soap中添加“命名空间”以请求

  17. 17

    如何在AIF Soap UI中使用OR创建请求

  18. 18

    如何在Soap Client输出PHP中仅获取XML

  19. 19

    如何在REDHAT 5上安装PHP SOAP

  20. 20

    如何在REST App上使用SOAP Web服务

  21. 21

    肥皂用户界面 | 如何在没有肥皂信封的 Soap UI 中解析 XML(响应)的节点

  22. 22

    如何在javascript / node中动态生成测试用例?

  23. 23

    如何在测试用例中使用AppDelegate?

  24. 24

    如何在laravel测试用例中模拟xmlHttpRequests?

  25. 25

    如何在XCTest中运行“单个测试用例”?

  26. 26

    如何在junit中建立测试用例?

  27. 27

    如何在Robot框架中跳过特定的测试用例?

  28. 28

    如何在单元测试用例中退出脚本

  29. 29

    如何在启动Mocha测试用例之前增加延迟?

热门标签

归档