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编写的微博应用
Oct 17 Python
详解python中requirements.txt的一切
Mar 03 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
Aug 24 Python
Python进程间通信Queue消息队列用法分析
May 22 Python
Python编程实现tail-n查看日志文件的方法
Jul 08 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
python3排序的实例方法
Oct 20 Python
python openCV自制绘画板
Oct 27 Python
python中pop()函数的语法与实例
Dec 01 Python
python re模块和正则表达式
Mar 24 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 21 Python
Python实现制作销售数据可视化看板详解
Nov 27 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
PHP模板解析类实例
2015/07/09 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
php实现留言板功能(代码详解)
2017/03/28 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
Jquery中扩展方法extend使用技巧
2014/08/24 Javascript
JS简单计算器实例
2015/01/20 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
JavaScript实现同时调用多个函数的方法
2015/11/09 Javascript
深入浅析JavaScript面向对象和原型函数
2016/02/06 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
BootStrap中的table实现数据填充与分页应用小结
2016/05/26 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
微信小程序实现张图片合成为一张并下载
2019/07/16 Javascript
详解Vue Cli浏览器兼容性实践
2020/06/08 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
Python 正则表达式(转义问题)
2014/12/15 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
python 抓包保存为pcap文件并解析的实例
2019/07/23 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
Python3操作YAML文件格式方法解析
2020/04/10 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
网络教育毕业生自我鉴定
2013/10/10 职场文书
劳动实践课感言
2014/02/01 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
婚庆公司计划书
2014/09/15 职场文书
国庆节主题班会
2015/08/15 职场文书
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python