Python request操作步骤及代码实例


Posted in Python onApril 13, 2020

操作步骤

A.cmd输入:pip install requests,安装requests

B.py文件导入:import requests

C.get

  • 调用get: r = requests.get(url)
  • 断言:self.assertEqual(r.status_code, 200)
  • 说明:status_code为状态返回值,如200表示访问成功

D.post

入参为json格式需要把字典转成json格式: json_data =json.dumps({"usename": "test","password" : "123456"}) ,

请求报头为json格式:self.json_headers= {'content-type': 'application/json'}

调用post(请求与返回都是josn格式):

r = requests.post(url,data=json_data,headers=self.json_headers)

如果返回内容为:[{'name': 'zhangshan', 'age': '18'}, {'name': 'lisi', 'age': '29'}]

断言1:self.assertEqual(r.json()[0]['name'], 'zhangshan') ,说明r.json()转成list,list里面是字典,取list[0]第一个值,取字典key值['name']

如果返回内容:{'success': 'true', 'msg': 'chengong'}

断言2:self.assertEqual(r.json()['success'], 'true'),说明r.json()转成字典,取字典key值['success']

config.json 配置文件内容:

[
 {
  "request" :
   {
    "method": "post",
    "uri" : "/login",
    "file": {
     "json": "user.json"
    }
   },
  "response" :
  {
   "json": {"success": "true","msg": "chengong"}
  }
 },
 {
  "request" :
   {
    "method": "post",
    "uri" : "/data"
   },
  "response" :
  {
   "file" : "data.json"
  }
 },
 {
  "request" :
   {
    "method": "get",
    "uri" : "/home"
   },
  "response" :
  {
    "text" : {
     "template": "true"
    }
  }
 }
]

data.json 返回值文件内容:

[
 {
  "name": "zhangshan",
  "age": "18"
 },
 {
  "name": "lisi",
  "age": "29"
 }
]

user.json 入参文件内容:

{
	"usename": "test",
	"password" : "123456"
}

python文件“login.py”内容:

#!/usr/bin/python3
# encoding:utf-8
import unittest
import requests
import json

class login(unittest.TestCase):
  def setUp(self):
    self.d ='http://127.0.0.1:9999'
    self.json_headers= {'content-type': 'application/json'}
    
  def tearDown(self):
    pass
  def test_gethome(self):
    url = self.url('/home')#http://127.0.0.1:9999/home
    r = requests.get(url)
    self.assertEqual(r.text, 'true')
    self.assertEqual(r.status_code, 200)
    
  def test_postlogin(self):
    url= self.url('/login')
    json_data =json.dumps({"usename": "test","password" : "123456"}) 
    r = requests.post(url,data=json_data,headers=self.json_headers)
    #{'success': 'true', 'msg': 'chengong'}
    self.assertEqual(r.json()['success'], 'true')
    
  def test_postdata(self):
    url= self.url('/data')
    r = requests.post(url,data={},headers=self.json_headers)
    print(len(r.json()))#r.josn返回list,长度2
    #[{'name': 'zhangshan', 'age': '18'}, {'name': 'lisi', 'age': '29'}]
    self.assertEqual(r.json()[0]['name'], 'zhangshan')
    self.assertEqual(r.json()[-1]['age'],'29')
 
    
  def url(self,path):
    return self.d + path
if __name__=='__main__':
  unittest.main()

运行结果

.2
...
.----------------------------------------------------------------------
.Ran 3 tests in 0.036s
.
.OK

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中zip()函数用法实例教程
Jul 31 Python
Python中使用PIPE操作Linux管道
Feb 04 Python
使用Python脚本对Linux服务器进行监控的教程
Apr 02 Python
Python标准库06之子进程 (subprocess包) 详解
Dec 07 Python
Python实现视频下载功能
Mar 14 Python
Python爬取网易云音乐热门评论
Mar 31 Python
浅谈Python脚本开头及导包注释自动添加方法
Oct 27 Python
浅谈python图片处理Image和skimage的区别
Aug 04 Python
pytorch 归一化与反归一化实例
Dec 31 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
python的sys.path模块路径添加方式
Mar 09 Python
python 将html转换为pdf的几种方法
Dec 29 Python
jupyter notebook插入本地图片的实现
Apr 13 #Python
Python BeautifulReport可视化报告代码实例
Apr 13 #Python
解决jupyter notebook 出现In[*]的问题
Apr 13 #Python
超全Python图像处理讲解(多模块实现)
Apr 13 #Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 #Python
Python restful框架接口开发实现
Apr 13 #Python
Jupyter notebook 启动闪退问题的解决
Apr 13 #Python
You might like
珊瑚虫IP库浅析
2007/02/15 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
7个Javascript地图脚本整理
2009/10/20 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
关于图片的预加载过程中隐藏未知的
2012/12/19 Javascript
jquery特效 幻灯片效果示例代码
2013/07/16 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
JavaScript ES6中的简写语法总结与使用技巧
2018/12/30 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
Python实现的彩票机选器实例
2015/06/17 Python
TensorFlow高效读取数据的方法示例
2018/02/06 Python
python 显示数组全部元素的方法
2018/04/19 Python
Python中存取文件的4种不同操作
2018/07/02 Python
Python下简易的单例模式详解
2019/04/08 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
python绘图模块之利用turtle画图
2021/02/12 Python
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
创业计划书——互联网商机
2014/01/12 职场文书
贷款委托书
2014/08/01 职场文书
2015年学习部工作总结范文
2015/03/31 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
怎样写工作总结啊!
2019/06/18 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书