beanshell postprocessor解决编码

beanshell postprocessor

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=‘\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());

时间: 2024-08-12 10:27:22

beanshell postprocessor解决编码的相关文章

jmeter中beanshell postprocessor结合fastjson库提取不确定个数的json参数

在项目实践中,遇到了这样一个问题.用jmeter作http接口测试,需要的接口参数个数是不确定的.也就是说,在每次测试中,根据情况不同,可能页面中的列表中所含的参数个数是不确定的,那么要提取的参数个数也是不确定的,可能是1个,也可能是2个或3个,甚至更多. 例如,返回的接口消息json消息可能如下 { "data": { "records": [{ "DEVICE_TYPE": 194, "DEVICE_STATUS": 0,

更改邮件发送语言为英语,解决编码为UTF8邮箱注册账号,邮件内容乱码问题

Change email English language, code for UTF8 mailbox registered account, email content garbled. 1. code analysis 乱码分析 通过对中文编码的邮件服务器使用原来的系统(GB2312) The original system used by the mail server encoding for the Chinese code (GB2312) 我使用outlook.com的邮箱(UT

Struts 解决编码问题的几种方式

Struts 解决编码问题的常见方式: 第一种: 在src下(和Struts.Xml文件路径一致)创建文件struts.properties配置文件, struts.properties中内容如下: <struts.il8n.encoding value="utf-8" /> 第二种: 直接在struts.xml配置文件中注入常量,如下: <struts> <constant.il8n.encoding value="utf-8" /&

Jmeter BeanShell PostProcessor提取json数据

需求:提取sample返回json数据中所有name字段值,返回的json格式如下: {"body":{"apps":[{"name":"111"},{"name":"222"}]}} jmeter中添加后置处理器BeanShell PostProcessor   import org.json.*; String response_data = prev.getResponseData

nodejs单页面爬虫(二)--解决编码问题

上次写的爬虫虽然数据爬下来了,但是有乱码问题.查了相关的书之后,找到解决办法.重新写了一下,好像比之前更简洁了. 解决办法是:引入iconv-lite模块,用来转换编码的网页内容. 这次跟着书上用了request模块,而不是用原来的http模块. var request = require('request'); var cheerio = require('cheerio'); var iconv = require('iconv-lite'); //博客标题 request({ url:'h

jdbc与 Beanshell PostProcessor 对多条结果的处理

配置了数据库后,可以通过Beanshell对结果进行特别的操作,一下为对多条数据的处理 数据库的配置如图:

Jmeter之响应结果乱码解决

场景: 在测试过程中,我们可能需要查看结果树,但是发现里面的响应数据在"Document"以外的其他表现形式下都有乱码,如下图就是设置了以Text的形式展示,响应数据包含乱码: 分析:原因是Jmeter的结果处理编码与被测试对象的编码不一致: 1.Jmeter的sampler请求结果的默认编码方式为:ISO-8859-1(不支持中文): 2.被测对象的结果编码可能是gbk.UTF-8: 解决方法: 1.使用后置控制器"BeanShell PostProcessor"

jmeter出现乱码怎么解决

本文是抄袭安大叔的性能    如果想在性能获得更好的发展  请添加公众号:测试那点事  大叔的群号:435092293  大叔曾经担任百度技术总监  很牛逼  相信大叔知道了不会怪我  毕竟我是你的学生 1.加HTTP请求时在Content encoding后填入相应的编码    utf-8 接下来我们来看一下这种方式,可以解决哪些乱码问题 get请求中,参数有中文,我们先不填入任何编码,看下结果会是怎样 我们发现参数出现了乱码,那么接下来我们制定一下编码: 我们发现不乱码了,那么经过测试此处只

jmeter通过BeanShell 脚本,实现对http请求参数的加密

jmeter一直是一款很好的接口和性能测试工具,它是开源的,不需要为此支付任何费用,而且可以下载源码,可以在修改源代码并在此基础上拓展自己的功能或插件,它可以跟ant和jenkins结合起来搭建自己的自动化接口测试框架.它的好还在于它是纯JAVA开发的,因此,它可以更好的跟JAVA对接,通过引入自己封装的jar文件,可以方便的实现对jmeter各种个性化需求的功能的拓展,下面以一个实际例子来说明jmeter怎么引入自己开发的java工具类来实现对http请求参数的加密处理. 在此之前,我们假设有