中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Jmeter接口測試獲取Cookies的方法是什么

發布時間:2023-03-14 10:41:12 來源:億速云 閱讀:182 作者:iii 欄目:開發技術

這篇“Jmeter接口測試獲取Cookies的方法是什么”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Jmeter接口測試獲取Cookies的方法是什么”文章吧。

場景

接口測試時常都需要登錄,請求方式(post),登錄常用的方法有通過獲取token,獲取session,獲取cookie,等等. 這幾種都有一個共同的特點,有效期(expires).

Session是建立連接后session有效,斷開連接session失效, token有效期是服務端控制, cookie是用戶瀏覽訪問時被創建的,由服務器發送給客戶端使用,有效期長短和服務器相關,不同的web服務器默認值略有差異,在一個臨時會話周期內,cookie一般不會被持久化,也就是關閉瀏覽器或者退出登錄cookie失效.

如何獲取token, 我們之前的推文(Jmeter接口測試-正則表達式)里已經介紹過,今天來講cookie,使用cookie既然有有效期,那退出或者其他情況使cookie失效了,在接口測試腳本中要一直去修改為最新的cookie,不是很惱人的一件事情嗎?  有沒有辦法一勞永逸呢,答案是肯定的.

實戰

還是從實例入手, 首先我們找一個已經跑通的接口(原先cookie獲取是在自定義變量里寫死cookie值, 然后再傳給cookie manager), 在結果樹的請求->request Body中查找信息

Jmeter接口測試獲取Cookies的方法是什么

從圖中可以看出, cookie data有幾個信息組成

  • username

  • SESSION

  • SERVERID

那這些信息去哪里獲取呢?

使用chrome的開發者工具查看, 在application標簽下很容易就能找到上述信息

Jmeter接口測試獲取Cookies的方法是什么

有了以上這些信息,那接下來的事情就好辦了, 兩種方式添加

  • 1. http cookie manager(推薦)

  • 2. http 信息管理器

在cookie 管理中添加需要存儲的cookie

Jmeter接口測試獲取Cookies的方法是什么

然后把原先用自定義變量里的cookie值刪除(寫死的cookie值), 用這個方法去獲取cookie給同域名下的其他API使用, 即可非常輕松的執行需要登錄的API, 細心的同學會發現 cookie data里還有username和SESSION 怎么沒用到, 我這個實例中這兩個不用也可以正常執行, 如果有需要自行加上即可, 至此有趣的cookie可一勞永逸的使用, 不必再為cookie過期而煩惱了, 不知道你學會了沒有, 在實際測試場景中,類似這樣的問題時常困擾著我們, 如何巧妙的使用方法去解決(偷懶法則), 學會偷懶的技術工程師才是一個合格的工程師.

一、jmeter的http cookies管理器使用

作用:

1 發送請求,經常要校驗cookies信息

2 錄制的時使用的cookie管理器,只能在指定的域下面使用,如果服務器地址切換,發現發送請求時,就會出現no cookies

使用方法:

1 使用badboy錄制的腳本都帶了cookie管理器

2 使用jmeter的代理錄制腳本,提前設置好cookie管理器再進行錄制

3 自己設置cookie管理器

前兩種的cookie管理器都有域名的限制,有時需要自己進行修改

我一般使用代理錄制腳本,自己添加cookie管理器的方式進行

步驟:

1 錄制腳本

Jmeter接口測試獲取Cookies的方法是什么

2 修改cookie管理器,如果沒有域名切換的話,可以不用自己配置的

1)使用開發者工具,或者firefox的firebug插件獲取cookie信息。建議使用firebug這個配置和jmeter幾乎一樣。據說可以直接導入到jmeter,但是我沒有導入成功,就自己配置了。

下面是開發者工具所看到的cookie信息

并不是所有的都需要配置發送到服務器。我的只配置了sf_session就ok了

域就是服務器的ip

Jmeter接口測試獲取Cookies的方法是什么

這樣后面發送的所有請求都會自帶上這個cookie信息。

這里面的cookie可以通過正則表達式進行提起,設置成變量

二、jmeter的http cookies管理器使用

Cookie管理器,會默認把服務端返回的cookie數據記錄下來

步驟:

1 先添加http cookie管理器,這時jmeter就會自動記錄下服務端返回的cookie信息

由于數據是保存在cookie里面,沒法通過正則表達式去提取

