最近 在做接口测试的时候,遇到如下问题:如何通过数据驱动去做批量接口测试呢,我们的测试数据放在哪里去维护?下面整理出相关点,供大家参考

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接口 基础知识的更多相关文章

  1. Python专题三字符串的基础知识

    Python专题三字符串的基础知识 在Python中最重要的数据类型包括字符串.列表.元组和字典等.该篇主要讲述Python的字符串基础知识. 一.字符串基础 字符串指一有序的字符序列集合,用单引号. ...

  2. python爬虫之Beautiful Soup基础知识+实例

    python爬虫之Beautiful Soup基础知识 Beautiful Soup是一个可以从HTML或XML文件中提取数据的python库.它能通过你喜欢的转换器实现惯用的文档导航,查找,修改文档 ...

  3. Python之测试webservice接口

    前段时间学习了Python操作http接口,觉得挺容易的.最近项目组也有接触webservice接口,心里想想是否Python也可以操作这类接口.于是利用伟大的度娘,花了6个小时研究出来了,所以迫不及 ...

  4. 1 python大数据挖掘系列之基础知识入门

    preface Python在大数据行业非常火爆近两年,as a pythonic,所以也得涉足下大数据分析,下面就聊聊它们. Python数据分析与挖掘技术概述 所谓数据分析,即对已知的数据进行分析 ...

  5. Python 插件(add-in)基础知识

    1)  Python插件为何物 一个插件(add-in)就是一个客户化,比如嵌入到ArcGIS应用程序中的工具条上的一系列工具,这些工具作为ArcGIS标准程序的补充可以为客户完成特殊任务. ArcG ...

  6. Python 爬虫(1)基础知识和简单爬虫

    Python上手很容易,免费开源,跨平台不受限制,面向对象,框架和库很丰富. Python :Monty Python's Flying Circus (Python的名字来源,和蟒蛇其实无关). 通 ...

  7. python学习(一) 基础知识

    开始学习<Python基础教程> 1.2 交互式解释器 按照书上的例子敲了个最简单的print函数,居然报错: >>> print "fsdfs"Sy ...

  8. python大数据挖掘系列之基础知识入门

    preface Python在大数据行业非常火爆近两年,as a pythonic,所以也得涉足下大数据分析,下面就聊聊它们. Python数据分析与挖掘技术概述 所谓数据分析,即对已知的数据进行分析 ...

  9. C# interface (接口基础知识详解)

    Interface(接口) (本文转载地址:http://blog.sina.com.cn/s/blog_574c993d0100d59n.html) 介绍:C#中的接口提供了一种实现运行时的多态.通 ...

随机推荐

  1. Unity——基于UGUI的UI框架

    基于UGUI的UI框架 一.Demo展示 二.关键类 MonoSingle 继承MonoBehaviour的单例基类:做了一些特殊处理: 保证场景中必须有GameInit名称的物体,所有单例管理器脚本 ...

  2. 自然语言处理标注工具——Brat(安装、测试、使用)

    一.Brat标注工具安装 1.安装条件: (1)运行于Linux系统(window系统下虚拟机内linux系统安装也可以) (2)目前brat最新版本(v1.3p1)仅支持python2版本运行使用( ...

  3. Pytorch学习2020春-1-线性回归

    线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现 线性回归的基本要素 模型 为了简单起见,这里我们假设价格只取决于房屋状况的两个因素, ...

  4. 最新.NET MAUI有什么惊喜?

    .NET 6 Preview 7 现已发布啦,我们为 .NET 多平台应用程序 UI (MAUI) 引入了所有的新布局.这是性能和可靠性的重大变化.我们很高兴我们还增加了一些关于accessibili ...

  5. 2020.3.21--ICPC训练联盟周赛Benelux Algorithm Programming Contest 2019

    A Appeal to the Audience 要想使得总和最大,就要使最大值被计算的次数最多.要想某个数被计算的多,就要使得它经过尽量多的节点.于是我们的目标就是找到 k 条从长到短的链,这些链互 ...

  6. 【UE4 C++ 基础知识】<11>资源的同步加载与异步加载

    同步加载 同步加载会造成进程阻塞. FObjectFinder / FClassFinder 在构造函数加载 ConstructorHelpers::FObjectFinder Constructor ...

  7. python进阶(21)typing模块--类型提示支持

    typing介绍   Python是一门弱类型的语言,很多时候我们可能不清楚函数参数的类型或者返回值的类型,这样会导致我们在写完代码一段时间后回过头再看代码,忘记了自己写的函数需要传什么类型的参数,返 ...

  8. Convolutional Neural Network-week1编程题(TensorFlow实现手势数字识别)

    1. TensorFlow model import math import numpy as np import h5py import matplotlib.pyplot as plt impor ...

  9. kivy 选择框

    from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.lang import builder # 注册 ...

  10. py3.8安装

    ubantu python3.8# 命令下载wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tar.xz#解压tar -xvJf P ...