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编写检测数据库SA用户的方法
Jul 11 Python
django中send_mail功能实现详解
Feb 06 Python
详解Django之admin组件的使用和源码剖析
May 04 Python
pandas 数据实现行间计算的方法
Jun 08 Python
python3解析库lxml的安装与基本使用
Jun 27 Python
Python二进制串转换为通用字符串的方法
Jul 23 Python
Python定义函数功能与用法实例详解
Apr 08 Python
python scrapy爬虫代码及填坑
Aug 12 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
May 03 Python
Python爬虫教程之利用正则表达式匹配网页内容
Dec 08 Python
python缺失值的解决方法总结
Jun 09 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 5.0 Pear安装方法
2006/12/06 PHP
PHP中的Memcache详解
2014/04/05 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
一个符号插入器 中用到的js代码
2007/09/04 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
jQuery事件用法实例汇总
2014/08/29 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
2015/11/30 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
解决layui弹出层layer的area过大被遮挡的问题
2019/09/21 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
2019/10/12 jQuery
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
Python字符串匹配算法KMP实例
2015/07/18 Python
Django Highcharts制作图表
2016/08/27 Python
Python实现简单的四则运算计算器
2016/11/02 Python
python实现校园网自动登录的示例讲解
2018/04/22 Python
python 字符串和整数的转换方法
2018/06/25 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
python 同时读取多个文件的例子
2019/07/16 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
python中return的返回和执行实例
2019/12/24 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
学生发电厂实习自我鉴定
2013/09/22 职场文书
运动会解说词50字
2014/01/18 职场文书
党员批评与自我批评
2014/02/12 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
法定代表人授权委托书
2014/09/19 职场文书
观看建国大业观后感
2015/06/01 职场文书
外出听课学习心得体会
2016/01/15 职场文书
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
零基础学java之循环语句的使用
2022/04/10 Java/Android