浅谈Python接口对json串的处理方法


Posted in Python onDecember 19, 2018

最近学习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'])

粗略了解,待深入学习!

以上这篇浅谈Python接口对json串的处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 自动补全(vim)
Nov 30 Python
Python 26进制计算实现方法
May 28 Python
Python字符串转换成浮点数函数分享
Jul 24 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
详解Python中的各种转义符\n\r\t
Jul 10 Python
python flask几分钟实现web服务的例子
Jul 26 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
python 代码运行时间获取方式详解
Sep 18 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
Oct 02 Python
python实现的MySQL增删改查操作实例小结
Dec 19 #Python
python3 http提交json参数并获取返回值的方法
Dec 19 #Python
python3.6使用urllib完成下载的实例
Dec 19 #Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
Dec 19 #Python
对python内置map和six.moves.map的区别详解
Dec 19 #Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 #Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 #Python
You might like
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
做个自己站内搜索引擎
2006/10/09 PHP
PHP 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
2018/10/15 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
jquery png 透明解决方案(推荐)
2010/08/21 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
jquery实现简易的移动端验证表单
2015/11/08 Javascript
基于jquery实现ajax无刷新评论
2020/08/19 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
JavaScript forEach中return失效问题解决方案
2020/06/01 Javascript
Vue 数据响应式相关总结
2021/01/28 Vue.js
在Django的URLconf中使用多个视图前缀的方法
2015/07/18 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
关于Python 的简单栅格图像边界提取方法
2019/07/05 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
如何在发生故障的节点上重新安装 SQL Server
2013/03/14 面试题
物理教学随笔感言
2014/02/22 职场文书
我的理想演讲稿
2014/04/30 职场文书
个人作风建设自查报告
2014/10/22 职场文书
学生通报表扬范文
2015/05/04 职场文书
2016年学校禁毒宣传活动工作总结
2016/04/05 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP
你真的会用Mysql的explain吗
2022/03/31 MySQL