前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python接口测试之requests详解

Python接口测试之requests详解

作者头像
周辰晨
发布2020-02-19 10:27:34
4090
发布2020-02-19 10:27:34
举报

接口自动化的框架很多,python对应的类库也很多,但request类库相信对大家来说还是最熟悉的,本篇将围绕request给大家介绍接口自动化中常用的功能。

引入requests包是基础操作

代码语言:javascript
复制
import requests

构造一个最简单的get请求:

代码语言:javascript
复制
r = requests.get('http://httpbin.org/get')
print r.text

返回数据

{
  "args": {},
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.18.1",
    "X-Amzn-Trace-Id": "Root=1-5e3796cd-6fe9ebd9419d893ca4b67275"
  },
  "origin": "49.72.104.32",
  "url": "http://httpbin.org/get"
}

在get请求中添加参数的两种方式:

代码语言:javascript
复制
r = requests.get('http://httpbin.org/get?name=cctester&age=6')

data={'name':'cctester','age':'6'}
r=requests.get('http://httpbin.org/get', params=data)

print r.text

这两种请求方式本质是一样的;
返回数据:

{
  "args": {
    "age": "6",
    "name": "cctester"
  },
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.18.1",
    "X-Amzn-Trace-Id": "Root=1-5e379a18-7661065e852f531c4f569118"
  },
  "origin": "49.72.104.32",
  "url": "http://httpbin.org/get?name=cctester&age=6"
}

构造post请求:

代码语言:javascript
复制
data = {'name': 'cctester', 'skill': 'coding'}
r = requests.post('http://httpbin.org/post', data=data)
print(r.text)

{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "name": "cctester",
    "skill": "coding"
  },
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Content-Length": "26",
    "Content-Type": "application/x-www-form-urlencoded",
    "Host": "httpbin.org",
    "User-Agent": "python-requests/2.18.1",
    "X-Amzn-Trace-Id": "Root=1-5e37a7bb-15fedde4881a9f1abbf7590e"
  },
  "json": null,
  "origin": "49.72.104.32",
  "url": "http://httpbin.org/post"
}

打印cookie

代码语言:javascript
复制
r = requests.get('https://www.taobao.com')
print(r.cookies)

session保持

代码语言:javascript
复制
# 请求改为由session发起
s = requests.Session()
# 设置cookie
s.get('http://httpbin.org/cookies/set/number/123456789')
print s.cookies
# 读取cookie
r = s.get('http://httpbin.org/cookies')
print(r.text)

输出内容
<RequestsCookieJar[<Cookie number=123456789 for httpbin.org/>]>
{
  "cookies": {
    "number": "123456789"
  }
}

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师影响力 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档