最近有個測試接口需求,接口有簽名檢查,簽名規范為將所有請求參數按照key字典排序並連接起來進行md5加密,格式是:md5(bar=2&baz=3&foo=1),得到簽名,將簽名追加到參數末尾。由於需要對參數進行動態加密並且做壓力測試,所以選擇了使用jmeter, 利用BeanShell PreProcessor處理參數加密問題。(postman也可實現md5加密簽名規則。添加環境變量,然后在Pre-request-Script中寫MD5加密簽名規則的腳本。文末會簡單介紹一下)。具體步驟如下哦~~
Jmeter實現參數加密
1.由於簽名需要將請求參數進行md5,所以先用Java寫好代碼,然后把該類打成Jar包(在類上點擊右鍵->Export->jar file),代碼如下:
2.把jar包放在jmeter下D:\jmeter\apache-jmeter-3.3\lib下
3.打開jmeter,添加一個http sampler(調用登錄接口),在sampler下添加一個BeanShell PreProcessor
4.在beanshell PreProcessor中導入jar包,調用加密方法,beanshell PreProcessor最常用的方法:
vars.get(String paramStr):獲得變量值
vars.put(String key,String value):數據存到jmeter變量中
再次請求接口,就可以將參數加密,並且把參數signs1,signs2,signs3等參數存到jmeter變量中,拼接成url請求參數
Postman參數實現md5加密
1.設置環境變量
2.請求參數設置中引用sign值
3.Pre-request-Script中寫MD5加密簽名規則的腳本
注意:
1.Postman實現接口加密對版本有要求,版本過低可能會報錯
2. Post請求可直接通過request.data獲取請求參數,get請求可先通過 request.url獲取請求url,然后對url進行處理,獲取請求參數
3.Pre-request Script的日志可通過view-> Show Postman Console查看
至此,關於需要對請求參數進行動態加密的接口測試就可以正常進行了,如果需要壓測也可以直接使用jmeter進行壓測。
點個“在看”支持一下????