• jmeter中文乱码及Unicode转中文


    在测试的过程中传入中文测试,乱码问题

    1、get请求传入中文参数address:中国云南省

    request请求中已经正确显示参数(可能跟我之前配置过有关系),如果没有正确显示,在http取样器后面新建一个BeanShell Sampler(并列关系)

    scrip里编辑代码:prev.setDataEncoding("utf-8");再次运行就可以,不用重启jmeter

    再查看response响应信息 address返回值是Unicode编码的

    在http请求中添加后置处理器BeanShell PostProcessor,scrip中编辑代码:

    String s=new String(prev.getResponseData(),"UTF-8");
    char aChar;
    int len= s.length();
    StringBuffer outBuffer=new StringBuffer(len);
    for(int x =0; x <len;){
    aChar= s.charAt(x++);
    if(aChar=='\'){
    aChar= s.charAt(x++);
    if(aChar=='u'){
    int value =0;
    for(int i=0;i<4;i++){
    aChar= s.charAt(x++);
    switch(aChar){
    case'0':
    case'1':
    case'2':
    case'3':
    case'4':
    case'5':
    case'6':
    case'7':
    case'8':
    case'9':
    value=(value <<4)+aChar-'0';
    break;
    case'a':
    case'b':
    case'c':
    case'd':
    case'e':
    case'f':
    value=(value <<4)+10+aChar-'a';
    break;
    case'A':
    case'B':
    case'C':
    case'D':
    case'E':
    case'F':
    value=(value <<4)+10+aChar-'A';
    break;
    default:
    throw new IllegalArgumentException(
    "Malformed   \uxxxx  encoding.");}}
    outBuffer.append((char) value);}else{
    if(aChar=='t')
    aChar='	';
    else if(aChar=='r')
    aChar='
    ';
    else if(aChar=='n')
    aChar='
    ';
    else if(aChar=='f')
    aChar='f';
    outBuffer.append(aChar);}}else
    outBuffer.append(aChar);}
    prev.setResponseData(outBuffer.toString());

     再次执行,查看响应结果,address显示乱码

     打开jmeter.properties(jmeter的bin目录下)把默认的编码改成utf-8,并把注释取消保存,重启jmeter

    再次运行,响应信息显示正确

    2、Post请求传递中文参数

    响应乱码,修改post请求,Content encoding设置成utf-8

    再次运行:参数显示Unicode编码,

    post请求再次建立后置处理器BeanShell PostProcessor内容与上面一致

    再次运行成功

     

  • 相关阅读:
    WDSL文件中的XML元素
    Cookie跨域setDomain和setPath
    Cookie/Session机制详解
    Java服务端对Cookie的简单操作
    Nginx配置详解 http://www.cnblogs.com/knowledgesea/p/5175711.html
    如何在mac里面,把xcode代码同步到 tfs 的 git库(新git库)
    如何在mac里面,把xcode代码同步到 tfs 的 git库(克隆git篇)
    Centos7 安装 MySql
    如何在Centos里面,把.net core程序设为开机自启动
    Typescript编译设置
  • 原文地址:https://www.cnblogs.com/t-ae/p/10191211.html
Copyright © 2020-2023  润新知