在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當中的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/130262.html
摘要:本套代碼和邏輯是本人的勞動成果,如果有轉載需要標注,非常適合公司做項目的同學小白也可以學哦接口自動化項目目錄公共方法的封裝如果不用配置文件可以使用這個方法進行封裝但是有一定的缺陷可以不使用字典。這是在正常的命令行解析之前發生的。 ...
本文關鍵闡述了Python每日任務自動化軟件nox的配備與API詳細信息,Nox對話是由被nox.session點綴的規范Python函數來配備的,實際詳細信息下面有關詳細介紹需要的朋友可以學習一下 序言: NoxfileNox默認設置在這個名叫noxfile.pe的文檔中搜索配備。在運作nox時,你能應用--noxfile主要參數特定其他的文檔。 界定對話文件格式:session(fu...
摘要:會調用向打印一些環境信息,比如插件版本,版本,操作平臺這些等。在執行之后調用執行的過程是否執行取決于是否需要創建執行的過程如果有。所有測試執行完畢之后,返回之前的階段。結束以后,整個退出之前的階段。 pytest插件開發需要熟悉一些常用的hook函數,官方對于這些hook有一份簡略的文檔(目前除了小部分hook目前缺乏文檔外,見這個issue),但是各個hook的調用邏輯沒有一個直觀的...
摘要:前端自動化測試百度搜索功能實戰可以與結合生成測試報告。以網頁版本的百度為例,百度首頁呈現的功能新聞網頁貼吧知道音樂圖片視頻地圖等,我們以百度網頁的搜索功能為例,使用結合自動化測試框架,完成一個搜索功能的測試。 ...
摘要:簡介是一個很實用的客戶端庫編寫爬蟲和測試服務器響應數據時經常會用到是語言的第三方的庫專門用于發送請求前提要下載請求無參數請求有參數請求案例傳參的第一種方式傳參的第二種方式請求類似中的表單提交 ...
閱讀 910·2023-01-14 11:38
閱讀 877·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1981·2023-01-14 10:34
閱讀 941·2023-01-14 10:24
閱讀 818·2023-01-14 10:18
閱讀 498·2023-01-14 10:09
閱讀 572·2023-01-14 10:02