返回顶部
首页 > 资讯 > 后端开发 > Python >python在webservice接口测
  • 346
分享到

python在webservice接口测

接口pythonwebservice 2023-01-31 05:01:55 346人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

    接口测试第二波,WEBservice接口来咯,欢迎各位小伙伴吐槽~    本次拿免费的互联网国内手机号码归属地查询WEB服务webservice接口做例子,当然有很多免费webservice接口可以供大家使用,百度一下就有N多,手机

    接口测试第二波,WEBservice接口来咯,欢迎各位小伙伴吐槽~

    本次拿免费的互联网国内手机号码归属地查询WEB服务webservice接口做例子,当然有很多免费webservice接口可以供大家使用,百度一下就有N多,手机号码归属地查询wsdl地址如下:Http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl

打开后可以看到有一个getMobileCodeInfo方法,入参是一个电话号码,当然也可以通过python调用来看到,接下来会介绍。使用Python的suds模块,这是一个第三方模块,需要安装,如果安装了setuptools或pip,可以直接用easy_install 或pip命令安装,easy_install suds或pip install suds即可,如果没有安装,可以去官网上下载,http://pypi.python.org/pypi/suds,下载后进入suds目录python setup.py install 即可。

    由于每个接口方法都是不一样的,入参也不一样,所以没有办法像http rest接口一样写成一个通用类,只能在测试的时候修改接口的方法名和入参了。

    首先我们来看一下这个wsdl下都有哪些方法:

suds.client Client#导入suds.client 模块下的Client类
client = Client()#创建一个wsdl对象
print client#打印这个对象的详细信息

打印出来的结果如下:

