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 相关文章推荐
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
Python多线程编程(六):可重入锁RLock
Apr 05 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
使用python实现mqtt的发布和订阅
May 05 Python
Python数据类型之String字符串实例详解
May 08 Python
Python tkinter模版代码实例
Feb 05 Python
Python实现病毒仿真器的方法示例(附demo)
Feb 19 Python
Python处理mysql特殊字符的问题
Mar 02 Python
Django数据结果集序列化并展示实现过程
Apr 22 Python
如何理解Python中的变量
Jun 01 Python
Python 如何定义匿名或内联函数
Aug 01 Python
python实现视频压缩功能
Dec 18 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
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
图书管理程序(一)
2006/10/09 PHP
PHP explode()函数用法、切分字符串
2012/10/03 PHP
PHP与以太坊交互详解
2018/08/24 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
JavaScript 高效运行代码分析
2010/03/18 Javascript
Webkit的跨域安全问题说明
2011/09/13 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
javascript测试题练习代码
2012/10/10 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
html5+CSS 实现禁止IOS长按复制粘贴功能
2016/12/28 Javascript
NodeJS设计模式总结【单例模式,适配器模式,装饰模式,观察者模式】
2017/09/06 NodeJs
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
vue组件入门知识全梳理
2020/09/21 Javascript
Python中自定义函数的教程
2015/04/27 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
html5中canvas图表实现柱状图的示例
2017/11/13 HTML / CSS
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
文言文形式的学生求职信
2013/12/03 职场文书
咖啡厅创业计划书范本
2014/01/22 职场文书
大学生创业感言
2014/01/25 职场文书
计算机专业自荐信范文
2014/05/28 职场文书
部门活动策划方案
2014/08/16 职场文书
结对共建协议书
2014/08/20 职场文书
领导干部保密承诺书
2014/08/30 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
2015年手术室工作总结
2015/05/11 职场文书
史上最牛辞职信
2015/05/13 职场文书
Nginx URL重写rewrite机制原理及使用实例
2021/04/01 Servers
评测 | 大屏显示带收音机的高端音箱,JBL TUNE2便携式插卡音箱实测
2021/04/24 无线电