1. 程式人生 > >關於JMeter的亂碼問題以及處理cookie和session

關於JMeter的亂碼問題以及處理cookie和session

一:關於亂碼如何解決

1:修改配置檔案

開啟安轉後的JMeter目錄,找到這個檔案


選擇編輯,或者開啟方式,選擇記事本開啟,按住鍵盤的搜尋Ctrl+F 輸入ISO搜尋

找到下圖


第一個預設的#可以不用去掉!!!

修改完之後,重新啟動JMeter

2:如果是傳送的請求中有亂碼,需要如下設定


經測試,如果是get請求,沒有亂碼,如果是Post請求,可以這樣設定解決

3:如果是響應的訊息中有亂碼,需要如下設定

在請求上右擊----新增後置處理器---選擇BeanShell PostProcessor
在Script中填寫 如下內容:      prev.setDataEncoding(“UTF-8”);
可以傳送請求檢驗是否存在亂碼!

二:關於cookie和session的設定

1:修改配置檔案

開啟安轉後的JMeter目錄,找到這個檔案


選擇編輯,或者開啟方式,選擇記事本開啟,按住鍵盤的搜尋Ctrl+F 輸入ISO搜尋 cookie


如果還是沒變化,可以試著把#去掉,雖然只是嘗試,記得重啟JMeter

二:新增cookie管理器

新增方式:執行緒組-配置元件-HTTP Cookie 管理器,如下圖:


如果還是沒有cookie或者cookie不是擷取資料包的格式,那就切換cookie policy
更改為compatibility再重新發送請求檢視!
有些web端需要先登入獲取cookie,所以可以新增一個訪問的HTTP請求,再進行登入獲得cookie

最後介紹下cookie和session(老大難的問題了)

當你在瀏覽網站的時候,WEB 伺服器會先送一小小資料放在你的計算機上,Cookie 會幫你在網站上所打的文字

或是一些選擇,都紀錄下來。當下次你再光臨同一個網站,WEB 伺服器會先看看有沒有它上次留下的 Cookie 資

料,有的話,就會依據 Cookie裡的內容來判斷使用者,送出特定的網頁內容給你。 Cookie 的使用很普遍,許多

有提供個人化服務的網站,都是利用 Cookie來辨認使用者,以方便送出使用者量身定做的內容,像是 Web 介面

的免費 email 網站,都要用到 Cookie。

具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採

用的是在伺服器端保持狀態的方案。

同時我們也看到,由於採用伺服器端保持狀態的方案在客戶端也需要儲存一個標識,所以session機制可能需要借

助於cookie機制來達到儲存標識的目的,但實際上它還有其他選擇。

cookie機制。正統的cookie分發是通過擴充套件HTTP協議來實現的,伺服器通過在HTTP的響應頭中加上一行特殊的

指示以提示瀏覽器按照指示生成相應的cookie。然而純粹的客戶端指令碼如JavaScript或者VBScript也可以生成

cookie。而cookie的使用是由瀏覽器按照一定的原則在後臺自動傳送給伺服器的。瀏覽器檢查所有儲存的

cookie,如果某個cookie所宣告的作用範圍大於等於將要請求的資源所在的位置,則把該cookie附在請求資源的

HTTP請求頭上傳送給伺服器。

cookie的內容主要包括:名字,值,過期時間,路徑和域。路徑與域一起構成cookie的作
用範圍。若不設定過期時間,則表示這個cookie的生命期為瀏覽器會話期間,關閉瀏覽器
視窗,cookie就消失。這種生命期為瀏覽器會話期的cookie被稱為會話cookie。

會話cookie一般不儲存在硬碟上而是儲存在記憶體裡,當然這種行為並不是規範規定的。若設定了過期時間,瀏覽

器就會把cookie儲存到硬碟上,關閉後再次開啟瀏覽器,這些cookie仍然有效直到超過設定的過期時間。儲存在

硬碟上的cookie可以在不同的瀏覽器程序間共享,比如兩個IE視窗。而對於儲存在記憶體裡的cookie,不同的瀏覽

器有不同的處理方式session機制。session機制是一種伺服器端的機制,伺服器使用一種類似於散列表的結構

(也可能就是使用散列表)來儲存資訊。

          當程式需要為某個客戶端的請求建立一個session時,伺服器首先檢查這個客戶端的請求裡是否已包含了一

個session標識(稱為session id),如果已包含則說明以前已經為此客戶端建立過session,伺服器就按照

session id把這個session檢索出來使用(檢索不到,會新建一個),如果客戶端請求不包含session id,則為此

客戶端建立一個session並且生成一個與此session相關聯的session id,session id的值應該是一個既不會重複,

又不容易被找到規律以仿造的字串,這個session id將被在本次響應中返回給客戶端儲存。儲存這個session id

的方式可以採用cookie,這樣在互動過程中瀏覽器可以自動的按照規則把這個標識傳送給伺服器。一般這個

cookie的名字都是類似於SEEESIONID。但cookie可以被人為的禁止,則必須有其他機制以便在cookie被禁止時

仍然能夠把session id傳遞迴伺服器。

後續還會更新!測試小白