Jmeter 脚本中使用base64 加解密、MD5加密
在進(jìn)行日常的性能測(cè)試工作中,難免會(huì)遇到請(qǐng)求參數(shù)需要進(jìn)行加密傳輸?shù)那闆r,筆者將根據(jù)自己在測(cè)試過程中遇到的問題,說明加密方法的使用(Jmeter 版本為5.1.1)。
場(chǎng)景一:請(qǐng)求參數(shù)進(jìn)行base64加密
場(chǎng)景說明:有A 、B兩個(gè)請(qǐng)求,通過調(diào)用請(qǐng)求A,使用邊界提取器獲取A的響應(yīng)中的cust_id值,使用beanShell 后置處理器對(duì)cust_id 進(jìn)行base64 加密。加密后的數(shù)據(jù)再作為請(qǐng)求B的參數(shù)使用。
1. 編寫Jmeter腳本結(jié)構(gòu)
注意:beanShell 后置處理器不是在請(qǐng)求A的內(nèi)部。
2. 在beanShell中調(diào)用base64加密方法
方法一:
注意:如果使用上述代碼加密后,調(diào)用B請(qǐng)求報(bào)錯(cuò),可嘗試更換加密方法二
方式二:
import sun.misc.BASE64Decoder; String tmp = new sun.misc.BASE64Encoder().encode("${cust_id}".getBytes()); log.info("=================" + tmp); vars.put("b64_custId", tmp);3. 使用加密后的參數(shù)
通過查看結(jié)果數(shù),可以看到入?yún)⒅械腸ust_id已經(jīng)變成了解密后的字符串
場(chǎng)景二:響應(yīng)結(jié)果需要進(jìn)行base64 解密
場(chǎng)景說明:在諸如APP或者小程序中出于安全性的考慮,請(qǐng)求的返回結(jié)果是經(jīng)過base64加密之后的,我們需要進(jìn)行解密后再判斷請(qǐng)求是否成功。
1. Jmeter 腳本結(jié)構(gòu)
import sun.misc.BASE64Decoder; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject;String res = "eyJlcnJvckNvZGUiOiAiTVMwMDAwMDIiLCJlcnJvck1lc3NhZ2UiIDogIk1pc3NpbmcgUGFyYW1ldGVyIiwiZXJyb3JEZXNjcmlwdGlvbiI6ICJNaXNzaW5nIFBhcmFtZXRlci4ifQ=="; //String aa = prev.getResponseDataAsString(); // 獲取上一個(gè)請(qǐng)求的結(jié)果 log.info("原始加密串:"+ res);// base64解密 BASE64Decoder decoder = new BASE64Decoder(); String tmp = new String(decoder.decodeBuffer(res),"utf-8"); log.info("解密后的串:" + tmp);// 字符串轉(zhuǎn)json對(duì)象 JSONObject json = JSONObject.parseObject(tmp); String code = json.getString("errorCode"); log.info("返回結(jié)果值:" + code);// 判斷結(jié)果 if(!code.equals("0")){Failure = true;}代碼說明:
場(chǎng)景三:請(qǐng)求參數(shù)中帶有簽名字段
場(chǎng)景說明:一般在APP的請(qǐng)求中會(huì)涉及到簽名字段,比如前后端開發(fā)人員會(huì)協(xié)商一個(gè)key,用來和其他的字段一起通過md5加密后生產(chǎn)一個(gè)簽名字段sign,再把該字段作為一個(gè)請(qǐng)求參數(shù),比如:
https://xxx.xxx.xx/getinfo?timestamp=1587972142&appid=1231231231313&token=qwrqfqfqqtqg8&sign=tqwsvdfqqwreqrwqrqre==
生成簽名的步驟:
appid=1231231231313×tamp=1587972142&token=qwrqfqfqqtqg8
appid=1231231231313×tamp=1587972142&token=qwrqfqfqqtqg8&key=12431414141414144124
1. Jmeter 腳本結(jié)構(gòu)
說明:在需要使用簽名字段的請(qǐng)求上面創(chuàng)建一個(gè)beanShell 預(yù)處理程序
2. 調(diào)用md5加密方法進(jìn)行加密
步驟說明:
3. 引用簽名字段
后面將持續(xù)分享Jmeter在使用過程中的項(xiàng)目經(jīng)驗(yàn),如果幫到您,還請(qǐng)給個(gè)贊(:
總結(jié)
以上是生活随笔為你收集整理的Jmeter 脚本中使用base64 加解密、MD5加密的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 技嘉1080显卡体质测试软件,技嘉GTX
- 下一篇: 从互联网孕育出的“直播销售员”展望未来的