soapui接口測試-驗簽值處理-調(diào)用java的加密jar包

一. 背景:

調(diào)用接口時有個請求參數(shù)是對請求入?yún)匆欢ㄒ?guī)則進行加密生成的驗簽值,每次不同參數(shù)的請求生成唯一的驗簽值,驗簽值不對,接口會報相應(yīng)的錯誤。

二. 解決方案:
  • 代碼寫死賬號,寫死的賬號不走驗證邏輯
  • 調(diào)用接口之前,按照加密規(guī)則生成一樣的驗簽值

三. 下面用soapui工具進行接口測試生成正確驗簽值的示例:

  1. 參數(shù)化請求參數(shù)(DataSource)
  2. 使用groovy腳本調(diào)用java加密的jar包生成正確的驗簽值 (Groovy Script)
  3. 調(diào)用接口 (HTTP)
  4. 校驗輸出是否正確 (Groovy Script 或者 Assertion TestStep)
  5. 將需要的數(shù)據(jù)輸出 (DataSink)
  6. 循環(huán)參數(shù)化的參數(shù)進行不同參數(shù)的接口測試 (DataSoure Loop)
  7. 執(zhí)行所有參數(shù)請求
1.參數(shù)化請求參數(shù)

1.1 新建DataSource步驟

Paste_Image.png

1.2 準(zhǔn)備excle參數(shù)化數(shù)據(jù)

Paste_Image.png

1.3 添加參數(shù)化文件,并且加上后續(xù)接口調(diào)用需要的字段名(最好和請求參數(shù)保持一致)


Paste_Image.png

1.4 選擇需要的參數(shù)行數(shù)

Paste_Image.png
2.Groovy 腳本

2.1 添加Groovy Script腳本步驟

Paste_Image.png

2.2 將java加密jar包放在soapui安裝目錄下--C:\Program Files\SmartBear\SoapUI-Pro-5.1.2\bin\ext

Paste_Image.png

2.3 寫groovy腳本調(diào)用java加密jar包生成一樣的驗簽值,放在soapui的安裝目錄下--C:\Program Files\SmartBear\SoapUI-Pro-5.1.2\bin\scripts下
將公用的腳本均可放在次目錄下,供soapui直接調(diào)用

Paste_Image.png

2.4 soapui里面的groovy腳本調(diào)用公用的scripts里面的腳本按不同請求生成正確的sign值

Paste_Image.png
//調(diào)用公用加密方法
def myMd5 = new MD5()
def key = "AAAAAAAAAAAAA"

//傳參
def mapMd5 = [:]
mapMd5 = [
'service':context.expand( '${DataSource#service_name}' ), 
'version':context.expand( '${DataSource#version}' ),
'AAA':context.expand( '${DataSource#AAA}' ),
] 
//取DataSource的參數(shù)值
def myDatasource =  testRunner.testCase.testSteps["DataSource"] 
    
//MD5加密  Start
 def output = myMd5.getMapString(mapMd5,key) 
log.info "output: " + output   
def sign = myMd5.getMD5(output) 
log.info "sign: " + sign
//MD5加密  End  

testRunner.testCase.testSteps["HTTP"].setPropertyValue("sign",sign)
3.HTTP接口的sign值被上個步驟設(shè)置,調(diào)取接口
Paste_Image.png
4. 校驗參數(shù)是否正確,自己根據(jù)需求進行校驗
5. 將需要的參數(shù)輸出
Paste_Image.png
6. 設(shè)置循環(huán)的參數(shù)和接口
Paste_Image.png
7. 執(zhí)行數(shù)據(jù)源里面的接口,進行自動化測試
Paste_Image.png

--------------至此,整個接口就可以順利自動化調(diào)取了和校驗了----------------

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容