python openpyxl、RESTful、Webservice接口 基础知识
最近 在做接口测试的时候,遇到如下问题:如何通过数据驱动去做批量接口测试呢,我们的测试数据放在哪里去维护?下面整理出相关点,供大家参考
1、如何维护接口测试数据:放在excel文件中,通过python openpyxl第三方库,读取并写回测试结果。
#1、编写测试用例,读取测试用例,并写回
#第三方库 openpyxl
from openpyxl import load_workbook #打开工作簿
wb=load_workbook["test_datas.xlsx"] #定位表单sheet
sheet=wb["info"] #获取单元格cell值
value=sheet.cell(1,2).value #修改单元格cell值
sheet.cell(2,2).value="new" #获取最大行值row、最大列值column
max_row=sheet.max_row
max_cow = sheet.max_column #保存工作簿
wb.save("test_datas.xlsx")
2、如何对RESTful接口进行,接口请求,并获取返回的json值。用request第三方库,直接把请求体放在json参数里,入参去请求。
#2、进行RESTful,接口请求
#requests
import requests
global cookies url = "http://172.17.0.128:15124/mdm/public/query"
headers = {'Content-Type': 'application/json'}
datas1={"Request": {"Head": {"LicId": "","ContentType": "text/json","TranCode": "DeptInfo","ServiceVersion":"5.0.2","ContentEncoding": "","Timestamp": "2018-10-19 17:09:55.137","TransferType": "","SecurityContent": "","OrgId": "01","Callback": "","AppId": "HIS0311","Version": "1.1","SecurityPolicy": "","AppType": "PC","MessageId": "EA455467-A04A-4E73-8BE4-190078D3C258"} ,"Body": {"Page":1,"PageSize":30,"Params":[{"key":"deptCode","value":"T234"}]}}} #python自带json把字典格式转成json格式
res=requests.post(url,json=requestbody,headers=headers,cookies=cookies)
res.json() res=requests.get(url,json=requestbody,headers=headers,cookies=cookies)
res.json()
3、如何对Wbeservice接口,进行处理?直接通过suds.client的Client()方法,创建webService对象,查看里面的各类接口-->>
在去service调用方法--->>最后对sax.text格式的返回值,用json.load(escape(res))转化成字典格式,
#3、进行Webservice,接口请求
#suds
from suds.client import Client
import json
from xml.sax.saxutils import escape url = "http://172.17.0.128:15124/mdm/public/ws/MDMService?wsdl"
operetions=“register”
msg = '''{"Request":{"Head":{"LicId":"","ContentType":"text/json","TranCode":"hostipal","ServiceVersion":"1.0","ContentEncoding":"","Timestamp":"2018-10-1917:09:55.137","TransferType":"","SecurityContent":"","OrgId":"42504942400","Callback":"","AppId":"CIS","Version":"1.0","SecurityPolicy":"","AppType":"PC","MessageId":"EA455467-A04A-4E73-8BE4-190078D3C258"},"Body":{"Page":1,"PageSize":30,"Params":[{"key":"name","value":"dsnvb","like":1}]}}}''' # 创建一个webservice对象,来调用webservice里面的各类接口
c=Client(url)
# print(c) # .service去调用接口函数方法method, 注:直接把xml参数当成一个字符串来传递就OK
# 注意SoapUI:xml的格式需要将xml外围增加<![CDATA[xml]]>
# 注册接口、查询接口、查询调阅接口
#接口返回类型: <class 'suds.sax.text.Text'>
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(<json>)转成字典
result = json.loads(escape(result))
return result #factory,去查看参数情况
# register=c.factory.create("register")
# print(register) query_msg = '''{"Request":{"Head":{"LicId":"","ContentType":"text/json","TranCode":"hostipal","ServiceVersion":"1.0","ContentEncoding":"","Timestamp":"2018-10-1917:09:55.137","TransferType":"","SecurityContent":"","OrgId":"42504942400","Callback":"","AppId":"CIS","Version":"1.0","SecurityPolicy":"","AppType":"PC","MessageId":"EA455467-A04A-4E73-8BE4-190078D3C258"},"Body":{"Page":1,"PageSize":30,"Params":[{"key":"name","value":"dsnvb","like":1}]}}}'''
querySubscribe_msg='''{"Request":{"Head":{"LicId":"","ContentType":"text/json","TranCode":"hostipal","ServiceVersion":"1.0","ContentEncoding":"","Timestamp":"2018-10-1917:09:55.137","TransferType":"","SecurityContent":"","OrgId":"42504942400","Callback":"","AppId":"CIS","Version":"1.0","SecurityPolicy":"","AppType":"PC","MessageId":"EA455467-A04A-4E73-8BE4-190078D3C258"},"Body":{"Page":1,"PageSize":30,"Params":[{"key":"name","value":"dsnvb","like":1}]}}}'''
res=t.webservice_suds(url,register_msg,"register")
print(res)
print(type(res))
python openpyxl、RESTful、Webservice接口 基础知识的更多相关文章
- Python专题三字符串的基础知识
Python专题三字符串的基础知识 在Python中最重要的数据类型包括字符串.列表.元组和字典等.该篇主要讲述Python的字符串基础知识. 一.字符串基础 字符串指一有序的字符序列集合,用单引号. ...
- python爬虫之Beautiful Soup基础知识+实例
python爬虫之Beautiful Soup基础知识 Beautiful Soup是一个可以从HTML或XML文件中提取数据的python库.它能通过你喜欢的转换器实现惯用的文档导航,查找,修改文档 ...
- Python之测试webservice接口
前段时间学习了Python操作http接口,觉得挺容易的.最近项目组也有接触webservice接口,心里想想是否Python也可以操作这类接口.于是利用伟大的度娘,花了6个小时研究出来了,所以迫不及 ...
- 1 python大数据挖掘系列之基础知识入门
preface Python在大数据行业非常火爆近两年,as a pythonic,所以也得涉足下大数据分析,下面就聊聊它们. Python数据分析与挖掘技术概述 所谓数据分析,即对已知的数据进行分析 ...
- Python 插件(add-in)基础知识
1) Python插件为何物 一个插件(add-in)就是一个客户化,比如嵌入到ArcGIS应用程序中的工具条上的一系列工具,这些工具作为ArcGIS标准程序的补充可以为客户完成特殊任务. ArcG ...
- Python 爬虫(1)基础知识和简单爬虫
Python上手很容易,免费开源,跨平台不受限制,面向对象,框架和库很丰富. Python :Monty Python's Flying Circus (Python的名字来源,和蟒蛇其实无关). 通 ...
- python学习(一) 基础知识
开始学习<Python基础教程> 1.2 交互式解释器 按照书上的例子敲了个最简单的print函数,居然报错: >>> print "fsdfs"Sy ...
- python大数据挖掘系列之基础知识入门
preface Python在大数据行业非常火爆近两年,as a pythonic,所以也得涉足下大数据分析,下面就聊聊它们. Python数据分析与挖掘技术概述 所谓数据分析,即对已知的数据进行分析 ...
- C# interface (接口基础知识详解)
Interface(接口) (本文转载地址:http://blog.sina.com.cn/s/blog_574c993d0100d59n.html) 介绍:C#中的接口提供了一种实现运行时的多态.通 ...
随机推荐
- Unity——基于UGUI的UI框架
基于UGUI的UI框架 一.Demo展示 二.关键类 MonoSingle 继承MonoBehaviour的单例基类:做了一些特殊处理: 保证场景中必须有GameInit名称的物体,所有单例管理器脚本 ...
- 自然语言处理标注工具——Brat(安装、测试、使用)
一.Brat标注工具安装 1.安装条件: (1)运行于Linux系统(window系统下虚拟机内linux系统安装也可以) (2)目前brat最新版本(v1.3p1)仅支持python2版本运行使用( ...
- Pytorch学习2020春-1-线性回归
线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现 线性回归的基本要素 模型 为了简单起见,这里我们假设价格只取决于房屋状况的两个因素, ...
- 最新.NET MAUI有什么惊喜?
.NET 6 Preview 7 现已发布啦,我们为 .NET 多平台应用程序 UI (MAUI) 引入了所有的新布局.这是性能和可靠性的重大变化.我们很高兴我们还增加了一些关于accessibili ...
- 2020.3.21--ICPC训练联盟周赛Benelux Algorithm Programming Contest 2019
A Appeal to the Audience 要想使得总和最大,就要使最大值被计算的次数最多.要想某个数被计算的多,就要使得它经过尽量多的节点.于是我们的目标就是找到 k 条从长到短的链,这些链互 ...
- 【UE4 C++ 基础知识】<11>资源的同步加载与异步加载
同步加载 同步加载会造成进程阻塞. FObjectFinder / FClassFinder 在构造函数加载 ConstructorHelpers::FObjectFinder Constructor ...
- python进阶(21)typing模块--类型提示支持
typing介绍 Python是一门弱类型的语言,很多时候我们可能不清楚函数参数的类型或者返回值的类型,这样会导致我们在写完代码一段时间后回过头再看代码,忘记了自己写的函数需要传什么类型的参数,返 ...
- Convolutional Neural Network-week1编程题(TensorFlow实现手势数字识别)
1. TensorFlow model import math import numpy as np import h5py import matplotlib.pyplot as plt impor ...
- kivy 选择框
from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.lang import builder # 注册 ...
- py3.8安装
ubantu python3.8# 命令下载wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tar.xz#解压tar -xvJf P ...