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自动化测试工具Splinter简介和使用实例
May 13 Python
在Django的上下文中设置变量的方法
Jul 20 Python
Python装饰器用法实例总结
Feb 07 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
Python实现多态、协议和鸭子类型的代码详解
May 05 Python
python面试题Python2.x和Python3.x的区别
May 28 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
python实现简单倒计时功能
Apr 21 Python
Python趣味挑战之实现简易版音乐播放器
May 28 Python
Python进程间的通信之语法学习
Apr 11 Python
Python可视化神器pyecharts之绘制地理图表练习
Jul 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
phpmyadmin显示utf8_general_ci中文乱码的问题终级篇
2013/04/08 PHP
codeigniter框架批量插入数据
2014/01/09 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
webpack3之loader全解析
2017/10/26 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
通过python+selenium3实现浏览器刷简书文章阅读量
2017/12/26 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
解决使用export_graphviz可视化树报错的问题
2019/08/09 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
python 瀑布线指标编写实例
2020/06/03 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
树莓派升级python的具体步骤
2020/07/05 Python
优秀团员个人事迹材料
2014/01/29 职场文书
学雷锋的心得体会
2014/09/04 职场文书
企业年检委托书范本
2014/10/14 职场文书
环卫工人慰问信
2015/02/15 职场文书
绿色环保倡议书
2015/04/28 职场文书
毕业典礼主持词
2015/06/29 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
春节随笔
2015/08/15 职场文书
MySql新手入门的基本操作汇总
2021/05/13 MySQL