Suds ( https://fedorahosted.org/suds/ )  version: 0.4 GA  build: R699-20100913

Service ( MobileCodeWS ) tns="http://WebXml.com.cn/"

   Prefixes (1)

      ns0 = "http://WebXml.com.cn/"

   Ports (2):

      (MobileCodeWSSoap)

         Methods (2):

            getDatabaseInfo()

            getMobileCodeInfo(xs:string mobileCode, xs:string userID, )

         Types (1):

            ArrayOfString

      (MobileCodeWSSoap12)

         Methods (2):

            getDatabaseInfo()

            getMobileCodeInfo(xs:string mobileCode, xs:string userID, )

         Types (1):

            ArrayOfString

=================================================

从上面的结果可以看到有两个方法一个是getDatabaseInfo()没有入参,一个是getMobileCodeInfo(),入参是一个字符串,手机号和用户id,免费用户的用户id可以不填,下面就是用来测试的代码了,注释也很详细:

from suds.client import Client #导入suds.client 模块下的Client类
Mobile_url="http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl"#手机号码归属地
QQ_url="http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl"#qq在线状态
Random_url='http://webservice.webxml.com.cn/WebServices/RandomFontsWebService.asmx?wsdl'#生成随机字符串
def WsTest(url,Wsname,data):
   '''
   :param url: wsdl地址
   :param Wsname: 方法名,做保存结果的文件名
   :param data: 方法的传入参数
   :return:
   '''
   client = Client(url)#创建一个webservice接口对象
   client.service.getMobileCodeInfo(data)#调用这个接口下的getMobileCodeInfo方法,并传入参数
   req = str(client.last_sent())#保存请求报文,因为返回的是一个实例,所以要转换成str
   response = str(client.last_received())#保存返回报文,返回的也是一个实例
   print response#打印返回报文
   WriteRes(Wsname,req,response,data)#调用写入结果函数,把方法名、请求报文、返回报文、和入参传进去
def WriteRes(WsName,req,response,data):
   '''
   :param WsName: 接口的方法名
   :param req: 请求报文
   :param response: 返回报文
   :param data: 传入的数据
   '''
   res = response.find(data)#从返回结果里面找data,如果找到的话返回data的下标,也就是索引,找不到的话返回-1
   fw_flag = open('/tmp/WsTestRes/WsTestRes.txt','a')#以追加模式打开写入结果文件
   if res>0:
       fw_flag.write('%s  pass'%WsName)#如果在返回报文中找到data的话,就写pass,否则就写fail
   else:
       fw_flag.write('%s  fail'%WsName)
   fw_flag.close()#关闭结果文件
   fw_result = open('/tmp/WsTestRes/%s_result.txt'%WsName,'w')#打开以接口方法命名的文件
   fw_result.write(req+'\n'*3+response)#保存请求报文和返回报文,\n*3的意思是换行三次
   fw_result.close()#关闭结果文件
if __name__ =='__main__':
   WsTest(Mobile_url,'getMobileCodeInfo','110')

如果传入的是一个合法的手机号,执行后会看到类似下面的返回结果,所有判断成功或者失败就可以用手机号来判断,所以上面写的如果在返回报文中找到手机号的话,就说明调用成功了,可以把该方法pass。

<?xml version="1.0" encoding="UTF-8"?>

<soap:Envelope>

   <soap:Body>

      <getMobileCodeInfoResponse xmlns="http://WebXml.com.cn/">

         <getMobileCodeInfoResult>18612538722:北京 北京 北京联通GSM卡</getMobileCodeInfoResult>

      </getMobileCodeInfoResponse>

   </soap:Body>

</soap:Envelope>

=================================================

下面是输入非法的手机号返回的结果,说明根据返回报文中有没有手机号来判断是否通过是靠谱的。

<?xml version="1.0" encoding="UTF-8"?>

<soap:Envelope>

   <soap:Body>

      <getMobileCodeInfoResponse xmlns="http://WebXml.com.cn/">

         <getMobileCodeInfoResult>手机号码错误 http://www.webxml.com.cn</getMobileCodeInfoResult>

      </getMobileCodeInfoResponse>

   </soap:Body>

</soap:Envelope>

=================================================

over,当然如果导入threading(多线程)模块就能做一个简单的压力测试了,下次会更新哦



--结束END--

本文标题: python在webservice接口测

本文链接: https://lsjlt.com/news/188669.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python在webservice接口测
        接口测试第二波,webservice接口来咯,欢迎各位小伙伴吐槽~    本次拿免费的互联网国内手机号码归属地查询WEB服务webservice接口做例子,当然有很多免费webservice接口可以供大家使用,百度一下就有N多,手机...
    99+
    2023-01-31
    接口 python webservice
  • WSDL测试webservice接口记录
    ...
    99+
    2019-11-02
    WSDL测试webservice接口记录
  • Python访问WebService接口
    1.使用Python访问WebService远程方法 1)安装Sud库 https://fedorahosted.org/suds/ 下载 tarball 2)示例代码如下: from suds.client import Client...
    99+
    2023-01-31
    接口 Python WebService
  • Python调用webservice接口
    from suds.client import Client url = "http://218.90.174.179:50038/JmYfjzService/clientRegisterServiceWSDL" test = Clie...
    99+
    2023-01-31
    接口 Python webservice
  • 使用Postman和SoapUI工具测试WebService接口
    一、使用Postman测试WebService接口 Postman:适用RESTful接口(HTTP/HTTPS协议)的功能测试 通过浏览器访问http://oa.tmt.tcl.c...
    99+
    2024-04-02
  • 如何在PHP中使用WebService接口
    这篇文章将为大家详细讲解有关如何在PHP中使用WebService接口,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP...
    99+
    2023-06-14
  • Eclipse发布WebService和调用WebService接口
    要发布WebService,您需要遵循以下步骤:1. 创建一个Java项目,并将其导入到Eclipse中。2. 在项目中创建一个类,...
    99+
    2023-09-08
    Eclipse
  • 在Android中访问WebService接口的方法
    需要引入ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar 代码如下:  //WebService的命名空间  st...
    99+
    2022-06-06
    WebService 方法 webservice接口 Android
  • 如何使用Postman和SoapUI工具测试WebService接口
    这篇文章主要讲解了“如何使用Postman和SoapUI工具测试WebService接口”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Postman和SoapUI工具测试WebSer...
    99+
    2023-06-30
  • 关于python测试webservice
    现在大公司非常流行用python做产品的测试框架,还有对于一些快速原型产品的开发也好,很好地支持OO编程,代码易读。Python的更新挺快的,尤其是第三方库。对于测试人员,代码基础薄弱,用python语言容易上手。今天就python测试we...
    99+
    2023-01-31
    测试 python webservice
  • 如何调用webservice接口
    如何调用webservice接口,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。调用方法:首先选中“项目”选项卡,点击鼠标右键,在弹出的右键菜单中选择“new”-“other...
    99+
    2023-06-20
  • 【三】SpringBoot开发WebService接口
    SpringBoot开发WebService接口 一、服务端开发 1、引入依赖 org.springframework.boot ...
    99+
    2023-09-04
    spring boot java
  • webservice接口如何调用
    调用webservice接口需要以下步骤:1. 确定webservice的地址:通过查看webservice的文档或联系webser...
    99+
    2023-08-22
    webservice
  • webservice接口怎么调用
    调用WebService接口有多种方法,下面以Java语言为例进行说明: 使用JAX-WS(Java API for XML We...
    99+
    2024-02-29
    webservice
  • 如何在python中测试API接口
    这期内容当中小编将会给大家带来有关如何在python中测试API接口,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pyt...
    99+
    2023-06-14
  • python测试dubbo接口
    本文主要介绍使用Python调用Hession协议dubbo接口示例。 关于Dubbo Hession协议: Dubbo本身支持多种远程调用方式,例如Dubbo RPC(二进制序列化 + tcp协议)、http invoker(二进...
    99+
    2023-01-31
    接口 测试 python
  • python接口测试(一)
    基于Jenkins接口测试# coding = utf-8 import httplib http_client = None http_client = httplib.HTTPConnection('localhost' , 808...
    99+
    2023-01-31
    接口 测试 python
  • python接口测试(三)
    引入unittest框架get请求#coding: utf-8 import unittest import requests import json class TestGet(unittest.TestCase):     def s...
    99+
    2023-01-31
    接口 测试 python
  • python在rest接口测试中的应用
        近期一直在学习python,这两天正好做rest接口的接口测试,就尝试着用python写一个测试rest接口的通用类,省去用工具的繁琐,也显得比较高大上一些。    http rest接口最常用的两种请求方式,POST和GET两种方...
    99+
    2023-01-31
    接口 测试中 python
  • java如何调用webservice接口
    在Java中调用Web服务接口,可以使用Java的SOAP客户端库、REST客户端库或者HTTP客户端库。1. 使用Java的SOA...
    99+
    2023-09-13
    java webservice
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作