Jmeter新手頻犯錯誤之一(登入)

2022-05-29 11:24:08 字數 1185 閱讀 3609

昨天被人問了乙個問題:為什麼我用jmeter先建立乙個登入請求,然後建立乙個操作(比如計算賬單)請求,執行之後結果樹中卻是status_code=401(即登入失敗),我明明登入了啊....

emmm.....,這貌似是我回答過幾次的問題,而且好像新人都容易犯這個錯,我覺得我有必要寫點什麼。

首先我們來了解一下這個「登入」。乙個**呢,我們一般先登入,然後登入成功進入**執行一些操作。這看上去和上面的流程一模一樣,沒毛病。這是ui層的,我們在深入點,到介面層。

為什麼你不登入的時候直接訪問計算賬單的url,系統會自動幫你跳轉到登入介面呢?因為它通過一些機制判斷了你不是「登入中」的狀態。

而這機制中,簡單的來說就是用乙個值的合法性來判定,即cookie(假設這個系統是用的cookie校驗機制,當然還有什麼token之類的啦,具體看系統)。

而我們使用瀏覽器登入-->計算賬單-->付款...等一系列流程之所以這麼順暢,是因為瀏覽器在之後傳送請求的時候自動帶上了你登入所產生的cookie(瀏覽器這種機制為後來的xss和csrf攻擊提供了好環境)。

登入過程中客戶端(瀏覽器)和伺服器的互動,簡單點說大概是這樣的:(其實之前應當還有兩步:1、使用者在客戶端(瀏覽器)上進行訪問;2、伺服器收到請求返回乙個狀態碼401,告知客戶端需要登入。這樣才是乙個比較健全的登入過程)

1、使用者在瀏覽器中輸入賬號和密碼,發起登入請求(requests);

2、伺服器端收到請求,校驗賬號和密碼的正確性。如果正確,返回乙個「登入成功」的響應(response)給使用者,這個response中會有乙個欄位cookie;

3、然後使用者之後發起的每個request中都會帶上cookie這個字段;

4、伺服器之後會通過這個cookie來識別這個使用者,進而判斷使用者是否合法;(session—cookie)

看完了上面的這個過程,這下應該知道為什麼提示status_code=401了。因為你只是請求了登入介面,然後就繼續執行下面的計算賬單了,計算賬單這個請求的cookie(令牌)呢?沒有,那麼不好意思,伺服器就不會認你,直接拒絕。

常見的解決方法有兩種:

方法1:在登入請求後面加個後置處理器-->正則提取表達器,把登入後response中的cookie提取出來,然後當做乙個引數塞進計算賬單的sampler中。

____雪中悍刀行

新手易犯錯誤集

include include define exp 0.00000001 int main else else if disc 0.0 else return 0 今天在寫這個 的時候犯了很多錯誤決定把它記下來,以後就不會犯了,1 今天寫的時候在else後面還加了小括號寫了判斷語句,後來經查得知。...

C C 檔案讀取常用函式及新手易犯錯誤

1.c語言中,注意getline 和fgets 的區別,兩者都是讀取檔案的一行。但是用法有所區別。getline 的定義是 size t getline char s,size t n,file fp 該函式在呼叫的時候,不用為s分配記憶體,該函式內部會為其動態分配記憶體,如果呼叫成功,將返回分配記...

效能測試新手常犯錯誤總結(六) 效能監控

資料庫 或中介軟體 非常慢了,如何監控它的效能 你想得到什麼效能指標?就是 內部的效能指標 收到效能測試人員這樣的問題後,通常會發生上面的對話。我的觀點是,準確的說出你想要做什麼,比你會不會做更重要。那麼對於效能測試人員來說,效能監控 這門必修課,該從何下手呢?監控什麼 如果我給你乙個黑盒子,告訴你...