在app测试的过程当中,经常遇到有一些插口必须在登录状态下才可以要求,文中具体阐述了python+pytest接口自动化之session对话维持的完成,有兴趣的话可以认识一下
序言
在app测试的过程当中,经常遇到有一些插口必须在登录状态下才可以要求,不然会提醒请登录,那么如何处理呢?我们通过Cookie绕开登录,其实这也是维持登录状态的方式之一。那今天小编想讲根据session开展对话维持。
一、session(对话)
session,便可话。那么那么那么又会话?我们一起来看一下会说话的生命期就可大概搞清楚,如下所示:
逐渐:手机客户端(大多是电脑浏览器)-->推送第一位要求-->某网站服务器,彼此之间取得成功建立联系,即建立对话;
会集里:手机客户端然后要求该网站服务器的其他资源;
完毕:关掉手机客户端(大多是电脑浏览器)或是会话超时,对话完毕。
二、对话维持
对话维持,还可以通俗易懂的解读为使相同客户上传的相关的要求处在相同会集里不会被断掉。例如应用session很好地绑定了某一网址,即在再度使用这个session目标要求此网站的许多网页页面时,都是会默认设置使用这个session中以前存放的cookie等主要参数去要求,而无需再度登录。
session对话维持大概机理如下所示:
服务软件初次要求该网站服务器时,网络服务器会构建一个session,该session目标时会存放特定用户会话需要的特性及配置信息(如客户信息或登录状态等),并储存在网络服务器中。
创建session时,会给予其1个sessionID,该sessionID能被放置set-cookie中伴随着要求回到给手机客户端,并储存在当地的cookie中。
后面,手机客户端要求本运用中其他资源时,网络服务器就能收到cookie当中的sessionID,然后根据ID在存储空间中搜索以前创立的session目标,如果可以寻找但未到期,则表明来自相同户用请求。
三、python开展session对话维持
在接口自动化检测中,一些前提下可以用session对话维持体制来维持登录状态,那样就可以不用每一次清求插口都要先登录。
下面,就以查询TesterHome网站在本人通知消息、私人信息为例子,来阐述在python接口自动化检测中怎样利用session维持登录状态。
留意:
在这里我先试着要求登录插口结构session,然后运用该session去要求别的插口,依然提醒先要登录,表明此网站此类方法难以实现。
由于登录后自动跳转了主页,所以在这里我们能运用要求主页插口结构session,之后就可以运用该session去要求别的插口了。
1、最先,Fiddler抓包软件获得登录成功后要求主页插口后cookie
2、得到cookie,运用要求主页插口结构session目标。
importrequests headers={ "user-agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/99.0.4844.51Safari/537.36", "cookie":'如上边截如图所示获得的cookie,即登录成功后自动跳转时,要求主页插口https://testerhome.com/后cookie' } #结构1个全局性session目标 S=requests.session() #应用session目标即S仿真模拟登录成功后要求主页插口,升级S h_url="https://testerhome.com/" h_res=S.get(url=h_url,headers=headers).text
这步也会得到的session目标S中便包括了登录成功后cookie等内容了,再使用这个session目标去要求别的插口就可以不用再度绑定了。
3、应用上一层楼所得到的session目标,查询本人通知消息、私人信息插口。
#使用session目标S要求本人通知消息插口 n_url="https://testerhome.com/notifications/personal" n_res=S.get(url=n_url).text print(n_res) #应用session目标S要求私人信息插口 s_url="https://testerhome.com/setting" s_res=S.get(url=s_url).text print(s_res)
要求私人信息插口,执行结果如下所示:
4、详细源代码如下所示:
importrequests headers={ "user-agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/99.0.4844.51Safari/537.36", "cookie":'如上边截如图所示获得的cookie,即登录成功后自动跳转时,要求主页插口https://testerhome.com/后cookie' } #结构1个全局性session目标 S=requests.session() #应用session目标即S仿真模拟登录成功后要求主页插口,升级S h_url="https://testerhome.com/" h_res=S.get(url=h_url,headers=headers).text #应用session目标S要求本人通知消息插口 n_url="https://testerhome.com/notifications/personal" n_res=S.get(url=n_url).text print(n_res) #应用session目标S要求私人信息插口 s_url="https://testerhome.com/setting" s_res=S.get(url=s_url).text print(s_res)
汇总
session与cookie是不一样的体制。
相同之处:二者都可以纪录消费者的情况,且均是由服务器端形成。
不同之处:cookie是存放在当地手机客户端的,而session则存放在服务器端。
二者之间存有联络:session对话维持体制必须依靠cookie,由于sessionID是存放在cookie当中的。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/130262.html
摘要:本套代码和逻辑是本人的劳动成果,如果有转载需要标注,非常适合公司做项目的同学小白也可以学哦接口自动化项目目录公共方法的封装如果不用配置文件可以使用这个方法进行封装但是有一定的缺陷可以不使用字典。这是在正常的命令行解析之前发生的。 ...
本文关键阐述了Python每日任务自动化软件nox的配备与API详细信息,Nox对话是由被nox.session点缀的规范Python函数来配备的,实际详细信息下面有关详细介绍需要的朋友可以学习一下 序言: NoxfileNox默认设置在这个名叫noxfile.pe的文档中搜索配备。在运作nox时,你能应用--noxfile主要参数特定其他的文档。 界定对话文件格式:session(fu...
摘要:会调用向打印一些环境信息,比如插件版本,版本,操作平台这些等。在执行之后调用执行的过程是否执行取决于是否需要创建执行的过程如果有。所有测试执行完毕之后,返回之前的阶段。结束以后,整个退出之前的阶段。 pytest插件开发需要熟悉一些常用的hook函数,官方对于这些hook有一份简略的文档(目前除了小部分hook目前缺乏文档外,见这个issue),但是各个hook的调用逻辑没有一个直观的...
摘要:前端自动化测试百度搜索功能实战可以与结合生成测试报告。以网页版本的百度为例,百度首页呈现的功能新闻网页贴吧知道音乐图片视频地图等,我们以百度网页的搜索功能为例,使用结合自动化测试框架,完成一个搜索功能的测试。 ...
摘要:简介是一个很实用的客户端库编写爬虫和测试服务器响应数据时经常会用到是语言的第三方的库专门用于发送请求前提要下载请求无参数请求有参数请求案例传参的第一种方式传参的第二种方式请求类似中的表单提交 ...
阅读 889·2023-01-14 11:38
阅读 833·2023-01-14 11:04
阅读 684·2023-01-14 10:48
阅读 1887·2023-01-14 10:34
阅读 890·2023-01-14 10:24
阅读 750·2023-01-14 10:18
阅读 479·2023-01-14 10:09
阅读 519·2023-01-14 10:02