介面測試如何確定token失效 加密介面如何測試?

2021-10-16 08:49:25 字數 1619 閱讀 9790

隨著網際網路技術的發展,服務安全性和資料安全性變的越來越重要,提供介面服務的系統往往會應用各種加密技術,保證介面的安全呼叫,如何應用工具來實現加密介面測試成為一項必要技能。在講解如何用jmeter實現介面安全性測試之前,先來了解一下常見的加密演算法,測試同學可根據不同的加密演算法型別和程式猿&程式猿溝通,獲取所需的資訊,實現加密介面的處理。

摘要演算法

對明文編碼生成資訊摘要,以防止被篡改。比如md5使用的是hash演算法,無論多長的輸入,md5都會輸出長度為128bits的乙個串。

摘要演算法不要秘鑰,客戶端和服務端採用相同的摘要演算法即可針對同一段明文獲取一致的密文

對稱加密

對稱加密演算法是共享金鑰加密演算法,在加密解密過程中,使用的金鑰只有乙個。傳送和接收雙方事先都知道加密的金鑰,均使用這個金鑰對資料進行加密和解密。

資料加密:在對稱加密演算法中,資料傳送方將明文 (原始資料) 和 加密金鑰一起經過加密處理,生成複雜的密文進行傳送。

資料解密:資料接收方收到密文後,使用加密的金鑰及相同演算法的逆演算法對加密的密文進行解密,將使其恢復成可讀明文。

非對稱加密

非對稱加密演算法,有兩個金鑰,乙個稱為公開金鑰 (publickey),另乙個稱為 私有金鑰 (private key),加密和解密使用的是兩個不同的金鑰,所以這種演算法稱為非對稱加密演算法。

如果使用公鑰對資料進行加密,只有用對應的私鑰才能進行解密

如果使用 私鑰對資料進行加密,只有用對應的公鑰才能進行解密

常見加密演算法的處理方式

根據上述常見的加密演算法,測試人員在測試不同的加密介面可採用下述的方法處理加密介面

摘要演算法(md5.sha1 ):造介面資料前呼叫md5,sha1進行編碼,服務端對比編碼後的字串是否一致。

對稱加密演算法(aes,des ):造介面資料前從開發獲取對稱公鑰,基於對稱公鑰可以加密請求資料,解密響應報文。

非對稱加密演算法(rsa):造介面資料前從開發獲取公鑰私鑰去加密解密介面資料

下面以jmete為例介紹如何實現加密介面的處理,目前有一介面在伺服器實現邏輯處理以前會對介面資料進行sha加密,伺服器獲取到加密介面資料以後先解密和驗證資料是否合法有效,再進行邏輯處理。針對這種介面測試的時候,在發起請求以前,我們需要對介面進入如下特殊處理:

和開發溝通介面加密的演算法以及需要的資訊,如果是sha加密,和開發溝通獲取加密的秘鑰,以及加密和編碼的關鍵字串

發起介面請求以前對介面明文資料進行預處理,在jmeter的介面實現中,可以通過新增beanshell指令碼,在beanshell指令碼中基於上乙個步驟獲取到的資訊,採用和服務端相同的加密方法和加密流程對介面明文進行加密和編碼

基於加密後的密文發起加密請求

作  者:testfan kitty

解決介面測試中token失效問題

介面測試中我們經常是從登入介面獲取token,其他的介面在header中傳入新的token才可以正確傳送請求。所以在做介面自動化測試時,我們不能將token寫死,而是應該每次請求就重新獲取新的token,以保證介面請求可以正常得到正確的返回值。我的解決思路是 在每次傳送帶token的請求界面前,先呼...

jmeter介面測試 獲取token

jmeter進行介面測試 提取token 專案一般都需要進行登陸才能進行後續的操作,登陸有時傳送的請求會帶有token,因此,需要使用後置處理器中的正規表示式提取token,然後用beanshell設定成全域性變數。1 在登陸請求中,新增乙個正規表示式提取器,獲取token,其正規表示式為 toke...

JMeter 登入,獲取token的介面測試401

專案組突然閒下來了,慌,所以給自己找點事情做,就在看測試的工具,fiddle,postman,jmeter,發現前面兩個好像差不太多,jmeter可以用於壓力測試,就下了個jmeter開始測本地專案的介面,因為專案中做了登入許可權,所以要先在jmeter實現登入介面,再去實現其他的http介面的測試...