zoukankan      html  css  js  c++  java
  • 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自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:

     添加关注,让我们一起共同成长!

  • 相关阅读:
    深度之眼PyTorch训练营第二期 --- 8、权值初始化
    深度之眼PyTorch训练营第二期 ---7、nn网络层--卷积层
    深度之眼PyTorch训练营第二期 ---6、nn.Module与网络模型构建
    C#数据库部分复习
    【jzoj1481】偷懒的西西
    【2020.12.03提高组模拟】黎明卿 (bondorudo)
    【2020.11.30提高组模拟】剪辣椒(chilli)
    引流
    【高精度】加减乘+组合数+比较大小(结构体)
    【易懂】费用流【SDOI2009】晨跑
  • 原文地址:https://www.cnblogs.com/Wu13241454771/p/13576131.html
Copyright © 2011-2022 走看看