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

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. CefSharp请求资源拦截及自定义处理

    CefSharp请求资源拦截及自定义处理 前言 在CefSharp中,我们不仅可以使用Chromium浏览器内核,还可以通过Cef暴露出来的各种Handler来实现我们自己的资源请求处理. 什么是资源 ...

  2. Java:ConcurrentHashMap类小记-2(JDK7)

    Java:ConcurrentHashMap类小记-2(JDK7) 对 Java 中的 ConcurrentHashMap类,做一个微不足道的小小小小记,分三篇博客: Java:ConcurrentH ...

  3. [软工顶级理解组] Beta阶段团队贡献分评分

    贡献分评分依据 下述表格适用于前端.后端.爬虫开发者的评分,在此基础上进行增减. 类别 程度 加减分 准时性 提前完成 +0 按时完成 +0 延后完成,迟交时间一天内或未延误进度 -2 延后完成,迟交 ...

  4. csp总结 (差点爆零的总结)

    T1,iterator忘了怎么写了,想了很久都想不出来有什么可以替代,只好O(n^2): T2,不会,只会打暴力 T3,自以为是正解,写了很久大概3h,却一直过不了大样例,大样例输出全是0: T4,不 ...

  5. Python中Numpy及Matplotlib使用

    Python中Numpy及Matplotlib使用 1. Jupyter Notebooks 作为小白,我现在使用的python编辑器是Jupyter Notebook,非常的好用,推荐!!! 你可以 ...

  6. Android上安装第三方库

    在Android sdk中安装预安装第三方的(动态,静态)库,到系统中,方便模块无差别的使用. Android.mk include $(CLEAR_VARS) LOCAL_MODULE_TAGS : ...

  7. Des加密解密(公共方法)

    1 public class Des 2 { 3 public static string Encrypt(string message, string key) 4 { 5 DES des = ne ...

  8. 转载:10G以太网光口与Aurora接口回环实验

    10G以太网光口与高速串行接口的使用越来越普遍,本文拟通过一个简单的回环实验,来说明在常见的接口调试中需要注意的事项.各种Xilinx FPGA接口学习的秘诀:Example Design.欢迎探讨. ...

  9. 无判断max 牛客网 程序员面试金典 C++ Python

    无判断max 牛客网  程序员面试金典 C++ Python 题目描述 请编写一个方法,找出两个数字中最大的那个.条件是不得使用if-else等比较和判断运算符. 给定两个int a和b,请返回较大的 ...

  10. Codeforces 1009E Intercity Travelling | 概率与期望

    题目链接 题目大意: 一个人要从$A$地前往$B$地,两地相距$N$千米,$A$地在第$0$千米处,$B$地在第$N$千米处. 从$A$地开始,每隔$1$千米都有$\dfrac{1}{2}$的概率拥有 ...