空手道 - XML 使用正则表达式断言数字
Karate - XML Assertion with regex for a number
对于以下数据,
<Document xmlns="http://www.mycompany.net/xyz/2.2">
<Placemark>
<ExtendedData>
<Data name="Value">
<value>6.5</value>
</Data>
<Data name="Direction">
<value>77</value>
</Data>
</ExtendedData>
<Point>
<coordinates>0,-25.2</coordinates>
</Point>
</Placemark>
<Placemark>
<ExtendedData>
<Data name="Value">
<value>7.0</value>
</Data>
<Data name="Direction">
<value>101</value>
</Data>
</ExtendedData>
<Point>
<coordinates>3.6,-25.2</coordinates>
</Point>
</Placemark>
</Document>
我正在尝试验证 XML 中有数字的坐标。我尝试使用正则表达式,但仍然失败
When def xmld = read('classpath:rough/GriddedElementResponse.xml')
* match $xmld/Document/Placemark[*]/Point/coordinates == "#[] #string"
# Above gets passed as the numbers are inside quotes
* match $xmld/Document/Placemark[*]/Point/coordinates == "#regex [\d \. \, \-]"
在空手道中因以下错误而失败,但通过了 here。
org.opentest4j.AssertionFailedError:
match failed: EQUALS
$ | not a string (LIST:STRING)
["0,-25.2","3.6,-25.2"]
'#regex [\d \. \, \-]'
您有2个字符串的列表,请注意错误提示。
试试这个:
* match each $xmld/Document/Placemark[*]/Point/coordinates == '#regex \d+(\.\d+)?,-?\d+(\.\d+)'
对于以下数据,
<Document xmlns="http://www.mycompany.net/xyz/2.2">
<Placemark>
<ExtendedData>
<Data name="Value">
<value>6.5</value>
</Data>
<Data name="Direction">
<value>77</value>
</Data>
</ExtendedData>
<Point>
<coordinates>0,-25.2</coordinates>
</Point>
</Placemark>
<Placemark>
<ExtendedData>
<Data name="Value">
<value>7.0</value>
</Data>
<Data name="Direction">
<value>101</value>
</Data>
</ExtendedData>
<Point>
<coordinates>3.6,-25.2</coordinates>
</Point>
</Placemark>
</Document>
我正在尝试验证 XML 中有数字的坐标。我尝试使用正则表达式,但仍然失败
When def xmld = read('classpath:rough/GriddedElementResponse.xml')
* match $xmld/Document/Placemark[*]/Point/coordinates == "#[] #string"
# Above gets passed as the numbers are inside quotes
* match $xmld/Document/Placemark[*]/Point/coordinates == "#regex [\d \. \, \-]"
在空手道中因以下错误而失败,但通过了 here。
org.opentest4j.AssertionFailedError:
match failed: EQUALS
$ | not a string (LIST:STRING)
["0,-25.2","3.6,-25.2"]
'#regex [\d \. \, \-]'
您有2个字符串的列表,请注意错误提示。
试试这个:
* match each $xmld/Document/Placemark[*]/Point/coordinates == '#regex \d+(\.\d+)?,-?\d+(\.\d+)'