加密解密方法(我用的是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.查看結果

