Python接口测试之requests详解


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

引入requests包是基础操作

import requests

 

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

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请求中添加参数的两种方式:

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请求:

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

r = requests.get('https://www.taobao.com')
print(r.cookies)

 

session保持

# 请求改为由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"
  }
}

 

往期内容推荐:

python中的dumps和loads区别

如何在 Python的类中定义私有变量

更多内容关注公众号:猿桌派


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM