如何将 JMeter 响应主体 (JSON) 编码为 UTF-8?

How to encode JMeter response body (JSON) to UTF-8?

我使用脚本将图片上传到网站,它 returns 我所有的书面数据都是 JSON 格式。 我们使用这个应用程序来识别不同文档上的 name/surname,我们也有俄语文档。 然而,JMeter returns 我是这样的:

{
    "message": "recognized",
    "birth_date": "1993",
    "native_name": "\u0406\u042e\u041b\u0414\u0410",
    "patronymic": "\u0410\u0410\u0410\u0410\u0410"
}

我也尝试更改 jmeter.properties 和 system.properties 中的编码,但没有帮助。我还尝试通过 PostProcessor 在一个字符串中更改编码,但没有结果。

顺便说一句,在 Postman 中,我通过 'Beautify' 部分获得了正常结果。

有人可以帮忙解决这个问题吗?也许有什么大型后处理器的例子可以做到吗?

这取决于您要实现的目标,如果您只需要这些值在其“文本”人类可读表示中,您可以使用 Groovy 的 JsonSlurper

如果您想用未转义的等效项替换原始响应 - 这是另一个 Groovy 的单行代码:

prev.setResponseData(org.apache.commons.lang.StringEscapeUtils.unescapeJava(prev.getResponseDataAsString()),'UTF-8')

将其放入 JSR223 PostProcessor 的“脚本”区域,它将为您解决问题

有关 JMeter 中 Groovy 脚本的更多信息:Apache Groovy - Why and How You Should Use It