Python测试WebService接口的实现示例

 更新时间:2024年03月01日 15:45:07   作者:互联网杂货铺  
webService接口是走soap协议通过http传输,请求报文和返回报文都是xml格式的,本文主要介绍了Python测试WebService接口,具有一定的参考价值,感兴趣的可以了解一下

WebService是什么?

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

测试环境准备

python2.7 + httplib 内置库

数据准备

这里就定义了两个case:

  • case1是一个正向case, 根据正确的nameid查询用户信息。
  • case2是一个反向case, 给出一个错误的nameid 查询用户信息。

然后将这两个case 存放到一个dict 中,最后引入代码里面进行请求使用。

data.py文件内容如下:

#正向的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>'''

#反向的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文件内容如下:

#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()

结果输出:
case2 验证通过
case1 验证通过

总结 

通过以上简单的几步就可以完成WebService Api的测试,对于示例中的测试数据大家可以根据Api文档的描述不断的丰富测试场景。

到此这篇关于Python测试WebService接口的文章就介绍到这了,更多相关PythonWebService接口测试内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Python读取和写入txt、Excel文件和JSON文件的方法

    Python读取和写入txt、Excel文件和JSON文件的方法

    Python 提供了多种方法来读取和写入不同类型的文件,包括文本文件(txt)、Excel 文件和 JSON 文件,本文给大家介绍了一些常用的方法和示例代码,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-07-07
  • 解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题

    解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题

    这篇文章主要介绍了解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python实现批量改文件名称的方法

    python实现批量改文件名称的方法

    这篇文章主要介绍了python实现批量改文件名称的方法,涉及Python中os模块rename方法的相关使用技巧,需要的朋友可以参考下
    2015-05-05
  • python数据库如何连接SQLite详解

    python数据库如何连接SQLite详解

    这篇文章主要介绍了Python实现连接SQLite数据库的方法,在Python数据库编程中有着广泛的应用,需要的朋友可以参考下,希望能给你带来帮助
    2021-08-08
  • 基于Django框架利用Ajax实现点赞功能实例代码

    基于Django框架利用Ajax实现点赞功能实例代码

    点赞这个功能是我们现在经常会遇到的一个功能,下面这篇文章主要给大家介绍了关于基于Django框架利用Ajax实现点赞功能的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • pandas使用apply函数给表格同时添加多列

    pandas使用apply函数给表格同时添加多列

    本文介绍了利用Pandas的apply函数在DataFrame中同时添加多列, 文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-11-11
  • Python基础学习之认识线程

    Python基础学习之认识线程

    这篇文章主要介绍了Python线程,这篇开始我们将进入中级编程。处理更加复杂事情。比如本文的线程,咱们先从基础知识入手,需要的朋友可以参考下下面文章的详细内容
    2022-02-02
  • python pandas消除空值和空格以及 Nan数据替换方法

    python pandas消除空值和空格以及 Nan数据替换方法

    今天小编就为大家分享一篇python pandas消除空值和空格以及 Nan数据替换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Django实现简单网页弹出警告代码

    Django实现简单网页弹出警告代码

    今天小编就为大家分享一篇Django实现简单网页弹出警告代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • python 求1-100之间的奇数或者偶数之和的实例

    python 求1-100之间的奇数或者偶数之和的实例

    今天小编就为大家分享一篇python 求1-100之间的奇数或者偶数之和的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06

最新评论