Jmeter学习02-response乱码问题解决

1.问题背景

jmeter在收到响应时,返回的会是中文,这样如果在后期断言的情况下会有一定的错误,所以需要去更改编码方式

2.问题解决

方法一.在${jmeter}/bing/jmeter/properies中修改配置

把sampleresult.default.encoding这个参数后面更改为UTF-8

 

 方法二:在请求的编码中更改为utf-8

 

 

方法三:通过后者处理器进行beanshell更改

 

 

String s2 = new String(prev.getResponseData(), "UTF-8");

char aChar;
int len = s2.length();
StringBuffer outBuffer = new StringBuffer(len);
for (int x = 0; x < len;)
{
    aChar = s2.charAt(x++);
    if (aChar == '\\') {
        aChar = s2.charAt(x++);
        if (aChar == 'u') {
            int
            value = 0;
            for (int i = 0;
            i < 4;
            i++
        )
            {
                aChar = s2.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 = '\t';
            else if (aChar == 'r')
                aChar = '\r';
            else if (aChar == 'n')
                aChar = '\n';
            else if (aChar == 'f')
                aChar = '\f';
            outBuffer.append(aChar);
        }
    } else
        outBuffer.append(aChar);
}


prev.setResponseData(outBuffer.toString());

 

posted @ 2022-07-14 13:30  SH金刚狼  阅读(113)  评论(0编辑  收藏  举报