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中的CURL PycURL使用例子
Jun 01 Python
python optparse模块使用实例
Apr 09 Python
在类Unix系统上开始Python3编程入门
Aug 20 Python
详解Python使用tensorflow入门指南
Feb 09 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
Python 旋转打印各种矩形的方法
Jul 09 Python
Python图像处理PIL各模块详细介绍(推荐)
Jul 17 Python
python使用pyecharts库画地图数据可视化的实现
Mar 25 Python
Python实时监控网站浏览记录实现过程详解
Jul 14 Python
python代数式括号有效性检验示例代码
Oct 04 Python
Python代码覆盖率统计工具coverage.py用法详解
Nov 25 Python
python 基于opencv实现高斯平滑
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
php设计模式 Mediator (中介者模式)
2011/06/26 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
2014/07/01 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
php 使用html5 XHR2实现上传文件与进度显示功能示例
2020/03/03 PHP
IE6下js通过css隐藏select的一个bug
2010/08/16 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
javascript最基本的函数汇总
2015/06/25 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
2015/09/24 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
详解Vue爬坑之vuex初识
2017/06/14 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
webpack打包多页面的方法
2018/11/30 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
Python中处理字符串之isalpha()方法的使用
2015/05/18 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
2014年向国旗敬礼活动总结
2014/09/27 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
python 如何用terminal输入参数
2021/05/25 Python
Python多个MP4合成视频的实现方法
2021/07/16 Python
Ajax实现三级联动效果
2021/10/05 Javascript
node快速搭建后台的实现步骤
2022/02/18 NodeJs