1:在Python接口自动化中,对于soap协议的xml的请求我们可以使用Suds Client来实现,其soap协议传参的类型基本上是有2种:

第一种是传参,不需要再创建啥,

第二种就是ns0类型的,如果直接以dict类型传进去的话是,里面的程序是无法将对应的参数一一对应上的,所以我们这边需要创建一个工厂,然后把这些工厂当做参数传入进去。下面就进行一步步解释一下这个步骤

Service ( BssUserManageServiceService ) tns="http://service.bos.webservice.os.ot.fontw.com/"
Prefixes (1)
ns0 = "http://bssUserManage.service.bos.webservice.os.ot.fontw.com/"
Ports (1):
(BssUserManageServicePort)
Methods (2):
createUserApi(ns0:custBeanFh custBean, ns0:userBeanFh userBean, ns0:acctBeanFh acctBean, ns0:orderBeanFhArray orderBeanArray, xs:string sequenceID, )
modifyUserPwdApi(xs:string userID, xs:string pwd, xs:string sequenceID, )
Types (7):
ns0:Exception
ns0:acctBeanFh
ns0:custBeanFh
ns0:orderBeanFh
ns0:orderBeanFhArray
ns0:resultBeanFh
ns0:userBeanFh

2:以第一个createUserApi方法为例:

这个方法的参数类型就是ns0,代码如下:

# 导入suds库
from suds.client import Client
user_url = "http://192.168.0.1:7008/oss/rest/bss?wsdl" # 这里是你的webservice访问地址
client = Client(user_url) # Client里面直接放访问的URL,可以生成一个webservice对象
print(client) # 打印所webservice里面的所有接口方法名称
# 对每个含有 ns0的参数类型进行创建一个工厂
userBean = client.factory.create("ns0:userBeanFh")
userBean_temp = createuserApi ["userBean"]
custBean = client.factory.create("ns0:custBeanFh")
custBean_temp = createuserApi ["custBean"]
orderBeanArray = client.factory.create("ns0:orderBeanFhArray")
orderBeanArray.item = createuserApi ["orderBeanArray"]
# 把对应的参数数据传进你所要调用的方法即可
createuserApi = {
"custBean": {"custID": "custid08", "custName": "custname08", "custTelephone": "88888888"},
"userBean": {"userID": "100000", "userName": "Test", "password": "123456789"},
"sequenceID": 20170831205310
}
# 调用对应的方法
result = client.service.createUserApi(orderBeanArray=orderBeanArray, acctBean=userBean_temp ,
userBean=userBean_temp ,
custBean=custBean_temp , sequenceID=param["sequenceID"])

官方文档参考:https://webkul.com/blog/python-suds-client/

自己之前的操作是没有创建其工厂,就直接传参数进去,导致其一直没有跑通过,最后得已于自己导师的帮助才得以解决,在此非常感谢他。

Python接口自动化——soap协议传参的类型是ns0类型的要创建工厂方法纪要的更多相关文章

  1. python接口自动化1-http协议简介

    前言 知道接口测试的小伙伴都应清楚http协议了,如果你还不清楚,那么接口测试做不好,自动化接口就更做不好了.那么做接口测试前先了解下http: HTTP协议(HyperText Transfer P ...

  2. Python接口自动化——文件上传/下载接口

    〇.前言 文件上传/下载接口与普通接口类似,但是有细微的区别. 如果需要发送文件到服务器,例如:上传文档.图片.视频等,就需要发送二进制数据,上传文件一般使用的都是 Content-Type: mul ...

  3. python接口自动化六(参数化也就是把之前敲过的代码封装成方法)

    前言 前面一篇实现了参数的关联,那种只是记流水账的完成功能,不便于维护,也没什么可读性,接下来这篇可以把每一个动作写成一个函数,这样更方便了. 参数化的思维只需记住一点:不要写死 (由于博客园登录机制 ...

  4. python接口自动化11-post传data参数案例

    前言: 前面登录博客园的是传json参数,有些登录不是传json的,如jenkins的登录,本篇以jenkins登录为案例,传data参数. 一.登录jenkins抓包 1.登录jenkins,输入账 ...

  5. python接口自动化18-multipart/form-data上传多个附件

    前言 reuqests上传一张图片到服务器,前面已经介绍过了,那么如何在提交BUG的时候,上传附件呢? 上传附件的时候,文件的name参数名称是一样的,python里面key是不可以重复的,又如何处理 ...

  6. python接口自动化(十)--post请求四种传送正文方式(详解)

    简介 post请求我在python接口自动化(八)--发送post请求的接口(详解)已经讲过一部分了,主要是发送一些较长的数据,还有就是数据比较安全等.我们要知道post请求四种传送正文方式首先需要先 ...

  7. python接口自动化 -参数关联(一)

    原文地址https://www.cnblogs.com/yoyoketang/p/6886610.html 原文地址https://www.cnblogs.com/yoyoketang/ 原文地址ht ...

  8. python接口自动化24-有token的接口项目使用unittest框架设计

    获取token 在做接口自动化的时候,经常会遇到多个用例需要用同一个参数token,并且这些测试用例跨.py脚本了. 一般token只需要获取一次就行了,然后其它使用unittest框架的测试用例全部 ...

  9. python接口自动化1-发送get请求

    前言 requests模块,也就是老污龟,为啥叫它老污龟呢,因为这个官网上的logo就是这只污龟,接下来就是学习它了. 一.环境安装 1.用pip安装requests模块 >>pip in ...

随机推荐

  1. linux c编程:初识进程与线程

    p { margin-bottom: 0.25cm; line-height: 120% } (一) 认识进程 在Linux系统中,每一个进程都有自己的ID,就如同人的身份证一样.linux中有一个数 ...

  2. SGI STL内存配置器存在内存泄漏吗?

    阅读了SGI的源码后对STL很是膜拜,很高质量的源码,从中学到了很多.温故而知新!下文中所有STL如无特殊说明均指SGI版本实现. STL 内存配置器 STL对内存管理最核心部分我觉得是其将C++对象 ...

  3. MySQL(四)--蠕虫复制、查询

    1 蠕虫复制 蠕虫复制:从已有的数据中去获取数据,然后将数据又进行新增操作,数据成倍增加. 表创建高级操作:从已有创建新表(复制表结构) create table 表名 like 数据库.表名; 蠕虫 ...

  4. 201521123077 《Java程序设计》第3周学习总结

    1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  5. 201521123040《Java程序设计》第2周学习总结

    1. 本周学习总结 本周学习目录: <1>回顾(Java程序) <2>掌握各种数据类型的使用 <3>掌握运算符和表达式的使用 <4>枚举类.String ...

  6. 201521123027 <java程序设计>第11周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2.书面作业 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) 1.1 除了使用synchro ...

  7. 201521123066 《Java程序设计》第十二周实验总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...

  8. 解决vsftp无法启动问题(转)

    [root@node11 ~]# service vsftpd restartShutting down vsftpd:                                      [F ...

  9. Atom的追踪函数插件和自定义语法

    atom网盘链接:http://pan.baidu.com/s/1nvt7vJz 密码:om26 追踪函数插件 直接使用最新autom版本傻瓜式安装 名字:goto-definition 地址:htt ...

  10. 定位页面元素之xpath详解以及定位不到测试元素的常见问题

    一.定位元素的方法 id:首选的识别属性,W3C标准推荐为页面每一个元素设置一个独一无二的ID属性, 如果没有且很难找到唯一属性,解决方法:(1)找开发把id或者name加上.如果不行,解决思路可以是 ...