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());