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