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自定义分页效果
Jun 27 Python
小白如何入门Python? 制作一个网站为例
Mar 06 Python
python实战之实现excel读取、统计、写入的示例讲解
May 02 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
Python OpenCV中的resize()函数的使用
Jun 20 Python
python实现批量文件重命名
Oct 31 Python
Python 实现Serial 与STM32J进行串口通讯
Dec 18 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
python对Excel的读取的示例代码
Feb 14 Python
python文件及目录操作代码汇总
Jul 08 Python
pandas 数据类型转换的实现
Dec 29 Python
手把手教你配置JupyterLab 环境的实现
Feb 02 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
AM/FM收音机的安装与调试
2021/03/02 无线电
收藏的一个php小偷的核心程序
2007/04/09 PHP
php后门URL的防范
2013/11/12 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
JS JSON对象转为字符串的简单实现方法
2013/11/18 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
JS类的定义与使用方法深入探索
2016/11/26 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
VUE多层路由嵌套实现代码
2017/05/15 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
在Python中输入一个以空格为间隔的数组方法
2018/11/13 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
Python内存管理实例分析
2019/07/10 Python
python+tkinter实现学生管理系统
2019/08/20 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
Bose加拿大官方网站:美国知名音响品牌
2019/03/21 全球购物
php优化查询foreach代码实例讲解
2021/03/24 PHP
公司营业员的工作总结自我评价
2013/10/05 职场文书
电子银行营销方案
2014/02/22 职场文书
职业生涯规划书怎么写?
2014/09/14 职场文书
户籍证明格式
2014/09/15 职场文书
暑期社会实践证明书
2014/11/17 职场文书
父母教会我观后感
2015/06/17 职场文书
详解NodeJS模块化
2021/06/15 NodeJs