浅谈Python接口对json串的处理方法
作者:ShangriDong 发布时间:2022-07-30 13:03:49
标签:Python,接口,json
最近学习Python接口测试,对于接口测试完全小白。大概一周的学习成果进行总结。
1.接口测试:
目前涉及到的只是对简单单一的接口进行参数传递,得到返回自。
2.关于各种概念:
2.1 http请求包含post方法、get方法。通过json串或XML传递,但后者未做研究
2.2 GET: 浏览器告诉服务器,只获取页面信息,并发送给我。
2.3 POST:浏览器告诉服务器想法不一些信息到某个网址,服务器需确保数据被存储且只存储一次。
2.4 HEAD:浏览器告诉服务器,给我消息头,像get那样被接收。
2.5 Python对数据的处理模块可以使用urllib、urllib2模块或requests模块
3.urllib、urllib2实例
#coding=utf_8
import urllib2,urllib
import json
import unittest,time,re
class APITest():
"""
接口测试类
"""
def api_test(self, method, url, getparams, postparams):
str1 = ''
#GET方法调用
if method == 'GET':
if getparams != "":
for x in getparams:
str1 = str1 + x + '=' + urllib2.quote(str(getparams.get(x)))
if len(getparams) > 2:
str1 = str1 + "&"
url = url + "&" + str1
result = urllib2.urlopen(url).read()
#POST方法调用
if method=='POST':
if postparams != "":
data = urllib.urlencode(postparams)
req = urllib2.Request(data)
response = urllib2.urlopen(req)
result = response.read()
#result转为json数据
jsdata = json.loads(result)
return jsdata
class APIGetRes(unittest.TestCase):
def test_call(self):
api = APITest()
getparams={'keyword':'测试'}
postparams=''
data = api.api_test('GET','http://api.zhongchou.cn/deal/list?v=1',getparams,postparams)
print data
if (data['errno']!=""):
self.assertEqual(0, data['errno'])
print"接口 deal/list-------------OK!"
else:
print"接口 deal/list-------------Failure!"
self.assertEqual(0, data['errno'])
if __name__ == '__main__':
unittest.main()
Requests实例
#coding=utf_8
import requests
import json
import unittest,time,re
class APIGetAdlis(unittest.TestCase):
def test_call(self):
github_url='http://api.zhongchou.cn/deal/list?v=1'
data = json.dumps({'keyword':'测试'})
resp = requests.post(github_url,data)
print resp.json
#if (data['errno']!=''):
# self.assertEqual(0, data['errno'])
# print"接口 deal/list-------------OK!"
#else:
# print"接口 deal/list-------------Failure!"
# self.assertEqual(0, data['errno'])
粗略了解,待深入学习!
来源:https://blog.csdn.net/dongqiushan/article/details/52329767
0
投稿
猜你喜欢
- 在做web端自动化测试用例编写过程中,大家有没有遇到窗口切换的情况,比如如下截图所示的商品列表页,点击任何一款产品后切换到这块产品详情页的情
- 代码如下:CREATE DATABASE 临时的 ON ( NAME='临时的_Data', FILENAME='h
- django中,很多时候我们都需要有一个地方来进行更加详细的权限控制,例如说哪些用户可以访问哪些页面,检查登录状态等,这里的话就涉及到了中间
- 1、生成 servie.yaml1.1、yaml转jsonservice模板yamlapiVersion: v1kind: Servicem
- 本文实例讲述了Python wxPython库Core组件BoxSizer用法。分享给大家供大家参考,具体如下:wx.BoxSizer:bo
- 把今天的学习的opencv知识先记录一下!运行环境是:pycharm话不多说,献上代码再说:import cv2 # openc
- 本文实例讲述了Python实现基于KNN算法的笔迹识别功能。分享给大家供大家参考,具体如下:需要用到:Numpy库Pandas库手写识别数据
- 选中需要操作的字符Ctrl + R 替换Ctrl + Shift + F 全局查找Ctrl + Shift + R 全局替换来源:http:
- 引言在已有的网站中,几乎所有的网站都已经实现了 自动登录所谓自动登录,其实就是在你登录后,然后关闭浏览器,接着再启动浏览器重新进入刚刚的网站
- asp如何获知页面上的图象的实际尺寸大小?见下面的两个asp文件:<!--#include virtual="/i
- 数据集数据集为Barcelona某段时间内的气象数据,其中包括温度、湿度以及风速等。本文将利用CNN来对风速进行预测。特征构造对于风速的预测
- 最简单的模式,C/S模式实现聊天室从半双工开始,何谓半双工?半双工即是说双方可以互发消息,但一次只能一个用户发送。 只要稍微会点s
- 通过学习借鉴朋友的实现方法进行整理,实现了PHP版的微信公共平台消息主动推送,分享给大家供大家参考,具体内容如下此方法是通过模拟登录微信公共
- 本文实例讲述了Python保存最后N个元素的方法。分享给大家供大家参考,具体如下:问题:希望在迭代或是其他形式的处理过程中对最后几项记录做一
- 1、什么是GIL全局解释器锁GIL:Global Interpreter Lock,意思就是全局解释器锁,这个GIL并不是Python的特性
- 前言本人是位大二在读在校学生,专业为地理信息科学,因跟老师一起做项目,所以有幸接触nc数据转换为tif数据,因为在这件事情上也遇过不少坑,也
- 执行python脚本并传入json数据格式参数最近在写一个python的数据统计分析脚本,需要根据json的数据格式参数去进行业务逻辑处理,
- 功能所在位置该功能运用了django.contrib.messages这个库,再django项目中srtting.py文件中的38行,APP
- 1、说明创建堆有两种基本方法:heappush() 和 heapify()。当使用heappush()时,当新元素添加时,堆得顺序被保持了。
- 一、创建虚拟环境(1)打开cmd命令窗口(2)创建虚拟环境 conda create -n mydjango_env(3)查看虚拟环境 co