Jmeter接口測試獲取Cookies的方法是什么

2 其實這個時候,jmeter發送請求,會默認把cookie信息帶上,能解決大部分問題

Jmeter接口測試獲取Cookies的方法是什么

3 但是我們這時又想用到cookie里面的某一個值的時候,就需要修改jmeter的設置了

在jmeter的安裝bin路徑下,

修改:jmeter.properties

#CookieManager behaviour - should Cookies be stored as #variables?
#Default is false
CookieManager.save.cookies=true //這個把前面的#去掉,

4 調用cookie里面某一個值

${COOKIE_某一個值名稱}

如上面的 sf_session就可以直接用${COOKIE_sf_session}調用。和自定義變量完全一樣

注意點:必須是請求服務端以后,cookie管理器里面才會有數據,一般是登陸時服務端返回會帶回cookie。之前cookie會一直為空

下面是我demo的截圖

Jmeter接口測試獲取Cookies的方法是什么

提取成功圖片:

  • 前置bs沒有cookie值

  • 后置的bs有了cookie值

Jmeter接口測試獲取Cookies的方法是什么

三、jmeter直接用cookie管理器保存登錄后的cookie信息

最近遇到的問題是,登錄需要驗證碼,驗證碼每次都變且無規律,所以錄制登錄接口就沒辦法錄制了。

于是就想著能不能直接在cookie管理器中保存我登錄后的信息,其他接口直接調用這個參數呢?經過試驗,有的系統可以,有的不可以,不可以的還沒找到原因和解決辦法,先寫可以使用的步驟吧。

1、打開火狐瀏覽器,登錄要保存cookie信息的網頁并登錄成功;

2、打開調試模式,切換到存儲,打開cookie,然后右側紅框區域內的所有數據就是cookie信息;

Jmeter接口測試獲取Cookies的方法是什么

3、把這個表里的所有數據的名稱、域名、路徑、值都一一寫到cookie管理器里,如下圖jmeter的這個位置 

Jmeter接口測試獲取Cookies的方法是什么

4、然后,在jmeter中,添加http請求,把cookie管理器中的這些參數,都當成參數傳過去,假如cookie管理器中只有一個參數JSESSIONID,寫接口時,就需要把JSESSIONID當成一個參數傳過去,如下圖 

Jmeter接口測試獲取Cookies的方法是什么

5、這樣就可以不需要登錄,直接調用登錄的cookie信息了 

四、個人自己操作實例

Jmeter接口測試獲取Cookies的方法是什么

1、谷歌瀏覽器打開調試,然后提交登錄,獲取session

Jmeter接口測試獲取Cookies的方法是什么

 2、添加HTTP Cookie管理器,把session添加進去: 

Jmeter接口測試獲取Cookies的方法是什么

Jmeter接口測試獲取Cookies的方法是什么

Jmeter接口測試獲取Cookies的方法是什么

 3、添加響應斷言 

Jmeter接口測試獲取Cookies的方法是什么

 4、執行,返回custname_0表示成功,custname_2表示失敗 

Jmeter接口測試獲取Cookies的方法是什么

Jmeter接口測試獲取Cookies的方法是什么

 新增客商有規則需要校驗,導致提交重復信息會失敗,只有第一次才會成功  

Jmeter接口測試獲取Cookies的方法是什么

注意:如果是在同一個線程組,根本不需要添加兩個cookies的參數值,只需要添加一個無參數值的空的http cookie管理器,去掉下圖的兩個SESSIONID變量值 

Jmeter接口測試獲取Cookies的方法是什么

下面是增加權限的截圖: 

Jmeter接口測試獲取Cookies的方法是什么

Jmeter接口測試獲取Cookies的方法是什么

以上就是關于“Jmeter接口測試獲取Cookies的方法是什么”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄂托克旗| 滦南县| 河南省| 伊金霍洛旗| 安岳县| 玛多县| 东宁县| 海林市| 开远市| 永顺县| 朝阳区| 乐陵市| 准格尔旗| 石屏县| 南宫市| 潢川县| 宁强县| 乐清市| 社旗县| 江油市| 申扎县| 弥渡县| 从江县| 逊克县| 依兰县| 循化| 砀山县| 阜南县| 广平县| 罗甸县| 海南省| 德州市| 临城县| 洛浦县| 南城县| 肇东市| 宁强县| 阳高县| 库尔勒市| 新龙县| 承德市|