Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance JMeter-在http POST请求中模拟重音UTF8字符_Performance_Post_Utf 8_Request_Jmeter - Fatal编程技术网

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

Performance JMeter-在http POST请求中模拟重音UTF8字符,performance,post,utf-8,request,jmeter,Performance,Post,Utf 8,Request,Jmeter,我正在使用ApacheJMeter2.8对一个基于web的信息系统进行一些性能测试 在不同的请求中使用了几个重音字母,如“ä”、“ö”、“ü”或“õ” 当涉及到运行测试脚本和执行请求时,例如,某些参数中的“ä”值变为“Ô÷这是jmeter将此类字符保存到*.jmx文件的方式。这些http请求的内容编码设置为UTF-8。当我查看项目内容时,所有字符都正确显示。当我运行测试脚本时,使用了错误的值 稍后添加: 我可以用utf8字符成功地模拟GET请求,但我的POST请求中的重音字符看起来仍然像“Ã

我正在使用ApacheJMeter2.8对一个基于web的信息系统进行一些性能测试

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

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

稍后添加: 我可以用utf8字符成功地模拟GET请求,但我的POST请求中的重音字符看起来仍然像“÷”。为什么jmeter的GET请求的数据具有正确的utf8编码并发布Windows-1252/ISO-8859-1/cp1252/ANSI


你知道为什么会这样吗?提前谢谢

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

现在,显示0xC3A4时是什么样子?这取决于使用什么解码。以下是一些例子:

UTF-8: Windows-1252/ISO-8859-1/cp1252/ANSI: UTF-16BE:쎤 UTF-32:� Mac Os Roman:√§ Windows-1251:Г
等等。

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

现在,显示0xC3A4时是什么样子?这取决于使用什么解码。以下是一些例子:

UTF-8: Windows-1252/ISO-8859-1/cp1252/ANSI: UTF-16BE:쎤 UTF-32:� Mac Os Roman:√§ Windows-1251:Г
以此类推。

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.

PHP和ASP也有相同的概念。

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.

PHP和ASP也有相同的概念。

通过将HTTP请求实现字段从HttpClient4切换到HttpClient3.1+并将HTTP请求内容编码值保留为空,解决了这一问题:


关于使用HttpClient4,可能存在一些JMeter错误。

通过将HTTP请求实现字段从HttpClient4切换到HttpClient3.1+并将HTTP请求内容编码值保留为空,问题得到了解决:


关于使用HttpClient4,可能存在一些JMeter错误。

生动的解释。。在我的例子中,我可以得出的结论是,jmeter在将这个“0xC3A4”作为Windows-1252/ISO-8859-1/cp1252/ANSI值而不是UTF-8放入请求之前对其进行解码。然后我可能需要弄清楚我是否能以某种方式影响这种行为。@ErikKaju好吧,你可以影响它,除非这个软件完全是脑死的。我只是不知道到底是怎么回事。我甚至不知道JMeter是什么生动的解释。。在我的例子中,我可以得出的结论是,jmeter在将这个“0xC3A4”作为Windows-1252/ISO-8859-1/cp1252/ANSI值而不是UTF-8放入请求之前对其进行解码。然后我可能需要弄清楚我是否能以某种方式影响这种行为。@ErikKaju好吧,你可以影响它,除非这个软件完全是脑死的。我只是不知道到底是怎么回事。我甚至不知道JMeter是什么我使用JMeter代理,然后在必要时将数据字段更改为变量,添加后处理器等等。。但关于您的答案,sampleresult.default.encoding是一个很好的提示。我更改了该属性,现在jmx中的所有数据都保存为UTF8。现在,我可以用utf8字符成功地模拟GET请求,但POST请求中的重音字符看起来仍然像“÷”。为什么jmeter的GET请求的数据具有正确的utf8编码并发布Windows-1252/ISO-8859-1/cp1252/ANSI?不,编码字段使情况更糟。但我已经发现了一个非常奇怪的解决方案。你可以看到
低的非常感谢您的回答和帮助!我也调查了这个领域。但对参数值进行编码意味着发送到服务器的值将看起来完全不同?比如说%E4而不是ä。我用FF Firebug检查了被测系统的网络流量和请求,发现这些参数都有普通的utf8值。基于此,我希望不应该对请求参数值进行编码。你怎么想?还有一些额外的信息:当内容编码值为空时,HttpClient3.1会起作用。但这对我来说是可以的,只要它有效。对值进行编码也很有效:如果您碰巧发现这是JMeter或HttpClient的bug,那么请在某处报告它。您似乎是这样做的合适人选,因为正如我从stackoverflow响应历史中看到的,JMeter似乎是您真正强大的一面:祝您好运!关于我修改后的答案有什么新消息吗?我正在使用JMeter代理,然后在必要时将数据字段更改为变量,添加后期处理器等等。。但关于您的答案,sampleresult.default.encoding是一个很好的提示。我更改了该属性,现在jmx中的所有数据都保存为UTF8。现在,我可以用utf8字符成功地模拟GET请求,但POST请求中的重音字符看起来仍然像“÷”。为什么jmeter的GET请求的数据具有正确的utf8编码并发布Windows-1252/ISO-8859-1/cp1252/ANSI?不,编码字段使情况更糟。但我已经发现了一个非常奇怪的解决方案。你可以在下面看到。非常感谢您的回答和帮助!我也调查了这个领域。但对参数值进行编码意味着发送到服务器的值将看起来完全不同?比如说%E4而不是ä。我用FF Firebug检查了被测系统的网络流量和请求,发现这些参数都有普通的utf8值。基于此,我希望不应该对请求参数值进行编码。你怎么想?还有一些额外的信息:当内容编码值为空时,HttpClient3.1会起作用。但这对我来说是可以的,只要它有效。对值进行编码也很有效:如果您碰巧发现这是JMeter或HttpClient的bug,那么请在某处报告它。您似乎是这样做的合适人选,因为正如我从stackoverflow响应历史中看到的,JMeter似乎是您真正强大的一面:祝您好运!关于我修改后的答案有什么新消息吗?我调查了您的测试计划,事实上它揭示了您的服务器应用程序上的一个问题。如果是Java应用程序,可能他们没有调用request.setCharacterEncodingUTF-8,PHP和ASP的概念相同。完成此操作后,我调查了您的测试计划,事实上它揭示了服务器应用程序上的一个问题。如果是Java应用程序,可能他们没有调用request.setCharacterEncodingUTF-8,PHP和ASP的概念相同。完成后