jmeter利用bean shell加密解密方法
  q2rViTiemRgY 2023年11月02日 60 0


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

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

jmeter利用bean shell加密解密方法_jmeter

2.导出jar包

jmeter利用bean shell加密解密方法_加密解密_02

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

jmeter利用bean shell加密解密方法_json_03

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

设置http请求

jmeter利用bean shell加密解密方法_jmeter_04

添加前置处理器BeanShell PreProcessor

jmeter利用bean shell加密解密方法_System_05

代码如下:

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

jmeter利用bean shell加密解密方法_System_06

代码如下:

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

jmeter利用bean shell加密解密方法_加密解密_07

5.查看结果

jmeter利用bean shell加密解密方法_json_08

jmeter利用bean shell加密解密方法_jmeter_09

6.关联

加密

jmeter利用bean shell加密解密方法_加密解密_10

代码如下:

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"

解密

jmeter利用bean shell加密解密方法_System_11

代码如下:

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加密解密方法_System_12

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
q2rViTiemRgY