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程序来判断文本的语种
Apr 07 Python
python通过文件头判断文件类型
Oct 30 Python
Python中将字典转换为列表的方法
Sep 21 Python
Python中input与raw_input 之间的比较
Aug 20 Python
基于Django的ModelForm组件(详解)
Dec 07 Python
详解python的ORM中Pony用法
Feb 09 Python
pandas数据分组和聚合操作方法
Apr 11 Python
使用python telnetlib批量备份交换机配置的方法
Jul 25 Python
tensorflow 实现自定义梯度反向传播代码
Feb 10 Python
Jupyter Notebook输出矢量图实例
Apr 14 Python
python函数中将变量名转换成字符串实例
May 11 Python
Python+Xlwings 删除Excel的行和列
Dec 19 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实现向javascript传递数组的方法
2015/07/27 PHP
PHP 序列化和反序列化函数实例详解
2020/07/18 PHP
laravel-admin的多级联动方法
2019/09/30 PHP
nodejs的require模块(文件模块/核心模块)及路径介绍
2013/01/14 NodeJs
JavaScript简单实现网页回到顶部功能
2013/11/12 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
详细分析JavaScript变量类型
2015/07/08 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
jQuery中判断对象是否存在的方法汇总
2016/02/24 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
JavaScript实现设置默认日期范围为最近40天的方法分析
2017/07/12 Javascript
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
vue+Element-ui实现分页效果实例代码详解
2018/12/10 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
python多线程threading.Lock锁用法实例
2014/11/01 Python
Python正则表达式完全指南
2017/05/25 Python
python3.4下django集成使用xadmin后台的方法
2017/08/15 Python
python 运用Django 开发后台接口的实例
2018/12/11 Python
Python对象转换为json的方法步骤
2019/04/25 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
Sephora丝芙兰马来西亚官方网站:国际化妆品购物
2018/03/15 全球购物
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
求职简历中自我评价
2014/01/28 职场文书
食品厂厂长岗位职责
2014/01/30 职场文书
医科大学毕业生自荐信
2014/02/03 职场文书
给校长的建议书
2014/03/12 职场文书
集中整治工作方案
2014/05/01 职场文书
医学专业自荐信
2014/06/14 职场文书
机关职员工作检讨书
2014/10/23 职场文书
人民币使用说明书
2019/04/17 职场文书
vue实现水波涟漪效果的点击反馈指令
2021/05/31 Vue.js