前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 如何测试WebService接口

Python 如何测试WebService接口

作者头像
Wu_Candy
发布2022-07-04 17:44:40
1.1K0
发布2022-07-04 17:44:40
举报
文章被收录于专栏:无量测试之道

WebService是什么

简单的说WebService是一个SOAP(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言(通过 xml 描述)间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。(概念性的东西大家可以自行搜索补充)

测试环境准备

python2.7 + httplib 内置库

数据准备 这里就定义了两个case: case1是一个正向case, 根据正确的nameid查询用户信息。 case2是一个反向case, 给出一个错误的nameid 查询用户信息。 然后将这两个case 存放到一个dict 中,最后引入代码里面进行请求使用。

data.py文件内容如下:

代码语言:javascript
复制
#正向的case
case1='''<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <soap:Header>
            <OGHeader xmlns="http://webservices.micros.com/og/4.3/Core/" transactionID="2019062118114433750450">
              <Origin entityID="OW1" systemType="WEB"/>
              <Destination entityID="TI" systemType="ORS"/>
            </OGHeader>
          </soap:Header>
          <soap:Body>
            <FetchProfileRequest xmlns="http://webservices.micros.com/oqq/5.1/Name.wsdl">
              <NameID type="INTERNAL">186217986</NameID>
            </FetchProfileRequest>
          </soap:Body>
        </soap:Envelope>'''
代码语言:javascript
复制
#反向的case
case2='''<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <soap:Header>
            <OGHeader xmlns="http://webservices.micros.com/og/4.3/Core/" transactionID="2019062118114433750450">
              <Origin entityID="OW1" systemType="WEB"/>
              <Destination entityID="TI" systemType="ORS"/>
            </OGHeader>
          </soap:Header>
          <soap:Body>
            <FetchProfileRequest xmlns="http://webservices.micros.com/oqq/5.1/Name.wsdl">
              <NameID type="INTERNAL">1862179863</NameID>
            </FetchProfileRequest>
          </soap:Body>
        </soap:Envelope>'''

dict1={"success":case1,"fail":case2}

test.py文件内容如下:

代码语言:javascript
复制
#coding=utf-8
import httplib
from data import dict1

def Featchinfo():
 url="test.beat.com"
 port=9700
 path="/oqq_ws_51/Name.asmx"
 header={'Content-Type' : 'text/xml; charset=utf-8'}
 conn = httplib.HTTPConnection(url,port,timeout=10)
 for key,value in dict1.items():
     conn.request('POST',path,value.encode('utf-8'),header)
     response=conn.getresponse()
     resp=response.read()
     if(key=="success" and "resultStatusFlag=\"SUCCESS" in str(resp)):
         print("case1 验证通过")
     elif(key=="fail" and "resultStatusFlag=\"FAIL" in str(resp)):
         # print(resp)
         print("case2 验证通过")

if __name__ == '__main__':
 Featchinfo()
代码语言:javascript
复制
结果输出:
case2 验证通过
case1 验证通过

总结 : 通过以上简单的几步就可以完成WebService Api的测试,对于示例中的测试数据大家可以根据Api文档的描述不断的丰富测试场景。与君共勉,每天进步一点点。

友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方不显示文章来源时转载。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无量测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档