WebAPI之postman變量和session/token

postman使用變量:web

       以前咱們請求裏面的主機地址都是localhost,表示本機。而在實際測試過程當中,服務器地址每每並不是是在本機上的,這時候就須要用到變量。算法

       postman支持多個測試環境,一個環境裏能夠配置多個變量。數據庫

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

              ① 環境裏面的變量瀏覽器

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

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

               - 這樣一套環境就建立好了。建立好厚,就須要使用 能夠將全部請求的url中的主機名localhost替換爲爲變量名{{server1}}  如 https://{{server1}}/api/pagenum網絡

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

               - 當進行測試時,若使用的是本機的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使用場景:① 防止表單重複提交  ② 跨站點請求僞造

相關文章
相關標籤/搜索