Python 如何测试WebService接口
欢迎关注【无量测试之道】公众号,回复【领取资源】,
Python编程学习资源干货、
Python+Appium框架APP的UI自动化、
Python+Selenium框架Web的UI自动化、
Python+Unittest框架API自动化、
资源和代码 免费送啦~
文章下方有公众号二维码,可直接微信扫一扫关注即可。
WebService是什么
简单的说WebService是一个SOAP(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言(通过 xml 描述)间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。(概念性的东西大家可以自行搜索补充)
测试环境准备
python2.7 + httplib 内置库
数据准备
这里就定义了两个case:
case1是一个正向case, 根据正确的nameid查询用户信息。
case2是一个反向case, 给出一个错误的nameid 查询用户信息。
然后将这两个case 存放到一个dict 中,最后引入代码里面进行请求使用。
data.py文件内容如下:
1 #正向的case 2 case1='''<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 5 <soap:Header> 6 <OGHeader xmlns="http://webservices.micros.com/og/4.3/Core/" transactionID="2019062118114433750450"> 7 <Origin entityID="OW1" systemType="WEB"/> 8 <Destination entityID="TI" systemType="ORS"/> 9 </OGHeader> 10 </soap:Header> 11 <soap:Body> 12 <FetchProfileRequest xmlns="http://webservices.micros.com/oqq/5.1/Name.wsdl"> 13 <NameID type="INTERNAL">186217986</NameID> 14 </FetchProfileRequest> 15 </soap:Body> 16 </soap:Envelope>'''
1 #反向的case 2 case2='''<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 5 <soap:Header> 6 <OGHeader xmlns="http://webservices.micros.com/og/4.3/Core/" transactionID="2019062118114433750450"> 7 <Origin entityID="OW1" systemType="WEB"/> 8 <Destination entityID="TI" systemType="ORS"/> 9 </OGHeader> 10 </soap:Header> 11 <soap:Body> 12 <FetchProfileRequest xmlns="http://webservices.micros.com/oqq/5.1/Name.wsdl"> 13 <NameID type="INTERNAL">1862179863</NameID> 14 </FetchProfileRequest> 15 </soap:Body> 16 </soap:Envelope>''' 17 18 dict1={"success":case1,"fail":case2}
test.py文件内容如下:
1 2 #coding=utf-8 3 import httplib 4 from data import dict1 5 6 def Featchinfo(): 7 url="test.beat.com" 8 port=9700 9 path="/oqq_ws_51/Name.asmx" 10 header={'Content-Type' : 'text/xml; charset=utf-8'} 11 conn = httplib.HTTPConnection(url,port,timeout=10) 12 for key,value in dict1.items(): 13 conn.request('POST',path,value.encode('utf-8'),header) 14 response=conn.getresponse() 15 resp=response.read() 16 if(key=="success" and "resultStatusFlag=\"SUCCESS" in str(resp)): 17 print("case1 验证通过") 18 elif(key=="fail" and "resultStatusFlag=\"FAIL" in str(resp)): 19 # print(resp) 20 print("case2 验证通过") 21 22 if __name__ == '__main__': 23 Featchinfo()
1 结果输出: 2 case2 验证通过 3 case1 验证通过
总结 :
通过以上简单的几步就可以完成WebService Api的测试,对于示例中的测试数据大家可以根据Api文档的描述不断的丰富测试场景。与君共勉,每天进步一点点。
备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:
添加关注,让我们一起共同成长!