WebService介面實際場景應用(一)

2022-07-02 13:12:13 字數 1122 閱讀 2806

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

階段問題1:

需要利用資料驅動,然後讀取excel中的資料並直接呼叫。但是webservice介面與http介面不同。http介面呼叫是這樣的:

request(method=』』,url=』』,param=』』)

只需要傳入對應的url,引數就可以了。

但是webservice介面呼叫是這樣的:

client.service.函式(引數)這裡的函式是我們可以寫入的。 此時我們如果需要呼叫可以這樣:

eval(「client.service.」).format(method,data)

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

eval(「client.service.」).format(method,*data)

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

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

解決方法,反向思想:

eval(「client.service.(*)」).format(method,eval(data))

解釋一波:

首先eval(data) ,這裡會是這樣的資料 [『param1』,』param2』,』param3』]

method假設是 mymethod

那麼format之前是這樣的

eval(「client.service.(*)」).format(mymethod,[『param1』,』param2』,』param3』])

format 以後是這樣的

「client.service.mymethod(*[『param1』,』param2』,』param3』])」

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

client.service.mymethod(『param1』,』param2』,』param3』)

此問題終結。

webservice介面與HTTP介面

推薦文章 真的寫的很詳細 webservice介面與http介面區別 http介面走http協議,通過路徑來區分呼叫方法,請求報文一般是key value形式的,返回報文一般是json串,常用的是get和post方法來請求。webservice介面走的soap協議,通過http傳輸,請求報文和返回報...

iOS 呼叫Webservice介面

1.寫請求體 寫請求體的時候要注意soap的版本,有的是1.1,有的是1.2 可以去檢視pc上的請求體資料參照部落格中的寫法修改 2.進行請求 將下面部落格中的 整理下複製貼上就好 3.請求完成,解析xml,轉為字典型別,呼叫下面的方法 nsdictionary dictionaryforxmlst...

Web Service介面設計

web service介面設計 鑑於ws介面的呼叫方式和普通的api呼叫方式不一樣,因此在設計ws介面時應該有一些其他的考量。以下是我的一些想法,做磚拋了。1 介面命名的自描述性必須好。有時候檢視乙個ws會通過wsdl的方式檢視,尤其是在跨平台的時候,乙個自描述性好的api可以清楚的描述乙個serv...