【问题标题】:Ignore property transfer in REST header if property is null - SOAPUI Groovy如果属性为空,则忽略 REST 标头中的属性传输 - SOAPUI Groovy
【发布时间】:2017-02-20 01:17:17
【问题描述】:

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

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

我发现 Soap UI 会自动尝试发送 NULL 标头属性和 $header_type_2 和 $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 测试步骤

【问题讨论】:

  • 你能展示你的测试用例而不是接口定义吗?

标签: rest groovy soapui request-headers


【解决方案1】:

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

“忽略” header 属性并不容易;相反,您可以为其分配一个默认字符串,这样它就不会抛出错误。

要将 Null 或 Empty 替换为更具体的内容,您需要使用带有嵌套变量的内联脚本。因此,对于您的项目屏幕截图,它将是这样的:

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

值:${header_type_value_1}

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

值:${header_type_value_2}

标题:${=if ("${header_type}"=="" || "${header_type}"==null) 返回 "NULL_HEADER" 否则返回 "${header_type} "}

值:${header_type_value}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多