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 相关文章推荐
Django中实现一个高性能计数器(Counter)实例
Jul 09 Python
python分割列表(list)的方法示例
May 07 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
Jun 27 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 Python
Python3.6使用tesseract-ocr的正确方法
Oct 17 Python
Python Pywavelet 小波阈值实例
Jan 09 Python
python3中类的继承以及self和super的区别详解
Jun 26 Python
python数据预处理之数据标准化的几种处理方式
Jul 17 Python
python实现简单银行管理系统
Oct 25 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
Mar 16 Python
Python 如何查找特定类型文件
Aug 17 Python
selenium3.0+python之环境搭建的方法步骤
Feb 01 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
PHP读取目录下所有文件的代码
2008/01/07 PHP
PHP 冒泡排序算法的实现代码
2010/08/08 PHP
解决ajax+php中文乱码的方法详解
2013/06/09 PHP
async和DOM Script文件加载比较
2014/07/20 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
jQuery 事件队列调整方法
2009/09/18 Javascript
基于jquery的模态div层弹出效果
2010/08/21 Javascript
菜鸟学习JavaScript小实验之函数引用
2010/11/17 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
Vue列表页渲染优化详解
2017/07/24 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
pandas数据集的端到端处理
2019/02/18 Python
Python中Numpy mat的使用详解
2019/05/24 Python
python绘制多个子图的实例
2019/07/07 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
BCBG官网:BCBGMAXAZRIA
2017/12/29 全球购物
毕业生求职信的经典写法
2014/01/31 职场文书
小班上学期评语
2014/05/05 职场文书
旅游项目合作意向书
2015/05/08 职场文书
商务信函英语问候语
2015/11/10 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
MybatisPlus EntityWrapper如何自定义SQL
2022/03/22 Java/Android
海弦WR-800F
2022/04/05 无线电