IT培訓-高端面授IT培訓機構
          云和教育:云和數據集團高端IT職業教育品牌
          • 國家級
            全民數字素養與技能培訓基地
          • 河南省
            第一批產教融合型企業建設培育單位
          • 鄭州市
            數字技能人才(碼農)培養評價聯盟

          如何測試接口的登錄狀態?

          • 發布時間:
            2023-04-11
          • 版權所有:
            云和教育
          • 分享:

          一、登錄態是什么?

          在接口測試領域,登錄態就是指登錄狀態。

          1、登錄態的作用

          作用:用來維持接口的登錄狀態

          在瀏覽器中,我們登錄后,瀏覽器會自動把登錄狀態保存下來,所以不需要我們管理,就能進行登錄后的操作。

          但是在接口測試過程當中,我們需要手動管理登錄狀態。

          2、登錄態的本質

          本質:客戶端登錄成功后,由服務器發放給客戶端,用來維持登錄狀態的隨機字符串,這個字符串又稱之為令牌

          在登錄后,客戶端每次請求都需要把令牌發送給服務器,服務器接收到令牌后,會校驗令牌對應的數據信息,從而判斷用戶是否處于“已登錄”的狀態

          3、如何維持登錄態?

          維持登錄態有3步:

          第一步:修改代碼的配置,把代碼中令牌的有效時間改為永久有效

          這一步:一般讓令牌找開發協調完成(成熟的公司應該會知道這個套路)

          第二步:獲取到令牌

          按照接口的規定來獲取令牌。

          在項目應用中,令牌有3種常見方式獲取

          令牌存放在cookie中,獲取cookie就可以提取令牌

          令牌存放在登錄接口中,從登錄接口返回數據中提取令牌

          單獨提供授權接口,從授權接口中獲取令牌

          第三步: 使用令牌

          令牌存放在cookie中時,讀取cookie來使用

          令牌放在登錄接口中時,使用提取的令牌

          單獨授權接口,使用授權接口返回的令牌

          以上,要維持登錄態,需要根據項目對令牌的處理來靈活選擇處理方法。

          如果令牌存放在cookie中,那么我們把cookie保存下來即可維持登陸態;

          如果令牌存放在登錄接口中,那么我們把登錄接口返回的令牌保存下來即可維持登錄態;

          如果令牌存放在授權接口中,那么我們把授權接口返回的令牌保存下來即可維持登錄態。

          二、如何獲取和使用登錄態?

          案例1 ihrm登錄的登錄態

          工具:Jmeter

          核心:拿到登錄后的令牌

          業務分析:ihrm項目的令牌主要是從登錄接口中獲取,并且登錄后的接口需要通過請求頭中Authorization屬性來設置,設置格式要求是:Bearer空格令牌,示例:Bearer xxxx

          操作步驟:

          打開抓包工具fiddler,并設置過濾ihrm域名得過濾條件,然后清空所有數據包;

          走一遍登錄流程,查看最后一個登錄成功返回的token;

          在jmeter的請求頭當中,添加Authorization的屬性,并設置抓取到的token的值。

          (1)打開ihrm系統登錄主頁,確認能連接上線上的ihrm系統

          ihrm-test.itheima.net/#/login

          1594624194532_接口測試01.jpg

          (2)打開fiddler設置過濾ihrm-test.itheima.net的過濾條件

          1594624213413_接口測試02.jpg

          然后點擊Actions應用生效,選擇第一個Run Filterset now

          1594624239668_接口測試03.jpg


          3、點擊登錄,點擊之后,fildder會抓取到登錄接口

          1594624266516_接口測試04.jpg


          4、回到fildder查看第一個接口,一般就是我們要抓取的登錄接口

          1594624290366_接口測試05.jpg


          5、查看響應數據中的令牌

          1594624324641_接口測試06.jpg

          其中,返回的json格式的數據中data的值,就是我們要用來維持登錄態的令牌

          6、在jmeter的信息頭當中添加Authorization屬性,并設置屬性值為Bearer 令牌

          HTTP信息頭管理器添加方法:對線程組右鍵->添加->配置元件->HTTP信息頭管理器

          1594624352917_接口測試07.jpg


          7、設置登錄后的接口用戶資料查詢接口

          接口信息

          1594624371549_接口測試08.jpg

           

          1594624403543_接口測試09.jpg


          8、點擊運行,查看結果


          1594624425195_接口測試10.jpg

          9、總結

          這樣,我們就使用抓取ihrm登錄接口返回的令牌,來完成了登錄后的接口“用戶資料查詢接口”的請求操作。

          在使用過程中,關鍵是要明確兩點:

          1、ihrm項目的令牌是從登錄接口中獲取;

          2、登錄后的接口相關接口(如用戶資料查詢接口),需要通過請求頭中Authorization屬性來設置。

          三、 使用登錄態技術的意義

          應用場景1:性能測試時,不再需要單獨調用登錄接口要保持登錄狀態,從而更準確的測試相關接口。

          應用場景2:有些登錄接口的操作,安全校驗做到了極致,非常難以破解,這個時候,我們也可以通過客戶端登錄來獲取登錄態。(前提是找項目開發明確登錄令牌是哪個字段)