如何使用SOAP UI测试的响应内容类型(How to test the response cont

2019-10-18 04:21发布

我是新来这个SOAP UI。 我有一个要求,以测试是否响应主体不是空的。

你能告诉我怎么解决。

我的想法是检查content-length使用断言脚本的响应,但它不工作了equals()

contains()是工作,但equals

// works:
assert ((com.eviware.soapui.support.types.StringList)messageExchange.responseHeaders["Content-Length"]).contains("0")
// not working:
assert ((com.eviware.soapui.support.types.StringList)messageExchange.responseHeaders["C‌​ontent-Length"]).equals("0") 
// not working:
assert ((com.eviware.soapui.support.types.StringList)messageExchange.responseHeaders["C‌​ontent-Length"]) == 0 

请帮我解决这个问题。

Answer 1:

在您的代码:

// works:
assert ((com.eviware.soapui.support.types.StringList)messageExchange.responseHeaders["Content-Length"]).contains("0")
// not working:
assert ((com.eviware.soapui.support.types.StringList)messageExchange.responseHeaders["C‌​ontent-Length"]).equals("0") 
// not working:
assert ((com.eviware.soapui.support.types.StringList)messageExchange.responseHeaders["C‌​ontent-Length"]) == 0 

表达messageExchange.responseHeaders["Content-Length"]返回StringList [见文档这里] ,它是一个ArrayList<String>

它的内容会是这样的几个Strings ,如( "abc""def""ghi" )。

contains("0")

这样,当你调用list.contains("abc")你是问,如果"abc"是列表的元素之一。 您Content-Length头可能是一个元素,就像(名单"0" )。 这就是为什么list.contains("0")返回true ,因为String "0"是名单上的元素之一。

equals("0")

所以,当你拨打: list.equals(something) ,它只会返回true ,如果something作为参数传递是列表String S以及。 "0"是不是列表String S,它仅仅是一个。

== 0

同样,当你调用list == 0您正在测试,如果list是整数0 ,这是不。

messageExchange.responseHeaders["Content-Length"] == 0不应该因为工作。 messageExchange.responseHeaders["Content-Length"]返回一个ListString S,比所述整数不同 0

messageExchange.getResponse().getContentLength() == 0作品因为messageExchange.getResponse().getContentLength()返回Content-Length头,为long整数值。

messageExchange.getResponse().getContentLength()是与获取该列表的第一值和转换为long 。 瞧这将工作: Long.valueOf(messageExchange.responseHeaders["Content-Length"].get(0)) == 0



文章来源: How to test the response content-type using SOAP UI