如果property为null,则忽略REST头中的属性传输 - SOAPUI Groovy

时间:2017-02-20 01:17:18

标签: rest groovy soapui request-headers

我使用数据库作为数据源将属性和值传输到SoapUI中的测试脚本。

在这种情况下,我有3个占位符,我使用它作为标题类型和我的休息测试的值。我面临的问题是,如果从数据库中为NULL,我如何让soapUI忽略标题类型/值的属性转移?

我发现Soap UI会自动尝试发送$ header_type_2&的NULL标头属性和值。 $ header_type_value_2,即使它们被读入为NULL。

在原始标头请求中,它看起来像这样:

GET https://api.testapi.test.domain.au:443/v1/ttds/events HTTP/1.1
Connection: close
Accept-Encoding: gzip,deflate
User-Agent: AppName/1.0
: 
Authorization: apikey 1233434f7909641458992a7dfebcd3bd311
Host: api.testapi.test.domain.au:443

注意':'在4号线?这导致服务返回400错误请求。

下面的屏幕截图显示了我如何在Soap UI(开源版)中设置我的GET REST测试步骤

enter image description here

1 个答案:

答案 0 :(得分:1)

这实际上是一个很好的问题。请注意,仅当Header属性名称为null而不是其值时才会收到400 Error。

不容易忽视"标题属性;相反,你可以为它分配一个默认字符串,这样就不会抛出错误。

要用更有形的东西替换Null或Empty,您需要使用嵌套变量的内联脚本。所以对于你的项目截图,它将是这样的:

标题:$ {= if(" $ {header_type_1}" =="" ||" $ {header_type_1}& #34; == null)返回" NULL_HEADER_1"否则返回" $ {header_type_1}"}

价值:$ {header_type_value_1}

标题:$ {= if(" $ {header_type_2}" =="" ||" $ {header_type_2}& #34; == null)返回" NULL_HEADER_2"否则返回" $ {header_type_2}"}

价值:$ {header_type_value_2}

标题:$ {= if(" $ {header_type}" =="" ||" $ {header_type}& #34; == null)return" NULL_HEADER"否则返回" $ {header_type}"}

:$ {header_type_value}

我测试了它并且工作正常。如果你喜欢它,请给我一个加号enter image description here:)