简单介绍

requests库简单易用的HTTP库

  

Get请求

格式: requests.get(url)

注意:若需要传请求参数,可直接在 url 最后的 ? 后面,也可以调用 get() 时多加一个参数 params ,传入请求参数,注意需要是 dict 格式;如下图所示

     url = 'http://127.0.0.1:8888/passport/user/login'
param = {
'username': '',
'password': ''
} """通过params传参"""
res = requests.get(url, params=param)
# {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'}
print(res.json()) """通过params方式传参,最终发出的url也是一致的"""
# http://127.0.0.1:8888/passport/user/login?username=123&password=321
print(res.url) """通过url最后加上请求参数列表"""
url = 'http://127.0.0.1:8888/passport/user/login?username=123&password=321'
res = requests.get(url, verify=False)
# {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'}
print(res.text)

重点:发送请求赋值的res,可以看成是请求的上下文,既可以获取请求相关参数值,也可以获取响应相关参数值

Post请求

格式: requests.post(url,data)

注意:若无请求参数可不传 data ;当传入请求参数时,需要传 dict 格式

     url = 'http://127.0.0.1:8888/passport/user/post_login'
data = {
'username': '',
'password': ''
} """传入请求参数"""
res = requests.post(url, data=data)
# {'code': 200, 'msg': 'success', 'password': '321', 'username': '123'}
print(res.json()) """查看请求url"""
# http://127.0.0.1:8888/passport/user/post_login
print(res.url)

其他类型请求

     r = requests.put('http://httpbin.org/put', data={'key': 'value'}).text
r = requests.delete('http://httpbin.org/delete').text
r = requests.head('http://httpbin.org/head').text

自定义headers和cookies

     """自定义headers"""
url = 'https://api.github.com/some/endpoint'
headers = {'user-agent': 'my-app/0.0.1'} r = requests.get(url, headers=headers)
# {'message': 'Not Found', 'documentation_url': 'https://developer.github.com/v3'}
print(r.json()) """自定义cookies"""
url = 'http://httpbin.org/cookies'
cookies = dict(cookies_are='working')
cookies2 = {'cookies_are': 'working'} r = requests.get(url, cookies=cookies)
# {'cookies': {'cookies_are': 'working'}}
print(r.json())

SSL 证书验证

当发送请求如果报以上错误时,可以在请求方法里加多一个字段 verify=False ,就可以解决此问题;此操作是为了免去验证步骤

url = 'https://www.imooc.com'
res = requests.get(url, verify=False)

响应内容

注意:当调用 json() 时,确保响应内容是json格式字符串,否则会报错

     url = 'http://127.0.0.1:8888/passport/user/login'
param = {
'username': '',
'password': ''
}
res = requests.get(url, params=param)
print('请求url: ' + res.url)
print('响应内容 json格式: ' + json.dumps(res.json()))
print('响应内容 字符串格式: ' + res.text)
print('响应内容 二进制格式: ' + str(res.content))
print('响应码: ' + str(res.status_code))

获取header

注意:headers里面的key是大小写不敏感的

>>> r.headers['Content-Type']
'application/json' >>> r.headers.get('content-type')
'application/json'

获取cookies

>>> r.cookies['example_cookie_name']
'example_cookie_value'

python接口自动化测试 - requests库的基础使用的更多相关文章

  1. python接口自动化测试 - requests库的post请求进行文件上传

    前言 如果需要发送文件到服务器,比如上传图片.视频等,就需要发送二进制数据. 一般上传文件使用的都是 Content-Type: multipart/form-data; 数据类型,可以发送文件,也可 ...

  2. python接口自动化测试 - requests库的post请求进行文件下载

    前言 之前讲了文件上传,当然就有文件下载啦 文件下载操作步骤 极其简单,将二进制格式的响应内容存进本地文件中,根据需要下载的文件的格式来写文件名即可 down_url = 'https://www.i ...

  3. 记录python接口自动化测试--requests使用和基本方法封装(第一目)

    之前学习了使用jmeter+ant做接口测试,并实现了接口的批量维护管理(大概500多条用例),对"接口"以及"接口测试"有了一个基础了解,最近找了一些用pyt ...

  4. 【python接口自动化-requests库】【三】优化重构requests方法

    一.重构post请求方法 上一张讲了如何使用requests库发送post请求,但是有时候,我们写脚本,不可能这么简单,代码完全不可复用,重复工作,那我们是不是可以想象,把我们的get,post请求, ...

  5. python接口测试之requests库(一)

    一.requests库的安装 requests库作为第三方库,需要安装 cmd模式下,运行pip install requests 二.在学习如何发送请求之前,我们先来了解一下requests库,查看 ...

  6. 【python接口自动化-requests库】【一】requests库安装

    1.概念 requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满 ...

  7. 【python接口自动化-requests库】【二】requests库简单使用(入门)

    一.post请求 前面讲了,我们get请求的时候,引入requests的包,然后直接使用get方法,那么post是不是一样的? 1.首先我们先引入requests import requests 2. ...

  8. Python接口自动化测试框架实战 从设计到开发

    第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...

  9. 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码

    引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...

随机推荐

  1. Web简单小结

    一.HTML DOM 使 JavaScript 有能力对 HTML 事件做出反应:<h1 onclick="this.innerHTML='你点我干啥'">请点击这里& ...

  2. 《你不知道的javascript(上)》笔记

    作用域是什么 编译原理 分词/词法分析 这个过程会将由字符组成的字符串分解成(对编程语言来说)有意义的代码块,这些代码块被称为词法单元 解析/语法分析 词法单元流(数组)转换成一个由元素逐级嵌套所组成 ...

  3. react-native构建基本页面5---调用拍照摄像头

    调用摄像头拍照 react-native-image-picker的github官网 yarn add react-native-image-picker 运行react-native link自动注 ...

  4. ubuntu 16.04.1上安装并使用nginx

    1.安装 sudo apt-get install nginx 2.这时候应该就已经启动了,跳到步骤4. 通过命令“ps -aux | grep nginx”看下是否启动 3.如果没有启动,可以使用命 ...

  5. The Softmax function and its derivative

    https://eli.thegreenplace.net/2016/the-softmax-function-and-its-derivative/  Eli Bendersky's website ...

  6. sqlserver删除所有表、视图、存储过程

    declare proccur cursor     for         select [name] from sysobjects where type='P' declare @procnam ...

  7. 部件MSCOMCTL.OCX或其附件之一不能正确注册:一个文件丢失或无效

    部件MSCOMCTL.OCX或其附件之一不能正确注册:一个文件丢失或无效: https://blog.csdn.net/yilese/article/details/71479908

  8. Oracle VM VirtualBox - VBOX_E_FILE_ERROR (0x80BB0004)

    问题描述: 导入虚拟电脑 D:\LR\虚拟机相关\CentOS-6.7-x86_64-2G-40G-oracle-IP9\CentOS-6.7-x86_64-2G-40G-oracle-IP9.ovf ...

  9. Linux之温故知新2

    1.关于ssh免密码登陆的ssh-keygen, ssh-copy-id的使用, 然后使用ssh-copy-id user@remote将公钥传给服务器, 以及别名 1 C:\Users\linxmo ...

  10. glog入门demo

    glog 一. 下载与安装 git clone https://github.com/google/glog.git cd glog ./autogen.sh ./configure make mak ...