最近測試的專案由於需要給第三方呼叫,所以增加了安全性的認證,所有的介面呼叫都需要簽名進行驗籤,
於是研究了一下使用python按照介面簽名規範生成sign值。
1、請求引數中的 sign 引數和為空的引數去除後,剩餘的多個鍵值對,將鍵按照字典序排序,
並以key1=value1&key2=value2的格式拼成乙個字串
2、拼接的字串需要urlencode
3、將開發者的key拼接在第一步中排序後的字串後面得到待簽名字串
4、使用md5演算法加密待加密字串並轉為大寫即為sign
下面為實現的**片
。
import time
import requests
import json
import urllib,hashlib
url =
""#獲取當前的時間戳
stamp = time.
time()
print
(stamp)
#轉換為int型別的13位時間戳
timestam =
int(
round
(stamp*
1000))
print
(timestam)
time_new =
str(timestam)
print
(type
(time_new)
)data =
#將鍵按照字典序排序
data_order =
sorted
(data.
items()
,key=lambda x:x[0]
,reverse=false)
#將列表轉化為字典
data_new =
dict
(data_order)
print
(data_new)
#將key=value鍵值對進行url編碼
datanew = urllib.parse.
urlencode
(data_new)
datadic = datanew +
"&key=bf1bde5a649724056f904a9335b1c1c7455655"
print
(datadic)
#建立md5物件
m = hashlib.
md5(
)m= hashlib.
md5(datadic.
encode()
)data_md5 = m.
hexdigest()
#將小寫字母切換為大寫字母
sign=data_md5.
upper()
print
(sign)
JMeter介面測試實戰 介面分析
假設測試乙個建立使用者介面,資訊如下 名稱說明 請求位址 user create 請求方法 post 許可權必須是admin角色的使用者登入,才能建立使用者 協議json 請求引數 name 不能為空,不能重複,長度4 20的字母或數字組合 role 不能為空,且必須為admin 或 normal ...
python測試介面 Python 介面測試(一)
1.概念 介面測試是測試系統元件間介面的一種測試。介面測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的互動點。測試的重點是要檢查資料的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。2.環境準備 1.安裝python 2.安裝requests庫。也可以在cmd輸入 pip ins...
jmeter介面測試實戰 2018 09 19
我告訴自己 放開一切,好好工作,好好昇華自己 不要想太多,專注於做一件事情 1 檢視分析介面文件,整理介面案例。2 準備介面入引數據,可以儲存成csv檔案,供後續使用。3 http請求預設值 如需要 http cookie管理器 如需要 http請求 斷言 斷言結果檢視器 結果檢視樹 如上是最簡單的...