

requests库是一个常用的用于http请求的模块,它使用python语言编写,在当下python系列的接口自动化中应用广泛,本文将带领大家深入学习这个库
Python环境的安装就不在这里赘述了,我们直接开干。

01、requests的安装
windows下执行如下命令
pipinstallrequests-ihttp://pypi.douban.com/simple/--trust-host pypi.douban.commac终端下执行如下命令
python3-mpipinstallrequests-ihttp://pypi.douban.com/simple/--trust-host pypi.douban.com02、自动化requests模块的常用方法

2.1get请求实战
# !/usr/bin python3                
# encoding: utf-8 -*-              
# @author: 沙陌 微信:Matongxue_2
# @Time:2021/3/25 9:54 
# @Copyright:北京码同学网络科技有限公司
import  requests 
host='http://10.0.0.18:8080'
def get():
  """
get接口请求
:return:
"""
  url =host+'/pinter/com/getSku' #接口地址
  params={
    'id':1
}
  resp = requests.get(url,params=params)
  status_code=resp.status_code #获取响应状态码
  print('响应状态码:{}'.format(status_code))
  text=resp.text #获取响应内容,结果类型是字符串
  print('响应内容:{}'.format(text))
  json=resp.json() #获取响应内容,结果是字典类型
  print('响应内容:{}'.format(json))
  resp_headers=resp.headers #获取响应headers
  print('响应header:{}'.format(resp_headers))
if__name__=='__main__':
 get()结果如下
D:\Python\Python36\python.exe D:/pycharmprojects/first/requetsstudy/pinter.py
响应状态码:200 
响应内容:{"code":"0","message":"success","data":{"skuId":1,"skuName":"ptest-1","price":"645","stock":709,"brand":"testfan"}}
<class'dict'>
响应内容:{'code':'0','message':'success','data':{'skuId':1,'skuName':'ptest-1','price':'645','stock':709,'brand':'testfan'}}
响应header:{'Content-Type':'application/json;charset=UTF-8','Transfer-Encoding':'chunked','Date':'Fri,12Mar202122:13:49GMT','Keep-Alive':
'timeout=20','Connection':'keep-alive'}
Process finished with exit code 0上述代码中请求发起后得到一个响应对象变量resp,那么resp对象的常用方法如下

2.2post请求实战
post请求的参数格式通常有多种,我们依次学习
第一种表单形式的参数
```python
importrequests 
host='http://10.0.0.18:8080'
defpost():"""post表单:return:"""url=host+'/pinter/com/login'#表单参数data={
'userName':'沙陌','password':'123456'}resp=requests.post(url=url,data=data)status_code=
resp.status_code#获取响应状态码print('响应状态码:{}'.format(status_code))text=resp.text#获取响应内容,结果类型是字符串print('响应内容:{}'.format(text))json=resp.json()#获取响应内容,结果是字典类型print('响应内容:{}'.format(json))resp_headers=resp.headers#获取响应headers 
print('响应header:{}'.format(resp_headers))```第二种json格式参数
import requests
host='http://10.0.0.18:8080'
def post_json():
 """
postjson
:return:
"""
  url =host +'/pinter/com/register'
  #header里定义参数类型
  headers={
    'Content-Type':'application/json'
}
  #json参数
  json={
    "userName":"沙陌",
    "password":"1234",
    "gender":1,
    "phoneNum":"110",
    "email":"beihe@163.com",
    "address":"Beijing"
}
  resp=requests.post(url=url,json=json)
  status_code=resp.status_code #获取响应状态码
  print('响应状态码:{}'.format(status_code))
  text=resp.text #获取响应内容,结果类型是字符串
  print('响应内容:{}'.format(text))
  json=resp.json() #获取响应内容,结果是字典类型
  print('响应内容:{}'.format(json))
  resp_headers=resp.headers #获取响应headers
  print('响应header:{}'.format(resp_headers))2.3put接口实战
import requests
host='http://10.0.0.18:8080'
def put():
 """
put 清酒
:return:
"""
  url = host+'/pinter/com/phone' #接口地址
  #参数
  json={
    "brand":"Huawei",
    "color":"yellow",
    "memorySize":"64G",
    "cpuCore":"8核",
    "price":"8848",
    "desc":"全新上市"
}
  resp=requests.put(url=url,json=json)
  status_code=resp.status_code #获取响应状态码
  print('响应状态码:{}'.format(status_code))
  text=resp.text #获取响应内容,结果类型是字符串
  print('响应内容:{}'.format(text))
  json=resp.json() #获取响应内容,结果是字典类型
  print('响应内容:{}'.format(json))
  resp_headers=resp.headers #获取响应headers
  print('响应header:{}'.format(resp_headers))2.4delete请求

2.5request.session.request用法
可以自动管理cookie,比如如下需要采用cookie认证的接口


结果如下:
D:\Python\Python36\python.exeD:/pycharmprojects/first/requetsstudy/pinter.py 响应状态码:200 
响应内容:{"code":"0","message":"success","data":"$22,378,198"}
Process finished with exit code 02.6token关联的接口如何做呢?

对于需要token关联的接口来说,需要从登录接口的返回值中提取token信息,并传递给需要token的接口

结果如下:
D:\Python\Python36\python.exeD:/pycharmprojects/first/requetsstudy/pinter1.py
响应状态码:200 
响应内容:{"code":"0","message":"success","data":"$74,780,457"}
Process finished with exit code 0总结一下:
requests库的请求方法里参数众多,所以简单划分一下,查询参数就用params=params
表单参数就用data=data
json参数就用json=json
请求头信息header就用headers=headers
绵薄之力【资源分享】
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】


这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享~




















