接口测试+requests库

能够使用requests库发送 get/post/put/delete 请求,获取响应状态码/数据

1. 安装

1)pip install requests

2)  pip install requests -i https://pypi.douban.com/simple #使用豆瓣的镜像

查验:

1) pip list

2) pip show 库名

2. http请求语法

resp = requests.请求方法(url='url地址',params={k:v},headers={k:v},data={k:v},json={k:v},cookies='cookie数据')

请求方法:

get()/post()/put()/delete()

参数介绍:

  • params:查询参数-字典
  • headers:请求头-字典
  • data:表单格式的请求体-字典
  • json:json格式的请求体-字典
  • cookies: cookie数据-string类型

案例1:

请求百度

import requests
resp = requests.get(url="https://www.baidu.com/")

print(resp.text)

案例2:

import requests

resp = requests.post(url="https://passport.yunwoke.com/api/v2/user/signin?",
                    headers={"content-type":"application/x-www-form-urlencoded"},
                    data={"username":"13527272827","password":"123456"})
print(resp.text)

案例3:

import requests

resp = requests.post(url="https://ent.yunwoke.com/api/tasks?",headers={"content-type":"application/json","cookie":"ARK_ID=JSbf1e81598c59663cc16f37f96ae2fbadbf1e; _ga=GA1.2.610934082.1682316159; _ati=3183880769643; gr_user_id=9bd0b17e-f2ec-4f3f-88e4-a09d17b8108a; _gid=GA1.2.1841359514.1683509357; session_ent=piJ9YP30jUvile3Stvy3sKrgUK0lhKSqmtWTmUASDn61Q9WsFXUFQhn8F18A0afq; Hm_lvt_c4362f2b915e7e30bed59939f1743536=1683527588,1683595883,1683610831,1683687019; ARK_STARTUP=eyJTVEFSVFVQIjp0cnVlLCJTVEFSVFVQVElNRSI6IjIwMjMtMDUtMTAgMTA6NTA6MjAuOTYxIn0%3D; _clck=1oj0nkt|1|fbh|0; gioCookie=yes; 901cc6cae5581b9a_gr_session_id=fdf63e6b-665c-40d9-8795-53ae7a01b1dd; 901cc6cae5581b9a_gr_session_id_sent_vst=fdf63e6b-665c-40d9-8795-53ae7a01b1dd; cwsso_token=NaGbP4uYR7CT433xfuowMzs5B1cMaBIImCYcBlSCapBBV32N9s8Htcn7umbiZ74z; session_token=9VeGpJyCN8waP6qku68AmvcL47ce0f20e03447bf; Hm_lpvt_c4362f2b915e7e30bed59939f1743536=1683687734; _gat_gtag_UA_72266400_2=1; FZ_STROAGE.yunwoke.com=eyJBUktTVVBFUiI6eyJpdGVtX3RpdGxlIjoi5LqR5rKD5a6i5LyB5Lia54mIIn0sIlNFRVNJT05JRCI6IjUxN2U1NGQzN2QyNWQxMmUiLCJTRUVTSU9OREFURSI6MTY4MzY4Nzc2ODYxOCwiQU5TQVBQSUQiOiIwZWM3MzgzNzY0MTlmYjNjIiwiQU5TJERFQlVHIjoyLCJBTlNVUExPQURVUkwiOiJodHRwczovL2RhdGEuY2xvdWRlcndvcmsuY29tLyIsIkZSSVNUREFZIjoiMjAyMzA0MjQiLCJGUklTVElNRSI6ZmFsc2UsIkFSS19JRCI6IkpTYmYxZTgxNTk4YzU5NjYzY2MxNmYzN2Y5NmFlMmZiYWRiZjFlIiwiQVJLRlJJU1RQUk9GSUxFIjoiMjAyMy0wNC0yNCAxNDowMjozNy41MjMiLCJBUktfTE9HSU5JRCI6ImViMzkyMDQ4MjM1YjU0OWMifQ%3D%3D; _clsk=1h699ua|1683687772528|14|1|r.clarity.ms/collect"},
                     json={"subject":"测试自动22","project_uuid":"2029c90b99da4d06","category":1,"kanban_id":22881,"start_at":None,"end_at":None,"executor_id":"eb392048235b549c"})

print(resp.text)

3. Session

session也叫会话,通常出现在网络通信中,从客户端借助访问终端登录上服务器,直到退出登录所产生的通信数据,保存在会话中

session用于存储用户的信息

session位于服务端,大小直接使用服务器存储空间

session中的数据,不能随意被访问, 安全性较高

session中存储的数据类型,受服务器影响,几乎支持所有的数据类型

session自动管理cookie,因为cookie中的数据都是session传递的。

import requests

# 创建一个 session 实例
session = requests.Session()
# 使用session实例,调登录方法
resp_v = session.post(url="https://passport.yunwoke.com/api/v2/user/signin?",
                    headers={"content-type":"application/x-www-form-urlencoded",},
                    data={"username":"13527272827","password":"123456"})
# 使用同一个session实例,调用post方法,新增一个task任务
resp = session.post(url="https://ent.yunwoke.com/api/tasks?",
                    headers={"content-type":"application/json"},
                    json={"subject":"测试自动23","project_uuid":"2029c90b99da4d06","category":1,"kanban_id":22881,"start_at":None,"end_at":None,"executor_id":"eb392048235b549c"})

print(resp.text)

cookie 和 session 的区别

  • 数据存储问题: cookie 存储在浏览器,session存储在服务器
  • 安全性:cookie中的数据可以随意获取。 session的数据多为加密存储,安全性较高
  • 数据类型: cookie支持的数据类型受浏览器限制较少,session直接使用服务器存储,支持所有数据类型
  • 大小:cookie大小默认4k,session 大小约为服务器存储空间大小

4. 获取指定的响应数据

  • 获取url: resp.url
  • 获取响应状态码: resp.status_code
  • 获取cookie: resp.cookies
  • 获取响应头: resp.headers
  • 获取响应体: 文本格式 resp.text/ json格式 resp.json()
import requests

resp = requests.get(url="https://www.baidu.com/")

print("url=",resp.url)

print("cookies=",resp.cookies)

print("headers=",resp.headers)

print("body_text=",resp.text)
# 当显示 JSONDecodeError错误时,说明resp不能转为json格式数据
print("body_json=",resp.json())

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值