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中使用pngquant压缩png图片的教程
Apr 09 Python
Linux下使用python自动修改本机网关代码分享
May 21 Python
使用Python编写简单的端口扫描器的实例分享
Dec 18 Python
Python自动生产表情包
Mar 17 Python
Python使用base64模块进行二进制数据编码详解
Jan 11 Python
对python3 一组数值的归一化处理方法详解
Jul 11 Python
flask-restful使用总结
Dec 04 Python
Django中如何使用sass的方法步骤
Jul 09 Python
Python算法的时间复杂度和空间复杂度(实例解析)
Nov 19 Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 Python
一文详述 Python 中的 property 语法
Sep 01 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 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 addslashes和mysql_real_escape_string
2010/01/24 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
PHP使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
从零开始学YII2框架(六)高级应用程序模板
2014/08/20 PHP
PHP中each与list用法分析
2016/01/08 PHP
Jquery+ajax请求data显示在GridView上(asp.net)
2010/08/27 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
详解Node.js串行化流程控制
2017/05/04 Javascript
详解npm 配置项registry修改为淘宝镜像
2018/09/07 Javascript
彻底弄懂 JavaScript 执行机制
2018/10/23 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
Python兔子毒药问题实例分析
2015/03/05 Python
python实现定时播放mp3
2015/03/29 Python
Python2/3中urllib库的一些常见用法
2017/12/19 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
5款实用的python 工具推荐
2020/10/13 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
医药专业应届毕业生求职信范文
2014/01/01 职场文书
应届毕业生自荐信
2014/05/28 职场文书
2014年医院十一国庆节活动方案
2014/09/15 职场文书
房产销售独家委托书范本
2014/10/01 职场文书
端午节寄语2015
2015/03/23 职场文书
2015年小学教科研工作总结
2015/07/20 职场文书
python简单验证码识别的实现过程
2021/06/20 Python