需要使用Groovy脚本断言从整个数组列表中检查值不应该为Null或0

时间:2019-02-08 10:28:11

标签: groovy soapui

我正在使用API​​,该API提供了Ride预订列表,并且从Json响应中,我需要检查DestinationEstimatedTravelTime不应为0或Null

通过脚本断言预期:它应该扫描所有可用的数组响应,并检查“ DestinationETA”应大于0的条件。

下面是我的回复图片

enter image description here

下面是我使用过的For循环代码。

import groovy.json.JsonSlurper
//grab response
def response = messageExchange.response.responseContent
def jsosl = new JsonSlurper().parseText(response)
for(int i =0 ; i < jsos1.size(); i++)
{
    if(Results[i].DestinationETA == 0 | Results[i].DestinationETA != "Null" )
    {
        log.info("Values are greater than 0")
    }
    else
    {
        log.info("test case Fail  ")
    }
}

enter image description here

2 个答案:

答案 0 :(得分:1)

您的错误是因为您在一个地方叫jsosl,然后在下一个地方叫jsos1

(最后一个字符是小写字母L,然后是1)

您可以将代码更改为:

assert json.Results.every { it.DestinationETA }

在常规情况下,0nullfalse

答案 1 :(得分:0)

我正在为此工作,我自己找到了解决方法

    //Import file
import groovy.json.JsonSlurper
import com.eviware.soapui.model.testsuite.TestRunner.*
import com.eviware.soapui.model.testsuite.*
import com.eviware.soapui.model.*
//Grab Response
def response = messageExchange.response.responseContent
def json = new groovy.json.JsonSlurper().parseText(response)
//take count 
def count = json.Results.size()
for(int i=0; i<count; i++) //loop to traverse to each object 
{
log.info(json.Results[i].DestinationETA) // print result 
assert json.Results[i].DestinationETA != null
assert json.Results[i].DestinationETA != 0 
}