搞了一天差点累死,最后让一个朋友给帮忙搞了下入口,记录一下
总体总结 被这个关键字搞死了,卡了一天:(Add Doctor Import)
google如下:
http://stackoverflow.com/questions/4719854/soap-suds-and-the-dreaded-schema-type-not-found-error
具体内容如下:
由于上面这个关键字,发送webservice请求,老报TypeNotFound 下图:
由于以前没有用rf做过这鸟玩意,都是lr来搞的,所以日志看着有点晕:最蛋疼的是这个还不用加头信息。。。加了还报错。。。
具体脚本如下:
*** Settings ***
Library SudsLibrary(请求webservice的库)
Library Collections
Library test.py
*** Test Cases ***
test3
Comment Add Doctor Import http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd filters=http://WebXml.com.cn/
Create Soap Client http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?WSDL
${result}= Call Soap Method getSupportCity 上海
Log ${result}
${result}= Call Soap Method getSupportProvince
Log ${result}
${result}= Call Soap Method getWeatherbyCityName 上海
Log ${result}
这是post请求,get的请求直接根据http的接口来就行了,如果加请求头报错,就不要加试试
还做了一个不用加入add doctor import关键字的webservice接口:
脚本如下:
*** Settings ***
Library SudsLibrary
Library Collections
Library test.py
*** Test Cases ***
test
Create Soap Client http://www.webservicex.net/Statistics.asmx?WSDL
#只有wsdl定义为complextype才需要create wsdl object
${dblarray}= Create Wsdl Object ArrayOfDouble
attribute ${dblarray}
Append To List ${dbl array.double} 3.0
Append To List ${dbl array.double} 2.0
log ${dblarray}
${result}= Call Soap Method GetStatistics ${dblarray}
attribute ${result}
Should Be Equal As Numbers ${result.Average} 2.5
Should Be Equal As Numbers ${result.Sums} 5.0
创建了一个wsdl对象, 可以根据报错信息来判断参数的类型:
话不多说,工作了。。