在測試接口的時候,經常會遇到這種情況: 一個方法中存在很多參數,其中的一些參數,每次請求的時候需要不一致,或者需要經過簽名的數據,這需要通過groovy腳本來實現產生數據,放置到Request中.
其中有一種簡單的方法,即在一個Groovy腳本中,做好處理之后,直接return 值,然后在soap請求中,去選擇getDate->from Groovy Result,這樣就能完成參數的動態設置.但是這個方法有一個弊端,就是一個Groovy腳本只能完成對一個參數提供(還不包括參數的設置).如果需要設置N個參數,那就需要N個Groovy腳本文件來return 值,然后再soap請求中分別一一設置,太麻煩!下面推薦一個腳本來處理這些問題.
def groovyUtils = new com.eviware.soapui.support.GroovyUtils( context ) //獲取上下文對象,轉化成groovyUtils對象 def holder = groovyUtils.getXmlHolder( "batchSubmitFundOutReceipts#Request" ) //將方法的request轉化成XmlHolder對象,方便對其中的參數進行操作 holder.namespaces["ws"]="http://ws.receipt.shengpay.com/" //設置命名空間 holder.setNodeValue("//ws:batchSubmitFundOutReceipts[1]/arg0[1]/signData[1]",result1) //設置節點的值 holder.setNodeValue("//ws:batchSubmitFundOutReceipts[1]/arg0[2]/signData[1]",result0) //設置節點的值 holder.updateProperty() //更新request
通過以上的腳本,就能一次對Request中的參數進行設置,方便測試的后續進行.
總結:現在已經掌握了數據的處理和設置,數據的獲取和判斷.通過這些基礎的搭配,就能完成一些簡答的自動化Check.好了,這次就到這!