在app測試的過程當(dāng)中,經(jīng)常遇到有一些插口必須在登錄狀態(tài)下才可以要求,文中具體闡述了python+pytest接口自動化之session對話維持的完成,有興趣的話可以認(rèn)識一下
序言
在app測試的過程當(dāng)中,經(jīng)常遇到有一些插口必須在登錄狀態(tài)下才可以要求,不然會提醒請登錄,那么如何處理呢?我們通過Cookie繞開登錄,其實(shí)這也是維持登錄狀態(tài)的方式之一。那今天小編想講根據(jù)session開展對話維持。
一、session(對話)
session,便可話。那么那么那么又會話?我們一起來看一下會說話的生命期就可大概搞清楚,如下所示:
逐漸:手機(jī)客戶端(大多是電腦瀏覽器)-->推送第一位要求-->某網(wǎng)站服務(wù)器,彼此之間取得成功建立聯(lián)系,即建立對話;
會集里:手機(jī)客戶端然后要求該網(wǎng)站服務(wù)器的其他資源;
完畢:關(guān)掉手機(jī)客戶端(大多是電腦瀏覽器)或是會話超時(shí),對話完畢。
二、對話維持
對話維持,還可以通俗易懂的解讀為使相同客戶上傳的相關(guān)的要求處在相同會集里不會被斷掉。例如應(yīng)用session很好地綁定了某一網(wǎng)址,即在再度使用這個(gè)session目標(biāo)要求此網(wǎng)站的許多網(wǎng)頁頁面時(shí),都是會默認(rèn)設(shè)置使用這個(gè)session中以前存放的cookie等主要參數(shù)去要求,而無需再度登錄。
session對話維持大概機(jī)理如下所示:
服務(wù)軟件初次要求該網(wǎng)站服務(wù)器時(shí),網(wǎng)絡(luò)服務(wù)器會構(gòu)建一個(gè)session,該session目標(biāo)時(shí)會存放特定用戶會話需要的特性及配置信息(如客戶信息或登錄狀態(tài)等),并儲存在網(wǎng)絡(luò)服務(wù)器中。
創(chuàng)建session時(shí),會給予其1個(gè)sessionID,該sessionID能被放置set-cookie中伴隨著要求回到給手機(jī)客戶端,并儲存在當(dāng)?shù)氐腸ookie中。
后面,手機(jī)客戶端要求本運(yùn)用中其他資源時(shí),網(wǎng)絡(luò)服務(wù)器就能收到cookie當(dāng)中的sessionID,然后根據(jù)ID在存儲空間中搜索以前創(chuàng)立的session目標(biāo),如果可以尋找但未到期,則表明來自相同戶用請求。
三、python開展session對話維持
在接口自動化檢測中,一些前提下可以用session對話維持體制來維持登錄狀態(tài),那樣就可以不用每一次清求插口都要先登錄。
下面,就以查詢TesterHome網(wǎng)站在本人通知消息、私人信息為例子,來闡述在python接口自動化檢測中怎樣利用session維持登錄狀態(tài)。
留意:
在這里我先試著要求登錄插口結(jié)構(gòu)session,然后運(yùn)用該session去要求別的插口,依然提醒先要登錄,表明此網(wǎng)站此類方法難以實(shí)現(xiàn)。
由于登錄后自動跳轉(zhuǎn)了主頁,所以在這里我們能運(yùn)用要求主頁插口結(jié)構(gòu)session,之后就可以運(yùn)用該session去要求別的插口了。
1、最先,F(xiàn)iddler抓包軟件獲得登錄成功后要求主頁插口后cookie
2、得到cookie,運(yùn)用要求主頁插口結(jié)構(gòu)session目標(biāo)。
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,即登錄成功后自動跳轉(zhuǎn)時(shí),要求主頁插口https://testerhome.com/后cookie' } #結(jié)構(gòu)1個(gè)全局性session目標(biāo) S=requests.session() #應(yīng)用session目標(biāo)即S仿真模擬登錄成功后要求主頁插口,升級S h_url="https://testerhome.com/" h_res=S.get(url=h_url,headers=headers).text
這步也會得到的session目標(biāo)S中便包括了登錄成功后cookie等內(nèi)容了,再使用這個(gè)session目標(biāo)去要求別的插口就可以不用再度綁定了。
3、應(yīng)用上一層樓所得到的session目標(biāo),查詢本人通知消息、私人信息插口。
#使用session目標(biāo)S要求本人通知消息插口 n_url="https://testerhome.com/notifications/personal" n_res=S.get(url=n_url).text print(n_res) #應(yīng)用session目標(biāo)S要求私人信息插口 s_url="https://testerhome.com/setting" s_res=S.get(url=s_url).text print(s_res)
要求私人信息插口,執(zhí)行結(jié)果如下所示:
4、詳細(xì)源代碼如下所示:
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,即登錄成功后自動跳轉(zhuǎn)時(shí),要求主頁插口https://testerhome.com/后cookie' } #結(jié)構(gòu)1個(gè)全局性session目標(biāo) S=requests.session() #應(yīng)用session目標(biāo)即S仿真模擬登錄成功后要求主頁插口,升級S h_url="https://testerhome.com/" h_res=S.get(url=h_url,headers=headers).text #應(yīng)用session目標(biāo)S要求本人通知消息插口 n_url="https://testerhome.com/notifications/personal" n_res=S.get(url=n_url).text print(n_res) #應(yīng)用session目標(biāo)S要求私人信息插口 s_url="https://testerhome.com/setting" s_res=S.get(url=s_url).text print(s_res)
匯總
session與cookie是不一樣的體制。
相同之處:二者都可以紀(jì)錄消費(fèi)者的情況,且均是由服務(wù)器端形成。
不同之處:cookie是存放在當(dāng)?shù)厥謾C(jī)客戶端的,而session則存放在服務(wù)器端。
二者之間存有聯(lián)絡(luò):session對話維持體制必須依靠cookie,由于sessionID是存放在cookie當(dāng)中的。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/130262.html
摘要:本套代碼和邏輯是本人的勞動成果,如果有轉(zhuǎn)載需要標(biāo)注,非常適合公司做項(xiàng)目的同學(xué)小白也可以學(xué)哦接口自動化項(xiàng)目目錄公共方法的封裝如果不用配置文件可以使用這個(gè)方法進(jìn)行封裝但是有一定的缺陷可以不使用字典。這是在正常的命令行解析之前發(fā)生的。 ...
本文關(guān)鍵闡述了Python每日任務(wù)自動化軟件nox的配備與API詳細(xì)信息,Nox對話是由被nox.session點(diǎn)綴的規(guī)范Python函數(shù)來配備的,實(shí)際詳細(xì)信息下面有關(guān)詳細(xì)介紹需要的朋友可以學(xué)習(xí)一下 序言: NoxfileNox默認(rèn)設(shè)置在這個(gè)名叫noxfile.pe的文檔中搜索配備。在運(yùn)作nox時(shí),你能應(yīng)用--noxfile主要參數(shù)特定其他的文檔。 界定對話文件格式:session(fu...
摘要:會調(diào)用向打印一些環(huán)境信息,比如插件版本,版本,操作平臺這些等。在執(zhí)行之后調(diào)用執(zhí)行的過程是否執(zhí)行取決于是否需要創(chuàng)建執(zhí)行的過程如果有。所有測試執(zhí)行完畢之后,返回之前的階段。結(jié)束以后,整個(gè)退出之前的階段。 pytest插件開發(fā)需要熟悉一些常用的hook函數(shù),官方對于這些hook有一份簡略的文檔(目前除了小部分hook目前缺乏文檔外,見這個(gè)issue),但是各個(gè)hook的調(diào)用邏輯沒有一個(gè)直觀的...
摘要:前端自動化測試百度搜索功能實(shí)戰(zhàn)可以與結(jié)合生成測試報(bào)告。以網(wǎng)頁版本的百度為例,百度首頁呈現(xiàn)的功能新聞網(wǎng)頁貼吧知道音樂圖片視頻地圖等,我們以百度網(wǎng)頁的搜索功能為例,使用結(jié)合自動化測試框架,完成一個(gè)搜索功能的測試。 ...
摘要:簡介是一個(gè)很實(shí)用的客戶端庫編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時(shí)經(jīng)常會用到是語言的第三方的庫專門用于發(fā)送請求前提要下載請求無參數(shù)請求有參數(shù)請求案例傳參的第一種方式傳參的第二種方式請求類似中的表單提交 ...
閱讀 919·2023-01-14 11:38
閱讀 891·2023-01-14 11:04
閱讀 750·2023-01-14 10:48
閱讀 2039·2023-01-14 10:34
閱讀 956·2023-01-14 10:24
閱讀 833·2023-01-14 10:18
閱讀 506·2023-01-14 10:09
閱讀 583·2023-01-14 10:02