【问题标题】:How to encode JMeter response body (JSON) to UTF-8?如何将 JMeter 响应正文 (JSON) 编码为 UTF-8?
【发布时间】:2020-12-04 16:28:08
【问题描述】:

我使用脚本将图片上传到网站,它以 JSON 格式返回所有书面数据。 我们使用这个应用程序来识别不同文件上的姓名/姓氏,我们也有俄罗斯文件。 但是,JMeter 会返回类似以下内容:

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

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

顺便说一句,在 Postman 中,我通过“美化”部分得到正常结果。

谁能帮助解决这个问题?也许任何大型 PostProcessor 的例子,可以做到这一点?

【问题讨论】:

    标签: json encoding utf-8 jmeter response


    【解决方案1】:

    这取决于您要实现的目标,如果您只需要这些值以它们的“文本”人类可读表示形式出现,您可以使用 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

    【讨论】:

    • 谢谢,终于成功了!需要深入研究 groovy 脚本:)
    猜你喜欢
    • 2019-05-21
    • 2017-05-18
    • 2018-11-15
    • 2012-04-25
    • 1970-01-01
    • 2017-06-28
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多