01、requests的安装
windows下执行如下命令
pipinstallrequests-ihttp://pypi.douban.com/simple/--trust-host pypi.douban.com
mac终端下执行如下命令
python3-mpipinstallrequests-ihttp://pypi.douban.com/simple/--trust-host pypi.douban.com
02、自动化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 0
2.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
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
-
文档获取方式:
-
加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取