WebService接口實際場景應用(一)


背景:要求寫一套接口測試工具。過程中遇到了WebService接口的問題,遂寫下本篇文章。

階段問題1:

需要利用數據驅動,然后讀取excel中的數據並直接調用。但是webService接口與http接口不同。http接口調用是這樣的:

Request(method=’’,url=’’,param=’’)

只需要傳入對應的URl,參數就可以了。

但是webservice接口調用是這樣的:

Client.service.函數(參數)這里的函數是我們可以寫入的。 此時我們如果需要調用可以這樣:

eval(“client.service.{0}{1}”).format(method,data)

下面問題就來了,這里的data,我們並不知道有幾個參數。這個時候我想了一個辦法:

eval(“client.service.{0}{1}”).format(method,*data)

Data傳過來是一個list,那么我就將data這個list進行解包。但是這樣好像行不通?

因為格式化參數的時候我沒有辦法指定具體有一個參數,難道不用指定參數個數?用{}{}?這樣也行不通。

解決方法,反向思想:

eval(“client.service.{0}(*{1})”).format(method,eval(data))

解釋一波:

首先eval(data) ,這里會是這樣的數據 [‘param1’,’param2’,’param3’]

method假設是 MYMETHOD

那么format之前是這樣的

eval(“client.service.{0}(*{1})”).format(MYMETHOD,[‘param1’,’param2’,’param3’])

format 以后是這樣的

“client.service.MYMETHOD(*[‘param1’,’param2’,’param3’])”

這樣就會直接去調用我們的函數,並且將我們的list轉換成我們需要的方法,也就是這樣的:

client.service.MYMETHOD(‘param1’,’param2’,’param3’)

此問題終結。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM