首頁(yè)技術(shù)文章正文

軟件測(cè)試培訓(xùn):接口測(cè)試中的登錄態(tài)

更新時(shí)間:2022-07-05 來(lái)源:黑馬程序員 瀏覽量:

  一、登錄態(tài)是什么?

  在接口測(cè)試領(lǐng)域,登錄態(tài)就是指登錄狀態(tài)。

  1 登錄態(tài)的作用

  作用:用來(lái)維持接口的登錄狀態(tài)

  在瀏覽器中,我們登錄后,瀏覽器會(huì)自動(dòng)把登錄狀態(tài)保存下來(lái),所以不需要我們管理,就能進(jìn)行登錄后的操作。

  但是在接口測(cè)試過(guò)程當(dāng)中,我們需要手動(dòng)管理登錄狀態(tài)。

  2 登錄態(tài)的本質(zhì)

  本質(zhì):客戶端登錄成功后,由服務(wù)器發(fā)放給客戶端,用來(lái)維持登錄狀態(tài)的隨機(jī)字符串,這個(gè)字符串又稱之為令牌。

  在登錄后,客戶端每次請(qǐng)求都需要把令牌發(fā)送給服務(wù)器,服務(wù)器接收到令牌后,會(huì)校驗(yàn)令牌對(duì)應(yīng)的數(shù)據(jù)信息,從而判斷用戶是否處于“已登錄”的狀態(tài)。

  3 如何維持登錄態(tài)?

  維持登錄態(tài)有3步:

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

  這一步,一般讓令牌找開(kāi)發(fā)協(xié)調(diào)完成(成熟的公司應(yīng)該會(huì)知道這個(gè)套路)

  第二步:獲取到令牌

  按照接口的規(guī)定來(lái)獲取令牌。

  在項(xiàng)目應(yīng)用中,令牌有3種常見(jiàn)方式獲取

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

  令牌存放在登錄接口中,從登錄接口返回?cái)?shù)據(jù)中提取令牌

  單獨(dú)提供授權(quán)接口,從授權(quán)接口中獲取令牌

  第三步:使用令牌

  令牌存放在cookie中時(shí),讀取cookie來(lái)使用

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

  單獨(dú)授權(quán)接口,使用授權(quán)接口返回的令牌

  以上,要維持登錄態(tài),需要根據(jù)項(xiàng)目對(duì)令牌的處理來(lái)靈活選擇處理方法。

  如果令牌存放在cookie中,那么我們把cookie保存下來(lái)即可維持登陸態(tài)

  如果令牌存放在登錄接口中,那么我們把登錄接口返回的令牌保存下來(lái)即可維持登錄態(tài)

  如果令牌存放在授權(quán)接口中,那么我們把授權(quán)接口返回的令牌保存下來(lái)即可維持登錄態(tài)

  二、如何獲取和使用登錄態(tài)?

  案例1 ihrm登錄的登錄態(tài)

  工具:Jmeter

  核心:拿到登錄后的令牌

  業(yè)務(wù)分析:ihrm項(xiàng)目的令牌主要是從登錄接口中獲取,并且登錄后的接口需要通過(guò)請(qǐng)求頭中Authorization屬性來(lái)設(shè)置,設(shè)置格式要求是:Bearer空格令牌,示例:Bearer xxxx

  操作步驟:

  1. 打開(kāi)抓包工具fiddler,并設(shè)置過(guò)濾ihrm域名得過(guò)濾條件,然后清空所有數(shù)據(jù)包

  2. 走一遍登錄流程,查看最后一個(gè)登錄成功返回的token

  3. 在jmeter的請(qǐng)求頭當(dāng)中,添加Authorization的屬性,并設(shè)置抓取到的token的值

  1 打開(kāi)ihrm系統(tǒng)登錄主頁(yè),確認(rèn)能連接上線上的ihrm系統(tǒng)

  ihrm-test.itheima.net/#/login

1656986032878_1.jpg

  2 打開(kāi)fiddler設(shè)置過(guò)濾ihrm-test.itheima.net的過(guò)濾條件

1656986055771_2.jpg

  然后點(diǎn)擊Actions應(yīng)用生效,選擇第一個(gè)Run Filterset now

1656986079659_3.jpg

  3 點(diǎn)擊登錄,點(diǎn)擊之后,fildder會(huì)抓取到登錄接口

1656986098962_4.jpg

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

1656986121611_5.jpg

  5 查看響應(yīng)數(shù)據(jù)中的令牌

1656986136368_6.jpg

  其中,返回的json格式的數(shù)據(jù)中data的值,就是我們要用來(lái)維持登錄態(tài)的令牌

  6 在jmeter的信息頭當(dāng)中添加Authorization屬性,并設(shè)置屬性值為Bearer 令牌

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

1656986163935_7.jpg

  7 設(shè)置登錄后的接口用戶資料查詢接口

  接口信息


  8 點(diǎn)擊運(yùn)行,查看結(jié)果

1656986245354_10.jpg

  9 總結(jié)

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

  在使用過(guò)程中,關(guān)鍵是要明確兩點(diǎn):

  1,ihrm項(xiàng)目的令牌是從登錄接口中獲取

  2,登錄后的接口相關(guān)接口(如用戶資料查詢接口),需要通過(guò)請(qǐng)求頭中Authorization屬性來(lái)設(shè)置

  三、 使用登錄態(tài)技術(shù)的意義

  應(yīng)用場(chǎng)景1:性能測(cè)試時(shí),不再需要單獨(dú)調(diào)用登錄接口要保持登錄狀態(tài),從而更準(zhǔn)確的測(cè)試相關(guān)接口。

  應(yīng)用場(chǎng)景2:有些登錄接口的操作,安全校驗(yàn)做到了極致,非常難以破解,這個(gè)時(shí)候,我們也可以通過(guò)客戶端登錄來(lái)獲取登錄態(tài)。(前提是找項(xiàng)目開(kāi)發(fā)明確登錄令牌是哪個(gè)字段)

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!