JMeter 接口测试解决响应数据中文乱码方法

发表于:2017-9-25 15:40

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:DC_ing    来源:51Testing软件测试网采编

  产生原因:
  Jmeter的结果处理编码与被测试对象的编码不一致。Jmeter的sampler请求结果的默认编码方式为:ISO-8859-1(不支持中文),Jmeter的sampler请求结果的默认编码方式为:ISO-8859-1(不支持中文)。
  解决方法一:
  使用后置控制器 BeanShell PostProcessor 来动态修改结果处理编码,使之与被测对象保持一致;
  优点:灵活,随时修改,不会更改其他请求的结果编码;
  缺点:要根据不同的对象设置不同的编码;
  适用范围:测试不同的公司项目,有些公司喜欢GBK,有些是UTF-8;
  配置方法:
  1、确定返回结果的编码(可跟开发人员确认,如果是web页面,可查看源文件得知),下图是在 JMeter 中【查看结果树】监听器中查看;
  查看响应数据编码.jpg
  2、右键 http Sampler,添加 BeanShell PostProcessor 后置处理器;
  添加BeanShell PostProcessor处理器.jpg
  3、设置 BeanShell PostProcessor;在Script中增加 prev.setDataEncoding("UTF-8"); (PS:脚本的符号需使用英文符号)
  添加结果固定编码.jpg
  4、测试验证,OK,设置完毕。
  解决办法二:
  修改Jmeter的默认编码方式;
  优点:一次修改,长久使用;
  缺点:如果要测试不同的公司项目,需要多次修改,较麻烦;
  适用范围:测试本公司的项目,毕竟同一个公司的项目基本上都是使用同一个编码的;
  配置方法:
  1、确定返回结果的编码(可跟开发人员确认,如果是web页面,可查看源文件得知);
  2、打开 %JMeter_HOME%\bin\jmeter.properties文件,搜索 default.encoding,找到 jmeter 的默认编码设置;修改编码与被测系统同样的编码方式,如UTF-8,去掉“#”(注释符号),保存设置。
  更改 jmeter 默认编码.jpg
  3、重启Jmeter验证即可。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号