1.說明
在腳本編寫的過程中,我們常常會遇到用戶登錄之后的相關操作,但是又不想去通過腳本先模擬用戶登錄,再使用cookie值保持登錄,做后續的操作的情況下,我們就會用到HTTP Cookie管理。
HTTP Cookie管理,主要是通過其他途徑獲取有效的用戶登錄后生成的cookie,放入HTTP Cookie管理中,在后續接口的操作中,請求會自動帶上有效的cookie信息,讓服務器認為,接口現在的操作是已登錄有效用戶,從而保證我們接口的正常運行及返回。
首先,帶大家看一下沒有cookie值的腳本返回(此時未添加HTTP Cookie管理)
ps:我這個接口,是想模擬用戶登錄之后獲取一個頁面中部分信息,但是用戶登錄,每次需要輸入驗證碼,驗證碼又不確定,我就覺得很麻煩,暫時不想做登錄處理,想跳過登錄,直接做用戶登錄之后的操作,但是呢,腳本寫好之后,悲慘的發現,用戶沒登錄,啥都不能做,嗯~~~就像淘寶,你想下單必須先登錄,我這里也是一樣的,就是給我返回,登錄頁面,唉~~~所以,我們看接下來的操作步驟吧!
2.步驟
第一步:在瀏覽器中獲取已登錄用戶的cookie值
在瀏覽器中打開你要操作的網站---->登錄一個有效用戶---->F12(打開開發者工具)
在Application中獲取自己操作的網站的cookies相關信息
第二步:添加HTTP Cookie管理器
線程組 (鼠標右鍵)---->配置元件---->HTTP Cookie管理器
(1)每次反復清除Cookies?:選擇后,則每次線程組運行時,都會清除 cookie。(若是手動添加的cookie,則不會被清除)
(2)Implementation:履行的協議。
(3)Cookie Policy:Cookie的管理策略
- compatibility:推薦選擇此種策略。這種兼容性設計要求是適應盡可能多的不同的服務器,盡管不是完全按照標准來實現的。如果你遇到了解析 Cookies 的問題,你就可能要用到這一個規范。有太多的web站點是用CGI腳本去實現的,而導致只有將所有的 Cookies 都放入 Request header 才可以正常的工作。這種情況下最好設置 http.protocol.single-cookie-header 參數為 true。
- rfc2109:是HttpClient使用的默認Cookies協議。
- rfc2965:定義了版本2並且嘗試去彌補在版本1中 Cookie 的 RFC2109 標准的缺點。規定 RFC2965 最終取代 RFC2109 發送 RFC2965 標准 Cookies 的服務端,將會使用 Set-Cookie2 header 添加到 Set-Cookie Header 信心中,RFC2965 Cookies 是區分端口的。
- ignorecookies:此規格忽略所有 Cookie。被用來防止 HttpClient 接受和發送的 Cookie。
- netscape:是最原始的 Cookies 規范,同時也是 RFC2109 的基礎。盡管如此,還是在很多重要的方面與 RFC2109 不同,可能需要特定服務器才可以兼容。
- default:默認。
第三步:運行接口
HTTP Cookie管理器添加配置成功之后,再運行我們的接口,就發現不再是返回登錄頁面,而是有正確的返回信息啦~~