【问题标题】:SoapUI Assertion failed to validate Double to IntSoapUI 断言无法将 Double 验证为 Int
【发布时间】:2017-01-30 09:52:50
【问题描述】:

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

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

<KI_VALUE>21</KI_VALUE>

我的预期结果:${#TestCase#VALUE1} 这给了我 21.0。我怎么能把它四舍五入到21?当我尝试放置圆形函数时,它引用它,因为它是字符串输出的一部分。

【问题讨论】:

  • meitale,请查看答案,看看是否有帮助。

标签: groovy soapui assertion


【解决方案1】:

XPath 支持round()。将其添加到您的表达式中:

round(//Results/ResultSet/Row[@rowNumber="1"]/KI_VALUE)

见:XPath Specification, 4.4 Number Functions, Function round

【讨论】:

    【解决方案2】:

    你应该可以使用xpath的starts-with函数,这样就可以匹配所有的起始值了。

    SoapUI 属性被读取为字符串值,因此不能使用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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 2019-08-18
      相关资源
      最近更新 更多