预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

WebService自动化-WSDL调用 WebService自动化-WSDL调用 在做自动化测试的过程中,有时候需要测试一个业务流程特定的部分,这个特定部分可能是接口,它往往需要依赖前期产生的数据输出作为输入,这个时候,重新跑一遍前边流程来获得需要的数据显然不合理,那么利用后端开发发布出来的webservice来直接生成所需数据就显得尤为便捷,今天我们就来看如何利用suds调用webservice。 SudsisalightweightSOAPpythonclientforconsumingWebServices. ThesudsClientclassprovidesaconsolidatedAPIforconsumingwebservices.Theobjectcontains(2)sub-namespaces: service Theservicenamespaceprovidesaproxyfortheconsumedservice.Thisobjectisusedtoinvokeoperations(methods)providedbytheserviceendpoint. factory ThefactorynamespaceprovidesafactorythatmaybeusedtocreateinstancesofobjectsandtypesdefinedintheWSDL. sudsClient是作为一个API来消费提供的webservices,它有两个子命名空间: Service:对象用来调用被消费的webservice提供的方法。 Factory:提供一个工厂用来生成一个定义在WSDL的对象或方法的实例。 简单来说就是service用来直接调用webservice里的方法,factory用来生成一个webservice对象实例。 我们用一段代码来说明: fromsuds.clientimportClient classWebServices(object): WSDL_ADDRESS="http://*/services/*/StudentPrivateLessonService.svc?wsdl" def__init__(self): self.web_service=Client(self.WSDL_ADDRESS) printself.web_service defis_class_booked(self,class_id,member_id): returnself.web_service.service.IsClassBooked(class_id,member_id)["ClassBooked"] defcancel_clas(self,class_id,member_id): parameter=self.web_service.factory.create("CancelClass") printparameter printdir(parameter) parameter.param.Class_id=class_id parameter.param.Member_id=member_id parameter.param.CancelBy='T' parameter.param.CancelReason='test' returnself.web_service.service.CancelClass(parameter.param) if__name__=='__main__': web_service_class=WebServices() printweb_service_class.is_class_booked('315983','23540202') printweb_service_class.cancel_clas('315983','23540202') 以上代码里: WSDL_ADRESS:是我们提供的webservice的地址。 __init__方法:实现了sudsclient的生成,client的用法如下: fromsuds.clientimportClient url='http://*.?wsdl' client=Client(url) is_class_booked方法:使用了client的service这个命名空间,即直接调用webservice的可用方法。那么如何知道哪个方法如何调用呢? 参考代码里__init__方法的print语句,打印出来了所有可用的方法和类