webservice接口测试wsdl,参数是xml格式。python,入参转化成str,返回值转化成dict调用
1、用SoapUI测试webservice接口,传入参数是xml格式时。xml格式需要将xml的外围增加<![CDATA[xml]]>
2、但是用python去做webservice测试,调用函数去传参时,直接将xml作为字符串的格式传入即可。
其中,webservice请求的返回值类型是:<class 'suds.sax.text.Text'>,
需要用json.loads(escape(result))转成字典的格式:<class 'dict'>。去引用
具体展示如下:
注意SoapUI:xml的格式需要将xml外围增加<![CDATA[xml]]>
from suds.client import Client
import json
from xml.sax.saxutils import escape class WebserviceSuds():
def webservice_suds(self,url,msg,operetions):
'''url:webservice的wsdl请求地址
msg:传入的参数 注:直接把xml参数当成一个字符串来传递就OK了
operetions:接口操作方式''' # 创建一个webservice对象,来调用webservice里面的各类接口
c=Client(url)
# print(c) # .service去调用接口函数方法method, 注:直接把xml参数当成一个字符串来传递就OK了 # 注意SoapUI:xml的格式需要将xml外围增加<![CDATA[xml]]>
# 注册接口、查询接口、查询调阅接口
if operetions=='register':
result=c.service.register(msg)
elif operetions=='query':
result=c.service.query(msg)
else:
result=c.service.querySubscribe(msg)
# escape转换成字符类型,json。loads()转成字典
result = json.loads(escape(result))
return result #factory,去查看参数情况
# register=c.factory.create("register")
# print(register)
webservice接口的返回分析:
https://www.cnblogs.com/xueli/p/6145211.html(webservie返回接口信息,详解)
https://www.cnblogs.com/nottobe/p/5718823.html
https://www.cnblogs.com/xiaomingzaixian/p/7286793.html(xml转化escape成字符串,再转字典)
https://www.cnblogs.com/xiaomingzaixian/p/7286793.html(json()的使用)
传入参数为:xml
xml.sax.saxutils.escape.
xml格式转化字符串,再用json.loads()转化成字典
<class 'suds.sax.text.Text'>
from xml.sax.saxutils import escape
import json
# 转换成字符串类型
print(type(escape(res))) # 转换成字典类型
create_response = json.loads(escape(res))
print(create_response)
print(type(create_response))
webservice接口测试wsdl,参数是xml格式。python,入参转化成str,返回值转化成dict调用的更多相关文章
- 使用soapUI5.3.0调试webservice接口(参数为XML格式)
最近项目中经常要调试webservice接口,从朋友处了解到他们经常使用SoapUI,因此学习一下这个工具的使用,为避免遗忘,特地记录下来,分享分享... 下载 #####首先,下载SoapUI,我下 ...
- day11 python学习 函数的建立,返回值,参数
函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算,如:发送邮件.计算出 [11,22,38,888,2]中的最大数等 ...
- python使用threading获取线程函数返回值的实现方法
python使用threading获取线程函数返回值的实现方法 这篇文章主要介绍了python使用threading获取线程函数返回值的实现方法,需要的朋友可以参考下 threading用于提供线程相 ...
- Python基本语法_函数_返回值
目录 目录 前言 函数的返回值 在函数中Return和Print的区别 函数中的文档 前言 函数的返回值是函数重要的组成部分.函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返 ...
- webservice接口测试wsdl
http和webservice接口测试有什么区别? webservice的基础组成是http+xml 三要素:soap传输协议,uddi,wsdl(webservice描述语言xml格式) 优点:跨平 ...
- 返回参数去掉xml格式,以纯json格式返回(转)
Json 格式显示public static void Register(HttpConfiguration config) { //////////////设置不以xml格式返回 config.Fo ...
- python中函数的定义、返回值以及参数的简要介绍
一. 1.函数 定义:def关键字开头,空格之后接函数名称和圆括号(),后面紧跟‘:”. 函数是对功能的封装 语法: def 函数名(形参列表): 函数体(代码块,return) 调用: 函数名(实参 ...
- python操作mysql数据-执行语句返回值直接返回字典类型
fetchall()将结果放在二维数组里面,每一行的结果在元组里面 import pymysql def export(table_name): conn =pymysql.connect(host ...
- Python+request 登录接口reponse的返回值token跨py文件的传递《二》
主要使用场景: 一般我们在进行接口测试时,依赖登录接口后reponse中的某些返回值,因此需要将login接口单独写一个py文件,另外的py文件均可调用login的reponse返回值使用.共用登录接 ...
随机推荐
- Coursera, Big Data 3, Integration and Processing (week 5)
Week 5, Big Data Analytics using Spark Programing in Spark Spark Core: Programming in Spark us ...
- P5290 [十二省联考2019]春节十二响
题目地址:P5290 [十二省联考2019]春节十二响 骗分方法 如果你实在一点思路也没有,暴力都不会打,那么请考虑一下骗分. 方法一 输出所有 \(M\) 的和. 期望得分:0分. 实际还有5分 方 ...
- CF1139C Edgy Trees
题目地址:CF1139C Edgy Trees 红黑树 \(ans\) 应该等于总数(\(n^k\))减去不含黑色边的序列数量 不含黑色边就意味着一个序列只能在一个红色联通块中 一个红色联通块中的序列 ...
- shell脚本的小记
作者:邓聪聪 mysql的脚本执行 #!/bin/sh HOST="127.0.0.1" PORT=" UESRNAME="root" PASSWOR ...
- WSL用xshell连接
编辑配置文件 sudo vim /etc/ssh/sshd_config Port 8022(因为 Windows 10 的 SSH 端口已经默认被占用,所以我换成了一个新的端口) (去掉前面的 #) ...
- lnmp.org 安装环境的,root权限都没法删除网站文件夹,问题解决-转
rm -rf删除网站目录时出现rm: cannot remove `.user.ini': Operation not permitted rm -rf删除网站目录时出现rm: cannot remo ...
- ubuntu 32/64 bit
https://askubuntu.com/questions/454253/how-to-run-32-bit-app-in-ubuntu-64-bit how to run 32-bit app ...
- 微信小程序换皮肤,动态切换菜单栏和导航栏的样式,动态修改TabBar和NavigationBar
在做微信小程序换皮肤的时候,需要动态修改菜单栏(TabBar)和导航栏(NavigationBar) 但是在小程序中它们的样式是写在app.json里面,而且app.json是静态编译,运行时哪怕你修 ...
- Android 基础一 TextView,Style样式,Activity 传值,选择CheckBox 显示密码
1.修改TextView字体 mTextView = (TextView) findViewById(R.id.textview1); mTextView.setText("I am her ...
- Git permission denied(public key) 解决方法
1. 在Linux上: # ssh-keygen ##一定用 id_rsa.pub # cat /root/.ssh/id_rsa.pub 2. copy 整个文件内容到剪切板 3. 打开 ...