中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      WebService自動化-WSDL調(diào)用

      時間:2024-06-21 13:55:44 Web Services 我要投稿
      • 相關推薦

      WebService自動化-WSDL調(diào)用

        在做自動化測試的過程中,有時候需要測試一個業(yè)務流程特定的部分, 這個特定部分可能是接口,它往往需要依賴前期產(chǎn)生的數(shù)據(jù)輸出作為輸入,這個時候,重新跑一遍前邊流程來獲得需要的數(shù)據(jù)顯然不合理, 那么利用后端開發(fā)發(fā)布出來的web service來直接生成所需數(shù)據(jù)就顯得尤為便捷, 今天我們就來看如何利用suds調(diào)用web service。

        Suds is a lightweight SOAP python client for consuming Web Services.

        The suds Client class provides a consolidated API for consuming web services. The object contains (2) sub-namespaces:

        service

        The service namespace provides a proxy for the consumed service. This object is used to invoke operations (methods) provided by the service endpoint.

        factory

        The factory namespace provides a factory that may be used to create instances of objects and types defined in the WSDL.

        suds Client 是作為一個API來消費提供的web services, 它有兩個子命名空間:

        Service :對象用來調(diào)用被消費的web service提供的方法。

        Factory:提供一個工廠用來生成一個定義在WSDL的對象或方法的實例。

        簡單來說就是service用來直接調(diào)用web service里的方法,factory用來生成一個web service對象實例。

        我們用一段代碼來說明:

        from suds.client import Client

        class WebServices(object):

        WSDL_ADDRESS = "http://*/services/*/StudentPrivateLessonService.svc?wsdl"

        def __init__(self):

        self.web_service = Client(self.WSDL_ADDRESS)

        print self.web_service

        def is_class_booked(self, class_id, member_id):

        return self.web_service.service.IsClassBooked(class_id, member_id)["ClassBooked"]

        def cancel_clas(self, class_id, member_id):

        parameter = self.web_service.factory.create("CancelClass")

        print parameter

        print dir(parameter)

        parameter.param.Class_id = class_id

        parameter.param.Member_id = member_id

        parameter.param.CancelBy = 'T'

        parameter.param.CancelReason = 'test'

        return self.web_service.service.CancelClass(parameter.param)

        if __name__ == '__main__':

        web_service_class = WebServices()

        print web_service_class.is_class_booked('315983', '23540202')

        print web_service_class.cancel_clas('315983', '23540202')

        以上代碼里:

        WSDL_ADRESS:是我們提供的web service的地址。

        __init__方法: 實現(xiàn)了suds client的生成, client的用法如下:

        from suds.client import Client

        url = 'http://*.?wsdl'

        client = Client(url)

        is_class_booked 方法:使用了client的service這個命名空間,即直接調(diào)用web service 的可用方法。那么如何知道哪個方法如何調(diào)用呢?

        參考代碼里__init__方法的print語句,打印出來了所有可用的方法和類型, print的打印結(jié)果片段如下:

        Suds ( https://fedorahosted.org/suds/ )  version: 0.4 GA  build: R699-20100913

        Service ( StudentPrivateLessonService ) tns="http://tempuri.org/"

        Prefixes (9)

        ns0 = "EFSchools.Englishtown.TeacherTools.Client.ServiceParams"

        ns1 = "EFSchools.Englishtown.TeacherTools.Client.ServiceParams.StudentPrivateLesson"

        *

        ns8 = "http://tempuri.org/"

        Ports (1):

        (BasicHttpBinding_IStudentPrivateLessonService)

        Methods (18):

        *

        CancelClass(ns1:CancelParameter param, )

        *

        IsClassBooked(xs:int class_id, xs:int member_id, )

        *

        Types (47):

        ns4:ArrayOfBatchCancelDetail

        ns4:ArrayOfBookablePLClass

        ns4:ArrayOfBookedPLClass

        *

        從打印結(jié)果可以看出,IsClassBooked方法可以直接調(diào)用,它需要2個參數(shù),類型為int型。

        Cancel_class方法:利用了 client的factory這個命名空間。

        parameter = self.web_service.factory.create("CancelClass")

        創(chuàng)建了Cancel Class這個方法的一個實例,然后通過 print parameter,可以看出這個函數(shù)的參數(shù)組成:

        suds_inpect.png

        它是一個字典,字典的param的值又是一個字典,故我們要調(diào)用這個方法時下需要用Parameter.param.Class_id 這樣的方式來引用。

        下圖是整段代碼的運行結(jié)果:

        證明成功,我們再去DB里查下結(jié)果:

        可以看出,有一條心的記錄添加出來。

        以上,只要給出WSDL的地址,導入suds,通過Client, service, factory這3個類就可以實現(xiàn)web services的自動化調(diào)用,是不是很簡單?

      【W(wǎng)ebService自動化-WSDL調(diào)用】相關文章:

      XFire創(chuàng)建WebService實例09-14

      調(diào)用javascript08-02

      java調(diào)用cmd命令01-29

      Axis2創(chuàng)建WebService實例教程10-06

      php調(diào)用shell的方法技巧07-15

      分析JavaScript函數(shù)的調(diào)用模式07-20

      關于PHP引用的調(diào)用方法06-14

      Windows網(wǎng)絡診斷怎么調(diào)用10-02

      PHP調(diào)用的C代碼整理08-14

      javascript數(shù)組使用調(diào)用方法11-05

      主站蜘蛛池模板: 国产三级黄色的在线观看| 久久精品就是久久精品| 亚洲av色在线观看网站| 久久麻豆精亚洲av品国产精品| 亚洲乱码中文字幕综合| 洛阳市| 3亚洲日韩在线精品区| 伊在人亚洲香蕉精品区麻豆| 日本午夜一区二区视频| 正镶白旗| 常宁市| 亚洲av永久青草无码精品| 欧美成人a视频免费专区| 日本最新一区二区三区免费看| 中文字幕日韩熟女av| 少妇熟女淫荡丰满| 亳州市| 昆山市| 仁化县| 临沂市| 鹤岗市| 喀喇沁旗| 鄂托克前旗| 激情内射亚洲一区二区| 正镶白旗| 国产精品色内内在线播放| 公安县| 宕昌县| 禹城市| 国产亚洲人成在线影院 | 超级碰碰人妻中文字幕| 亚洲女同系列高清在线观看| 北票市| 熟女丝袜美腿亚洲一区二区三区| 女性| 亚洲av综合日韩精品久久久| 97久久成人国产精品免费| 岛国视频在线无码| 国产香蕉一区二区三区| 国产午夜亚洲精品一级在线| 中文字幕日韩人妻高清在线 |