企业网站seo优化外包,阜阳讯拓网站建设,十大办公用品采购平台,网站整合营销推广在编写接口自动化测试用例或其他脚本的过程中#xff0c;经常会遇到需要绕过用户名/密码或验证码登录#xff0c;去请求接口的情况#xff0c;一是因为有时验证码会比较复杂#xff0c;比如有些图形验证码#xff0c;难以通过接口的方式去处理#xff1b;再者#xff0c…在编写接口自动化测试用例或其他脚本的过程中经常会遇到需要绕过用户名/密码或验证码登录去请求接口的情况一是因为有时验证码会比较复杂比如有些图形验证码难以通过接口的方式去处理再者每次请求接口前如果都需要先去登录一次这样不仅效率低还耗费资源。有些网站是使用cookie辨别用户身份的此时我们便可以先登录一次拿到登录成功后的cookie后续请求时在请求头中加入该cookie便可保持登录状态直接请求。cookie工作原理HTTP协议1.0版本是无状态的对于事务处理没有记忆能力比如用户登录了某个网站后再次刷新这个页面去请求服务器如果没有相关机制的话服务器是不知道这个请求是否还是刷新之前登录的用户发出来的。此时为了维持用户的登录状态即为了使服务器能够识别页面刷新之后的请求就可以使用cookie机制。cookie原理简单概括如下用户在客户端 (一般为浏览器) 中访问某个页面 也就是向服务器发送请求。服务器收到请求后会在响应头中设置Set-Cookie字段值该字段存储相关信息和状态。客户端解析服务器HTTP响应头中的Set-Cookie字段并以keyvalue的形式保存在本地之后客户端每次发送HTTP请求时都会在请求头中增加Cookie字段。服务器接收到客户端的HTTP请求之后会从请求头中取出Cookie数据来校验客户端状态或身份信息。以登录某网站为例点击登录时请求sign_in接口请求成功后 (即登录成功后) 在响应头中会返回set-cookie字段如下浏览器会保存上图中set-cookie字段的值后续发送请求 (即登录后进行页面操作) 时请求头中都会携带包含刚刚保存的set-cookie值的cookie如下所示服务器接收到这个cookie后便会用它去查找内存中的记录有则校验成功。由此可知如果需要绕过用户名密码、验证码等进行模拟登录然后再去请求其他接口那么我们可以先拿到登录成功后的cookie将cookie放在请求头中再去调用需要登录才能请求的接口便能调用成功。cookie绕过登录1哪些场景需要使用cookie绕过登录网络爬虫代码去爬取某个网站时需要验证码登录而这时代码获取验证码登录有一定难度就可以先抓取到登录后的cookie用于后续的接口请求。接口自动化测试对某个需要登录的项目进行接口测试每次请求时都先请求登录接口进行登录会影响效率而且极其不方便这时就可以抓取到第一次登录后的cookie后续每次接口请求都带上该cookie服务器就会认为是登录状态。其他需要绕过登录的场景。2接下来举例说明怎样编写python脚本利用cookie机制绕过登录。需求请求接口获取博客园网自己账号的个人信息。需求分析需要先登录博客园才能去请求获取个人信息接口拿到个人信息该网站的登录方式有两种用户名、密码登录手机验证码登录可尝试使用cookie绕过这两种登录方式。3思路首先先使用手机验证码登录网站Fiddler进行抓包获取登录后的cookie信息然后编写python代码拿上一步中获取到的cookie信息去请求获取个人信息接口最后个人信息获取成功便说明绕过了登录。4实际操作流程如下首先登录网站Fiddler抓包获取登录成功后的cookie。然后cookie信息去请求获取个人信息接口。登录后同样可以抓取到获取个人信息接口的信息如下个人信息接口请求方式为GET请求URL如图所示那么我们只需要这两点信息就足够了。接下使用上一步中拿到的cookie去请求这个接口。代码如下import requestsurl https://account.cnblogs.com/user/userinfo
headers {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 Edg/99.0.1150.30,cookie: 登录成功后的cookie
}res requests.get(urlurl, headersheaders).text
print(res)运行代码结果如下可以看到成功获取了个人信息。最后为了验证是cookie确实绕过了登录我们修改上面的脚本不加入该cookie请求个人信息接口代码如下import requestsurl https://account.cnblogs.com/user/userinfo
headers {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 Edg/99.0.1150.30
}res requests.get(urlurl, headersheaders).text
print(res)运行后结果如下从上图可以看出来不加登录成功后的cookie去请求接口则会提示先登录或注册。总结cookie绕过登录其实是登录状态保持而不是真的不需要登录。并非所有的网站都是使用cookie机制除了cookie机制外还有session、token等方式进行会话保持这在后续的文章中会进行说明。实战案例光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。电商项目实战web测试项目webApph5小程序 测试项目接口自动化测试实战项目Linux实战项目面试资料我们进阶学习自动化测试必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。以上资料对于想要测试进阶的朋友们来说应该会很有帮助需要的小伙伴可以后台私信找我免费领取。总结我见过很多leader在面试的时候遇到处于迷茫期的大龄程序员比面试官年龄都大。这些人有一些共同特征可能工作了好几年更夸张的是7、8年工作内容的重复性比较高没有什么技术含量的工作。凡事要趁早特别是技术行业一定要提升技术功底丰富自动化项目实战经验这对于你未来几年职业规划以及测试技术掌握的深度非常有帮助。如果对你有帮助的话点个赞收个藏给作者一个鼓励。也方便你下次能够快速查找。如有不懂还要咨询下方小卡片博主也希望和志同道合的测试人员一起学习进步在适当的年龄选择适当的岗位尽量去发挥好自己的优势。我的自动化测试开发之路一路走来都离不每个阶段的计划因为自己喜欢规划和总结测试开发视频教程、学习笔记领取传送门