1

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

在不同的请求中使用了几个重音字母 - 例如“ä”、“ö”、“ü”或“õ”。

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

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

任何想法为什么会发生这种情况?提前致谢!

4

3 回答 3

6
于 2013-01-09T11:41:47.533 回答
4

JMeter saves character correctly in JMX, ensure that you opened them with the right encoding (UTF-8).

In JMeter there is this property:

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

which you can change if this is not the default encoding. But I am not sure it's the issue you are facing.

Check the "Encode?"

Solution is:

  • set content encoding to UTF-8

  • Check Encode? in parameters table as your parameters are non ascii ones

if this does not work, it reveals an issue on tested application:

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

Same concepts exist for PHP and ASP.

于 2013-01-09T14:04:52.123 回答
1

The thing got fixed by switching HTTP request implementation field from HttpClient4 to HttpClient3.1 + leaving HTTP Request Content encoding value empty :)

There might be some JMeter bug regarding using HttpClient4.

于 2013-01-10T09:53:20.443 回答