快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Jmeter之响应结果乱码解决-创新互联

场景:

10年积累的成都网站建设、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有习水免费网站建设让你可以放心的选择与我们合作。

在测试过程中,我们可能需要查看结果树,但是发现里面的响应数据在“Document”以外的其他表现形式下都有乱码,如下图就是设置了以Text的形式展示,响应数据包含乱码:

Jmeter之响应结果乱码解决

分析:原因是Jmeter的结果处理编码与被测试对象的编码不一致;

1、Jmeter的sampler请求结果的默认编码方式为:ISO-8859-1(不支持中文);

2、被测对象的结果编码可能是gbk、UTF-8;

解决方法:

1、使用后置控制器"BeanShell PostProcessor"来动态修改结果处理编码,使之与被测对象保持一致;

优点:灵活,随时修改;

缺点:要根据不同的对象设置不同的编码,

适用范围:测试不同的公司项目,有些公司喜欢GBK,有些事UTF-8;

2、修改Jmeter的默认编码;

优点:一次修改,长久使用;

缺点:如果要测试不同的公司项目,需要多次修改,较麻烦;

使用范围:测试本公司的项目,毕竟同一个公司的项目基本上都是使用同一个编码的;

那么就很明确了,大家可以根据自己的需要来设置;

下面说明两个方法的操作步骤

1、使用后置控制器"BeanShell PostProcessor"

(1)确定返回结果的编码(可跟开发人员确认,如果是web页面,可查看源文件得知),如;

Jmeter之响应结果乱码解决

(2)右键httpSampler,添加“BeanShell PostProcessor”元件;

Jmeter之响应结果乱码解决

(3)设置“BeanShell PostProcessor”;

在“Script”中增加“prev.setDataEncoding("UTF-8");”

Jmeter之响应结果乱码解决

(4)验证是否解决,如下图,已成功处理;

Jmeter之响应结果乱码解决

2、修改Jmeter的默认编码

(1)进入%JmeterHome%/bin,找到Jmeter.properties,并打开;

Jmeter之响应结果乱码解决

(2)搜索“sampleresult”,找到sampler的编码设置代码;

Jmeter之响应结果乱码解决

(3)修改编码为“UTF-8”,去掉“#”(注释符号),保存设置,并重启Jmeter;

Jmeter之响应结果乱码解决

(4)验证是否解决,如下图(无BeanShell PostProcessor),已成功处理;

Jmeter之响应结果乱码解决

延伸:

1、向服务器发送的post请求中存在乱码(一般是中文)时,

可在请求中设置content-encoding,如UTF-8;

Jmeter之响应结果乱码解决

2、“BeanShell PostProcessor”一定要设置在http请求中么?

答:不是,后置处理器在监听器之前处理(如不知道元件的作用域与执行顺序请自行Google,我后面有时间再整理一份),所以只要在作用域内,后置处理器放哪里都是同样的效果;

如下图:

Jmeter之响应结果乱码解决

参考鸣谢:

testtang的jmeter响应结果乱码问题:http://www.cnblogs.com/tangmaokai/p/5830344.html


网页标题:Jmeter之响应结果乱码解决-创新互联
当前地址:http://6mz.cn/article/dgddsp.html

其他资讯