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修改注册表终止360进程实例
Oct 13 Python
python实现k-means聚类算法
Feb 23 Python
python如何为创建大量实例节省内存
Mar 20 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
python实现文本界面网络聊天室
Dec 12 Python
神经网络相关之基础概念的讲解
Dec 29 Python
python使用for循环计算0-100的整数的和方法
Feb 01 Python
了解不常见但是实用的Python技巧
May 23 Python
python 将日期戳(五位数时间)转换为标准时间
Jul 11 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 Python
Python time库基本使用方法分析
Dec 13 Python
Python for循环通过序列索引迭代过程解析
Feb 07 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
ThinkPHP实现带验证码的文件上传功能实例
2014/11/01 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
asp 取文本框名称代码
2008/12/02 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
在jQuery 1.5中使用deferred对象的代码(翻译)
2011/03/10 Javascript
js实现翻页后保持checkbox选中状态的实现方法
2012/11/03 Javascript
js中的事件捕捉模型与冒泡模型实例分析
2015/01/10 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
理解Javascript文件动态加载
2016/01/29 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
JavaScript实现的XML与JSON互转功能详解
2017/02/16 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
js数据类型检测总结
2018/08/05 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
Django media static外部访问Django中的图片设置教程
2020/04/07 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
python opencv实现简易画图板
2020/08/27 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
互动出版网:专业书籍
2017/03/21 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
环境卫生标语
2014/06/09 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
酒桌上的开场白
2015/06/01 职场文书
毕业感言怎么写
2015/07/31 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书