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 相关文章推荐
python3序列化与反序列化用法实例
May 26 Python
Python判断文件或文件夹是否存在的三种方法
Jul 27 Python
Python Xml文件添加字节属性的方法
Mar 31 Python
Python多线程原理与用法实例剖析
Jan 22 Python
Python利用神经网络解决非线性回归问题实例详解
Jul 19 Python
python3实现高效的端口扫描
Aug 31 Python
Python批量启动多线程代码实例
Feb 18 Python
python如何通过闭包实现计算器的功能
Feb 22 Python
python实现坦克大战
Apr 24 Python
Python如何优雅删除字符列表空字符及None元素
Jun 25 Python
python 进制转换 int、bin、oct、hex的原理
Jan 13 Python
python实现批量移动文件
Apr 05 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/10/04 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
使用Thinkphp框架开发移动端接口
2015/08/05 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
JavaScript更改class和id的方法
2008/10/10 Javascript
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
Javascript结合css实现网页换肤功能
2009/11/02 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
2019/02/28 Javascript
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
vue中 this.$set的用法详解
2019/09/06 Javascript
微信小程序修改checkbox的样式代码实例
2020/01/21 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
Python学习资料
2007/02/08 Python
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
python调用Matplotlib绘制分布点图
2019/10/18 Python
CSS3中各种颜色属性的使用教程
2016/05/17 HTML / CSS
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
写给老婆的检讨书
2014/02/21 职场文书
初中学校对照检查材料
2014/08/19 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
Python数据结构之队列详解
2022/03/21 Python
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL