Groovy是一個基于JVM的動態(tài)語言,具有Java的特性同時也支持腳本式編程,使得在編寫API自動化測試腳本時更加簡單易懂,同時,Groovy天生支持JSON格式數(shù)據(jù)的解析與處理,方便了API測試中需要使用JSON格式數(shù)據(jù)的場景。
在Groovy中使用post方法請求API,我們可以使用第三方類庫進(jìn)行處理:
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7.1') import groovyx.net.http.HTTPBuilder import static groovyx.net.http.ContentType.* def http = new HTTPBuilder('http://www.example.com/api') //修改為對應(yīng)API接口的地址 http.request(Method.POST, JSON) { uri.path='/post/json' //修改為對應(yīng)API接口中post的地址 headers.'User-Agent' = 'Mozilla/5.0 Ubuntu/8.10 Firefox/3.5.3' body = [ key1:'value1', key2:2, flag:true ] response.success = { resp, json ->println "POST success: $resp.statusLine - ${resp.headers.'Content-Type'} - $json" } }
上述代碼中,我們使用"http-builder"類庫封裝了擁有POST請求方法的HTTP類,以便于我們調(diào)用,通過"http.request"方法實現(xiàn)了對API的POST請求,同時,在請求過程中我們對請求頭進(jìn)行了設(shè)置,以適應(yīng)不同的API需求。同時在請求體進(jìn)行的JSON數(shù)據(jù)傳輸中,我們對JSON數(shù)據(jù)進(jìn)行了格式化的操作,其中,key1為字符串類型數(shù)據(jù),key2為整數(shù)類型數(shù)據(jù),flag為布爾類型數(shù)據(jù)。這些數(shù)據(jù)格式在實際API測試中需要根據(jù)實際需求進(jìn)行調(diào)整。