从wiremock随机返回响应

aju*_*juc 0 java testing wiremock

每次调用相同的wiremock端点时,我需要从预定义的集合中返回随机响应。我该怎么做?

Hec*_*orC 5

这可以通过使用响应模板来实现(请参阅官方文档以获取更多信息)。我假设您使用的是 Wiremock Standalone。您需要做的第一件事是启用响应模板,因此您需要使用--global-response-templating选项运行 Wiremock。例如:

java -jar wiremock-standalone-2.27.2.jar --global-response-templating
Run Code Online (Sandbox Code Playgroud)

请注意,您还可以使用本地模板(如果您想仅为特定模拟配置模板)使用以下选项--local-response-templating

接下来的事情是创建一个使用 Handlebar 条助手的模拟,在您的情况下,您可以生成一个像这样的随机字符串:

    {
    "request": {
        "urlPath": "/templated"
    },
    "response": {
        "body": "{{randomValue length=33 type='ALPHANUMERIC'}}",
        "transformers": ["response-template"],
        "status" : 200
    }
}
Run Code Online (Sandbox Code Playgroud)

就是这样。每次调用/templated资源时,您都应该得到不同的字母数字字符串。同样,您可以查看“随机值助手”部分下的文档,以了解哪个助手更适合您。