【问题标题】:SoapUI mock service: use host from request in the responseSoapUI 模拟服务:在响应中使用请求中的主机
【发布时间】:2019-09-17 09:26:40
【问题描述】:

我正在使用 SoapUI 构建一个 REST 模拟服务,问题是响应必须引用同一服务上的另一个端点。所以我有一个模拟动作,响应如下:

{
    ...,
    "url": "http://localhost:8082/path/to/endpoint"
}

scheme、host 和 port 参数必须与传入请求中的参数相同(以便可以在不做任何修改的情况下在 Docker 容器中使用 mock)。

我尝试使用"url": "${=modelItem.localEndpoint}/path/to/endpoint",但它并不完全有效,因为主机部分始终与项目中的相同。

我知道我可以编写一个脚本来从 HTTP 请求中提取相应的值,但我想避免这种情况,只使用属性替换。

【问题讨论】:

    标签: json rest soapui


    【解决方案1】:

    当我在 SoapUI 中测试 REST 时,我曾经定义项目属性 #Project#apiEndpoint 然后在服务端点的定义中使用它(它允许在例如生产环境和暂存环境之间轻松切换)。

    在您的情况下,您可以轻松地在 Mock 服务定义中重用此属性。

    【讨论】:

    • 就我而言,关键是它必须与传入请求中的相同。因为它可以在本地、在主机上或在 Docker 容器(你事先不知道它的名字)中运行。
    • 如何通过--name docker参数传递它来修复docker容器名称并通过-e传递相同的值,即。 docker run --name $GENERATED -e ENDPOINT=$GENERATED some_container_img。然后将环境变量传递给您使用的soapui runner,并将其设置为项目变量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多