浅谈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


猜你喜欢
- 发现问题在golang中,对文件进行写操作时出现上面的错误。首先复现下这个问题。package mainimport ( "os&
- 引言这算是一个高级用法了,前面我们只说到对类型、变量的几种反射的用法,包括如何获取其值、其类型、以及如何重新设置新值。但是在项目应用中,另外
- 一、线性回归的理论1)线性回归的基本概念线性回归是一种有监督的学习算法,它介绍的自变量的和因变量的之间的线性的相关关系,分为一元线性回归和多
- ORACLE的这类错误在ORALCE的文档中有详细说明,但原因及措施说明不详细,本文当着重说明如何解决这类错误。1、ORA-12571、OR
- 本文实例讲述了Python socket实现的文件下载器功能。分享给大家供大家参考,具体如下:文件下载器先写客户端再写服务端1.tcp下载器
- 导入相关的包import pygame, sys, randomfrom pygame.locals import *设置屏幕大小以及基本参
- 介绍本文主要介绍Python中迭代的基本知识和使用什么是迭代在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历
- 创建变长数组类型CREATE TYPE varray_type AS VARRAY(2) OF VARCHAR2(50);这个变长数组最多可
- 一、Flask简介Flask 是一个 Python 实现的 Web 开发微框架。官网:http://flask.pocoo.org/二、De
- mysql 8.0.12 的安装,折腾了两天,遇到各种问题,现总结如下:第一步,卸载掉之前安装的MySQL,参考彻底卸载mysql 个人亲测
- 目的对字符串的每个字符进行处理,其实每个字符(Char)就是一个长度为1的字符串。方法1.使用内建函数list()>>>
- 这篇博客将介绍使用Python,OpenCV获取、更改像素,修改图像通道,截取图像感兴趣ROI;单通道图,BGR三通道图,四通道透明图,不透
- 装饰器是程序开发中经常会用到的一个功能,也是python语言开发的基础知识,如果能够在程序中合理的使用装饰器,不仅可以提高开发效率,而且可以
- 1 九九乘法表for i in range(9):#从0循环到8 i += 1#等价于 i = i+1 for j
- 前言vue是现在很火的一个前端MVVM框架,它以数据驱动和组件化的思想构建,与angular和react并称前端三大框架。相比angular
- numpy数组转置可以通过arr.T、arr.transpose()、arr.swapaxes()实现。数组转置 arr.T轴变换 arr.
- 问题场景:vue页面初始化展示请求后台返回的数据失败,没有报错<el-form-item label="有效日期"
- 记得很早以前看到过这样的一段介绍:想象你在逛街边的一家书店,如果最终你没有购买任何图书就直接离开了,店长并不会知道你来过。但是如果你买了书,
- 本文实例为大家分享了python之pygame模块实现飞机大战的具体代码,供大家参考,具体内容如下Python飞机大战步骤:1.数据区2.主
- Series 的 sort_index(ascending=True) 方法可以对 index 进行排序操作,ascending 参数用于控