码迷,mamicode.com
首页 > 系统相关 > 详细

jmeter利用bean shell加密解密方法

时间:2020-06-29 22:57:30      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:一个   打印   lazy   util   json   sample   下载   http   sha   

 

 

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

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

技术图片

 

 

2.导出jar包

技术图片

 

 

3.将jar包放入jmeter的lib\ext文件夹里面

技术图片

 

 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的lib\ext文件夹内)

//解密
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的lib\ext文件夹内)

//解密
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.查看结果

技术图片

 

 

  

 

jmeter利用bean shell加密解密方法

标签:一个   打印   lazy   util   json   sample   下载   http   sha   

原文地址:https://www.cnblogs.com/Alexr/p/13210727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!