我正在使用Apache JMeter 2.8在一个基于Web的信息系统上进行一些性能测试。
在不同的请求中使用了几个带重音的字母 - 例如'ä','ö','ü'或'õ'。
当涉及到运行测试脚本和执行请求时,例如某些参数中的“ä”值变为“Ô。 ('Ã'' - 这是jmeter将此类字符保存到* .jmx文件中的方式)这些http请求的内容编码设置为UTF-8。当我查看项目的内容时,所有字符都会正确显示。当我运行测试脚本时,会使用错误的值。
稍后添加: 我可以用utf8字符成功模拟GET请求,但我的POST请求中的重音字符看起来像'ä'。可能是什么原因,为什么jmeter的GET请求数据有正确的utf8编码和POSTs Windows-1252 / ISO-8859-1 / cp1252 /“ANSI”呢?
为什么会这样?提前谢谢!
答案 0 :(得分:6)
显示的字符不仅取决于输入的字节,还取决于显示器用于解释它们的解码。例如,ä
,当编码为UTF-8时,是字节0xC3A4
。
现在,0xC3A4
在显示时会是什么样子?这取决于使用什么解码。以下是一些例子:
ä
ä
쎤
�
ä
Г¤
等等。
答案 1 :(得分:3)
JMeter在JMX中正确保存字符,确保使用正确的编码(UTF-8)打开它们。
在JMeter中有这个属性:
。但我不确定这是你面临的问题。
检查“编码?”
解决方案是:
将内容编码设置为UTF-8
检查参数表中的编码?,因为您的参数不是ascii的
如果这不起作用,则会显示已测试应用程序的问题:
request.setCharacterEncoding("UTF-8") must be called before using parameters if it's a Java Application.
PHP和ASP存在相同的概念。
答案 2 :(得分:1)
通过将HTTP请求实现字段从HttpClient4切换到HttpClient3.1 +并将HTTP请求内容编码值保留为空来解决问题:)
关于使用HttpClient4可能存在一些JMeter错误。