zoukankan      html  css  js  c++  java
  • jmeter利用bean shell加密解密方法

    加密解密方法(我用的是RSA加密解密)只需加密解密的看前5步就可以了

    1.先找开发拿到代码或者直接叫开发打jar包,直接拿包的话可以跳过前2步

    2.导出jar包

    3.将jar包放入jmeter的libext文件夹里面

     4.设置线程组(要设置全局变量的话线程组选setUp Thread Group),设置http请求,添加前置处理器BeanShell PreProcessor和后置处理器BeanShell PostProcessor,然后添加一个Debug Sampler,如图:

    设置http请求

    添加前置处理器BeanShell PreProcessor

    import RSAencryption.RSAUtil;//导入加密类(因为我模拟的是前端操作,所以加密解密方法都是用的前端的)
    
    //加密
    System.out.println("*****加密*****");//打印"加密"
    String data = "{"apiType":2,"apkVersion":"2.6","osType":1,}";//需要加密的请求参数,我这里为json格式
    String encode = RSAUtil.encrypt(data);//调用工具类中的方法对参数进行加密,加密后的值是encode,encode可以自定义
    String sign = RSAUtil.sign(data);//sign是对data的签名(没有的话可以不用写)
    
    vars.put("encode",encode);//把值保存到jmeter变量encode中
    vars.put("sign",sign);//把值保存到jmeter变量sign中
    String getEncode=vars.get("encode");//获取encode的值
    System.out.println("Get my encode: " + getEncode);//打印"Get my encode"
    

      

    添加后置处理器BeanShell PostProcessor

    import RSAencryption.RSAUtil;//导入解密类(因为模拟的是前端操作,所以加密解密方法都是用的前端的)
    import org.json.*;//导入json数据解析包,一般需要到网上下载的(百度文件名org.json.jar,这个jar包同样是放在jmeter的libext文件夹内)
    
    //解密
    System.out.println("*****解密*****");//打印"解密"
    String json = prev.getResponseDataAsString();//获取响应数据
    JSONObject data_obj = new JSONObject(json);//把响应的数据包装成json对象
    String data = data_obj.get("data").toString();//从json对象里面获取对应的值(data)
    System.out.println("Get my data: " +data);//打印"Get my data"
    String result = RSAUtil.decrypt(data);//解密data并获取data的值
    vars.put("result",result);//把值保存到jmeter变量result中
    
    JSONObject secResult = new JSONObject(result);//把解密后的result包装成json对象
    
    //提取loanId,仅仅只是解密则不需要
    String loanId = secResult.get("loanId").toString();//在json里面取出loanId
    System.out.println("Get my loanId: " +loanId);//打印"Get my loanId"
    vars.put("loanId",loanId); //将loanId显示在Debug Sampler里面
    
    //设置全局变量
    props.put("loanId",loanId); //把loanId设置成全局变量,仅仅只是解密则不需要
    

      

    添加Debug Sampler

    5.查看结果

    6.关联

    加密

    import RSAencryption.RSAUtil;//导入加密类(因为我模拟的是前端操作,所以加密解密方法都是用的前端的)
    
    //加密
    System.out.println("*****加密*****");//打印"加密"
    
    //引用全局变量
    String loanIdStr = props.get("loanId");//引用之前设置的全局变量"loanId",仅加密则不需要此代码
    
    String data = "{"apiType":2,"apkVersion":"2.6","osType":1,"loanId":""+loanIdStr+""}";//需要加密的参数
    String encode = RSAUtil.encrypt(data);//调用工具类中的方法进行加密
    String sign = RSAUtil.sign(data);//sign是对data的签名(没有的话可以不用写)
    
    vars.put("encode",encode);//把值保存到jmeter变量encode中
    vars.put("sign",sign);//把值保存到jmeter变量sign中
    String getEncode=vars.get("encode");//获取encode的值
    System.out.println("Get my encode: " + getEncode);//打印"Get my encode"
    

      

    解密

    import RSAencryption.RSAUtil;//导入解密类(因为模拟的是前端操作,所以加密解密方法都是用的前端的
    import org.json.*;//导入json数据解析包,一般需要到网上下载的(百度文件名org.json.jar,这个jar包同样是放在jmeter的libext文件夹内)
    
    //解密
    System.out.println("*****解密*****");//打印"解密"
    String json = prev.getResponseDataAsString();//获取响应数据
    JSONObject data_obj = new JSONObject(json);//把响应的数据包装成json对象
    String data = data_obj.get("data").toString();//从json对象里面获取对应的值(data)
    System.out.println("Get my data: " +data);//打印"Get my data"
    String result = RSAUtil.decrypt(data);//解密data并获取data的值
    vars.put("result",result);//把值保存到jmeter变量result中
    
    JSONObject secResult = new JSONObject(result);//把解密后的result包装成json对象
    

    7.查看结果

      

  • 相关阅读:
    15.手写数字识别-小数据集(load_digits)
    14.深度学习-卷积
    13-垃圾邮件分类2
    12.朴素贝叶斯-垃圾邮件分类
    11.分类与监督学习,朴素贝叶斯分类算法
    9.主成分分析
    关于core_UI的安装和使用
    2020系统综合实践 期末大作业 15组
    2020系统综合实践 第7次实践作业 26组
    第6次实践作业
  • 原文地址:https://www.cnblogs.com/Alexr/p/13210727.html
Copyright © 2011-2022 走看看