JMeter - 在http POST请求中模拟重音的UTF8字符

Eri*_*aju 1 performance post jmeter utf-8 request

我正在使用Apache JMeter 2.8在一个基于Web的信息系统上进行一些性能测试.

在不同的请求中使用了几个带重音的字母 - 比如'ä','ö','ü'或'õ'.

在运行测试脚本和执行请求时,例如某些参数中的'ä'值变为'ä'.('Ã'' - 这是jmeter将此类字符保存到*.jmx文件中的方式)这些http请求的内容编码设置为UTF-8.当我查看项目的内容时,所有字符都会正确显示.当我运行测试脚本时,使用了错误的值.

稍后添加:我可以使用utf8字符成功模拟GET请求,但我的POST请求中的重音字符仍然像'ä'.可能是什么原因,为什么jmeter的GET请求数据具有正确的utf8编码和POST Windows-1252/ISO-8859-1/cp1252 /"ANSI"?

任何想法为什么会这样?提前致谢!

Esa*_*ija 6

显示的字符不仅取决于输入的字节,还取决于显示器用于解释它们的解码.例如,ä当编码为UTF-8时,是字节0xC3A4.

现在,0xC3A4显示时看起来像什么?这取决于使用什么解码.以下是一些例子:

  • UTF-8: ä
  • Windows的1252/ISO-8859-1/CP1252/"ANSI": ä
  • UTF-16BE: ?
  • UTF-32: ?
  • Mac Os Roman:
  • Windows的1251:

等等.


UBI*_*ACK 5

JMeter 在 JMX 中正确保存字符,确保您使用正确的编码(UTF-8)打开它们。

在JMeter中有这个属性:

  • Sampleresult.default.encoding=ISO-8859-1

如果这不是默认编码,您可以更改它。但我不确定这是否是您面临的问题。

检查“编码?”

解决方案是:

  • 将内容编码设置为 UTF-8

  • 检查编码?在参数表中,因为您的参数不是 ASCII 参数

如果这不起作用,则表明测试的应用程序存在问题:

request.setCharacterEncoding("UTF-8") must be called before using parameters if it's a Java Application.
Run Code Online (Sandbox Code Playgroud)

PHP 和 ASP 存在相同的概念。