WebAPI之postman變量和session/token


postman使用變量:

       之前我們請求里面的主機地址都是localhost,表示本機。而在實際測試過程中,服務器地址往往並非是在本機上的,這時候就需要用到變量。

       postman支持多個測試環境,一個環境里可以配置多個變量。

       postman的變量主要分兩種類型:

              ① 環境里面的變量

               - 點擊界面右上角的齒輪圖標,選擇Manage Environments                                                             

               - 在彈出對話框中,點擊Add按鈕,填寫環境名ENVIRONMENT NAME  、VARIABLE、CURRENT VALUE   如 :server1   serverip    http://localhost

               - 這樣一套環境就創建好了。創建好厚,就需要使用 可以將所有請求的url中的主機名localhost替換為為變量名{{server1}}  如 https://{{server1}}/api/pagenum

               - 注意:雙花括號將變量名括起來,雙花括號就表示里面是一個變量。

               - 當進行測試時,若使用的是本機的API服務,那就選擇名為server1配置的環境;若使用不是本地的,就選擇server2的環境,postman就會使用不同環境里面的變量對應的值。

              ② 全局變量

               - 有時候,有些變量,我們並不需要配置到很多套環境里,因為基本上這就是一個固定值,要修改的話,所有的環境里面都要修改。

               - 我們沒有必要創建變量到環境中,可以創建一個全局變量,全局變量與我們選擇的環境無關。

               - 點擊界面右上角的齒輪圖標,選擇Manage Environments   

               - 在彈出對話框中,點擊Globals,加入全局變量名和變量值  如:course_add             {'name':'初中數學', 'desc':111, 'display_idx':1}

               - 然后我們可以在API請求的body中將參數的value值修改為用變量替代即可。如  {{course_add}}

HTTP抓包:

在進行接口測試時,我們難免要用到fiddler工具來抓包:

         http抓包,就會使用到fiddler。目前有兩種抓包類型:

                  ① 抓瀏覽器的包     我們需要指定瀏覽器的代理。以Chrome瀏覽器為例,進入設置 === 高級選項 ===打開代理設置 ===勾選使用代理服務器設置地址和端口

                  ② 抓手機上的包     同樣需要在手機上設置代理。填入fiddler所在機器的IP地址和代理服務器端口(默認8888)。注意:電腦wifi和手機所連接的wifi應處於同一個網絡環境。

        這樣配置好,就可以抓http包了。

        另外如果想抓取https包,相應的需要下載fiddler證書將其導入瀏覽器中或手機上安裝fiddler證書,才可抓取哦!

cookie和session: 

        做web api測試時,可能會接觸到cookie和session。

        cookie是我們在訪問一個網站時,通常由網站服務器返回的一種標記為cookie類型數據。要求我們存儲在瀏覽器所在電腦上。

           以后每次訪問本網站,瀏覽器都會在http請求中將該數據發送過來。

        session也叫會話,某用戶登錄后,服務端就會認為創建了一個會話session。另一個用戶登錄就會創建另一個session。

           為了標志不同的會話,服務端后面生成一個叫sessionid的東西,標志這次登錄的所有后續http消息交互。

           sessionid通常都保存在數據庫中,並且咳喲存儲該sessionid的一系列信息,如 用戶名、權限等。

           session通常用在web應用中,就是瀏覽器里面的網頁應用。作為一種驗證用戶權限的機制:能根據sessionid,從而知道該用戶是否有相應的權限訪問相應的資源。

           sessionid是如何返回給客戶端的呢?  --------

                 通過http響應里面的Set-Cookie頭部信息,要求瀏覽器保存到cookie中。

                 隨后,客戶端每次訪問同一個網站,都會將該cookie里面的內容放到http頭部中,當然sessionid也在里面     。即Set-Cookie中存儲了sessionid

                 所以服務端根據sessionid,到表中能夠查到相應的記錄,就知道了對應的是哪個用戶登錄。

           總結:cookie主要用來存儲用戶的一些信息,存儲在瀏覽器中

                      session機制利用了cookie的功能 sessionid存儲在數據庫中;session弊端就是:服務器有一定壓力,性能上會有損耗。

token:是數據信息和驗證信息的一串字節數據。而token是你們公司的業務服務器生成的。

          - hash算法產生token

          - 數據信息改變,驗證信息也會改變,HMAC算法

          - 密鑰 + data = HMAC

        生成的token包含了別人無法偽造的驗證數據,可以用來驗證這個token是否是我這個業務服務器生成的。

        token驗證的邏輯如下:

               1 - 客戶端發送請求給服務器,服務器接收並驗證后,產生一個token

               2- token里面包含了一些關於這用戶的數據信息以及驗證token有效性的數據,服務器將token返回給客戶端

               3 - 客戶端得到token后,以后每次業務請求都要帶上token

               4 - 通常放在http請求頭Authenrization中,服務端接到請求,就會驗證token是否是自己簽發的。驗證方法同樣是hmac(密鑰 + 數據)= 驗證信息,計算出來驗證信息和token里面的驗證信息是否一致。

        注意:公鑰可以用來加密,私鑰可以用來解密;私鑰可以用來簽名,公鑰可以用來驗證簽名。

        好處:一旦登陸后,后續只要把請求帶過來,驗證通過。

        token的優點:不需要通過數據庫驗證,極大的提高了速度

        token使用場景:① 防止表單重復提交  ② 跨站點請求偽造


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM