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两个内置函数 locals 和globals(学习笔记)
Aug 28 Python
python使用turtle绘制分形树
Jun 22 Python
python url 参数修改方法
Dec 26 Python
Python数据预处理之数据规范化(归一化)示例
Jan 08 Python
python树莓派红外反射传感器
Jan 21 Python
PyCharm永久激活方式(推荐)
Sep 22 Python
Python restful框架接口开发实现
Apr 13 Python
pip安装tensorflow的坑的解决
Apr 19 Python
Python3-异步进程回调函数(callback())介绍
May 02 Python
keras CNN卷积核可视化,热度图教程
Jun 22 Python
pycharm中选中一个单词替换所有重复单词的实现方法
Nov 17 Python
如何用Python和JS实现的Web SSH工具
Feb 23 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
2006/11/25 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
PHP中让curl支持sock5的代码实例
2015/01/21 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
javascript jscroll模拟html元素滚动条
2012/12/18 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
jquery获得同源iframe内body下标签的值的方法
2014/09/25 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
原生JS取代一些JQuery方法的简单实现
2016/09/20 Javascript
jQuery返回定位插件详解
2017/05/15 jQuery
JavaScript实现单例模式实例分享
2017/12/22 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
layui使用label标签的方法
2019/09/14 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
使用python实现拉钩网上的FizzBuzzWhizz问题示例
2014/05/05 Python
django2 快速安装指南分享
2018/01/05 Python
python-numpy-指数分布实例详解
2019/12/07 Python
python打印异常信息的两种实现方式
2019/12/24 Python
python3 实现口罩抽签的功能
2020/03/11 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
2020/03/30 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
Mountain Hardwear官网:攀岩服装和户外装备
2019/09/26 全球购物
前台文员岗位职责及工作流程
2013/11/19 职场文书
主持人演讲稿范文
2013/12/28 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
教师创先争优承诺书
2015/04/27 职场文书
士兵突击观后感
2015/06/16 职场文书
《小乌鸦爱妈妈》教学反思
2016/02/19 职场文书
Nginx四层负载均衡的配置指南
2021/06/11 Servers
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL
德生2P3收音机开箱评测
2022/04/30 无线电