网站数据库网络错误,泊头做网站的公司,厦门品牌网站建设,如何在网站做直播间在接口测试的过程中#xff0c;经常会遇到有些接口需要在登录的状态下才能请求#xff0c;否则会提示请登录#xff0c;那么怎样解决呢#xff1f;
上一篇文章我们介绍了Cookie绕过登录#xff0c;其实这就是保持登录状态的方法之一。
另外一种方式则是通过session进行会…在接口测试的过程中经常会遇到有些接口需要在登录的状态下才能请求否则会提示请登录那么怎样解决呢
上一篇文章我们介绍了Cookie绕过登录其实这就是保持登录状态的方法之一。
另外一种方式则是通过session进行会话保持。
session(会话)
session即会话。那么什么又是会话我们来看一下会话的生存周期就能大致明白如下 开始客户端(通常是浏览器)--发送第一个请求--某应用服务器彼此成功建立连接即创建会话 会话中客户端接着请求该应用服务器的其他资源 结束关闭客户端(通常是浏览器)或者会话超时会话结束。 会话保持
会话保持可以通俗的理解为使同一用户发送的相关联的请求处于同一个会话中不被断开。比如使用session成功地登录了某个网站则在再次使用该session对象请求该网站的其他网页时都会默认使用该session中之前保存的cookie等参数去请求而不需要再次登录。
session会话保持大致原理如下 客户端应用第一次请求该应用服务器时服务器会创建一个session该session对象中会存储特定的用户会话所需的属性及配置信息(如用户信息或登录状态等)并保存在服务器中。 创建session时会赋予其一个session ID该session ID会被置于set-cookie中随着请求返回给客户端并保存在本地的cookie中。 后续客户端请求本应用中其他资源时服务器就会收到cookie中的session ID并根据ID在内存中查找之前创建的session对象如果能找到且未过期则说明是来自同一户用的请求。 如果你想学习自动化测试我这边给你推荐一套视频这个视频可以说是B站播放全网第一的自动化测试教程同时在线人数到达1000人并且还有笔记可以领取及各路大神技术交流798478386
【已更新】B站讲的最详细的Python接口自动化测试实战教程全集实战最新版_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集实战最新版共计200条视频包括1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等UP主更多精彩视频请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from333.337.search-card.all.click
python进行session会话保持
在接口自动化测试中某些情况下可以使用session会话保持机制来保持登录状态这样就不需要每次清求接口都需要先登录。
接下来我们以查看TesterHome网站上个人的通知消息、个人信息为例来说明在python接口自动化测试中怎样利用session保持登录状态。
注意 这里我先尝试请求登录接口构造session然后再利用该session去请求其他接口仍然提示需先登录说明该网站此种方式行不通。 因为登陆后跳转到了首页所以这里我们可以利用请求首页接口构造session然后就可以利用该session去请求其他接口了。
1首先Fiddler抓包获取登录成功后请求首页接口时的cookie 2拿到cookie利用请求首页接口构造session对象。
import requestsheaders {user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36,cookie: 如上面截图所示获取的cookie即登录成功后跳转时请求首页接口https://testerhome.com/时的cookie
}# 构造一个全局session对象
S requests.session()# 使用session对象即S模拟登录成功后请求首页接口更新S
h_url https://testerhome.com/
h_res S.get(urlh_url, headersheaders).text
这一步会得到的session对象S中就包含了登录成功后的cookie等信息了再使用该session对象去请求其他接口就不需要再次登录了。
3使用上一步得到的session对象查看个人通知消息、个人信息接口。
# 使用session对象S请求个人通知消息接口
n_url https://testerhome.com/notifications/personal
n_res S.get(urln_url).text
print(n_res)# 使用session对象S请求个人信息接口
s_url https://testerhome.com/setting
s_res S.get(urls_url).text
print(s_res)
请求个人信息接口执行结果如下 4完整代码如下
import requestsheaders {user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36,cookie: 如上面截图所示获取的cookie即登录成功后跳转时请求首页接口https://testerhome.com/时的cookie
}# 构造一个全局session对象
S requests.session()# 使用session对象即S模拟登录成功后请求首页接口更新S
h_url https://testerhome.com/
h_res S.get(urlh_url, headersheaders).text# 使用session对象S请求个人通知消息接口
n_url https://testerhome.com/notifications/personal
n_res S.get(urln_url).text
print(n_res)# 使用session对象S请求个人信息接口
s_url https://testerhome.com/setting
s_res S.get(urls_url).text
print(s_res)
总结
session与cookie是不同的机制。
相同点两者都能记录用户的状态且都是由服务端生成。
不同点cookie是存储在本地客户端的而session则存储在服务端。
两者之间存在联系session会话保持机制需要依赖cookie因为session ID是存储在cookie中的。