网站开发语言入门,高新网页设计报价,网站运营与管理的一个目的是,浙江网警目录#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结#xff08;尾部小惊喜#xff09; 前言
在接口测试的过程… 目录导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结尾部小惊喜 前言
在接口测试的过程中经常会遇到有些接口需要在登录的状态下才能请求否则会提示请登录那么怎样解决呢
可以通过session进行会话保持。
session会话
session即会话。那么什么又是会话我们来看一下会话的生存周期就能大致明白如下
开始客户端(通常是浏览器)–发送第一个请求–某应用服务器彼此成功建立连接即创建会话 会话中客户端接着请求该应用服务器的其他资源 结束关闭客户端(通常是浏览器)或者会话超时会话结束。
会话保持
会话保持可以通俗的理解为使同一用户发送的相关联的请求处于同一个会话中不被断开。
比如使用session成功地登录了某个网站则在再次使用该session对象请求该网站的其他网页时都会默认使用该session中之前保存的cookie等参数去请求而不需要再次登录。
session会话保持大致原理如下 客户端应用第一次请求该应用服务器时服务器会创建一个session该session对象中会存储特定的用户会话所需的属性及配置信息(如用户信息或登录状态等)并保存在服务器中。
创建session时会赋予其一个session ID该session ID会被置于set-cookie中随着请求返回给客户端并保存在本地的cookie中。
后续客户端请求本应用中其他资源时服务器就会收到cookie中的session ID并根据ID在内存中查找之前创建的session对象如果能找到且未过期则说明是来自同一户用的请求。
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中的。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图
一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、测试开发DevOps体系 七、常用自动化测试工具 八、JMeter性能测试 九、总结尾部小惊喜
每一次的付出都将成为未来的光芒勇敢追逐梦想挑战自我坚持不懈。即使路途漫长也要保持信念不放弃奋力前行。相信自己的力量终将收获辉煌的成果。
不论起点如何只要心怀梦想坚持努力不屈不挠努力追求你就能超越自我绽放出耀眼的光芒成就辉煌人生。相信自己勇往直前胜利属于那些敢于全力奋斗的人。
在追寻梦想的路上困难和挫折是无法避免的但只要心怀坚定的信念勇往直前努力拼搏就一定能获得成功的喜悦。每一次的奋斗都是一次革命为自己的人生谱写壮丽乐章。