SoapUI Assertion无法验证Double to Int

时间:2017-01-30 09:52:51

标签: groovy soapui assertion

我有属性,其值为21.0,有时我需要断言为21.0,有时为21

我有xpath: //Results/ResultSet/Row[@rowNumber="1"]/KI_VALUE 我想要我的结果显示:

<KI_VALUE>21</KI_VALUE>

我的预期结果:${#TestCase#VALUE1}给我21.0。我怎么能把它变成21?当我试图把它的函数放在它时它引用它,因为它是字符串输出的一部分。

2 个答案:

答案 0 :(得分:0)

XPath支持public void onResponse(JSONObject response) { eta = parseGoogleData(response); userData.get(index).setEta(eta);//add this setter to your data object if not exist. adapter.notifyDataSetChanged(); } 。将其添加到表达式中:

round()

请参阅:XPath Specification, 4.4 Number Functions, Function round

答案 1 :(得分:0)

您应该能够使用xpath的starts-with函数,以便它可以匹配所有起始值。

SoapUI属性被读取为String值,因此不能使用round函数。

XPath断言方式:

将XPath断言定义为:

starts-with(//Results/ResultSet/Row[@rowNumber="1"]/KI_VALUE, ${#TestCase#VALUE1})

并将预期值用作true

如果您想使用数字匹配它,那么您可以使用Script Assertion,以便可以在数学上进行比较。

脚本断言方式:

import com.eviware.soapui.support.XmlHolder
def xml = new XmlHolder(context.response)
//change the xpath as per the need
def responseValue = xml.getNodeValue("//Results/ResultSet/Row[@rowNumber="1"]/KI_VALUE") as Double
//change the property name as needed
def expectedValue = context.testCase.getPropertyValue('VALUE1') as Double

assert expectedValue == responseValue, "Both actual and expected KI_VALUE are not matching"