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系列之数据处理编程实例(二)
May 22 Python
python保存数据到本地文件的方法
Jun 23 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
Mar 04 Python
Python日志logging模块功能与用法详解
Apr 09 Python
keras 读取多标签图像数据方式
Jun 12 Python
Keras - GPU ID 和显存占用设定步骤
Jun 22 Python
学python爬虫能做什么
Jul 29 Python
Python控制鼠标键盘代码实例
Dec 08 Python
Python中os模块的简单使用及重命名操作
Apr 17 Python
用Python实现一个打字速度测试工具来测试你的手速
May 28 Python
python中的getter与setter你了解吗
Mar 24 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打开远程文件的方法和风险及解决方法
2013/11/12 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
2014/08/15 PHP
浅析PHP文件下载原理
2014/12/25 PHP
抽出www.templatemonster.com的鼠标悬停加载大图模板的代码
2007/07/11 Javascript
JQuery each()函数如何优化循环DOM结构的性能
2012/12/10 Javascript
JS可以控制样式的名称写法一览
2014/01/16 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
Node.js项目中调用JavaScript的EJS模板库的方法
2016/03/11 Javascript
基于Bootstrap实现图片轮播效果
2016/05/22 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
js设置和获取自定义属性的方法
2016/10/20 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
将鼠标焦点定位到文本框最后(代码分享)
2017/01/11 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
详解JS取出两个数组中的不同或相同元素
2019/03/20 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
Python牛刀小试密码爆破
2011/02/03 Python
Python中的rjust()方法使用详解
2015/05/19 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
Python常见工厂函数用法示例
2018/03/21 Python
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
python 单线程和异步协程工作方式解析
2019/09/28 Python
python提取xml里面的链接源码详解
2019/10/15 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
Watchshop德国:欧洲在线手表No.1
2019/06/20 全球购物
追悼会上的答谢词
2014/01/10 职场文书
策划创业计划书
2014/02/06 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang