RobotFrameWork http/https oauth接口測試 (二)


        在RobotFrameWork http/https oauth接口測試 (一)中,大致介紹了相關的概念,終於可以步入正題了~~~

        先介紹下項目背景:

        公司的項目采用的授權模式是第三種resource owner password credentials密碼模式,因為認證服務器和資源服務器都是公司內部的項目,所以采用了這個方式,公司的處理流程大致如下:

      (A)用戶向客戶端提供賬號和密碼。

      (B) 客戶端將用戶憑證以及客戶端憑證信息發送到認證服務器。

      (C) 認證服務器校驗客戶端請求合法,並且用戶憑證有效,向客戶端提供訪問令

       認證服務器主要是管理Token,總共有2個接口,一個是getToken,一個是refreshToken。而資源認證服務器主要是處理登錄到會議節點服務器前的業務,暫時有8個接口,在手機移動端下載app后,可以通過獲取驗證碼直接用手機號注冊用戶(或者qq,微信登錄),然后就可以登錄到會議管理后台,稍微羅列下接口的部分邏輯:

       驗證手機號碼接口--》 獲取驗證碼接口--》驗證手機驗證碼接口--》用戶注冊接口--》用戶登錄會議管理后台接口--》創建會議室接口---》用戶登錄會議節點服務器接口,其中用戶登錄web管理后台接口前的接口header的Authorization只需要攜帶客戶端憑證信息即可,訪問的是認證服務器,拿用戶憑證以及客戶端憑證信息去獲取token,以便進一步訪問資源服務器內的資源(后面的接口),之后的接口header的Authorization攜帶的是認證服務器返回的Token.

       對於認證服務器的接口(用戶登錄web管理后台接口),接口參數如下:

     

      其中:Basic encodeBase64(${clientId} + ":" + ${clientSecret}),就是使用 base64 對客戶端憑證( clientId,clientSecret,這兩項寫在客戶端配置文件中)拼接后進行編碼。

     request-http:

     POST /token HTTP/1.1

     Host: server.example.com

     Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW

     Content-Type: application/x-www-form-urlencoded

 

     grant_type=password&username=johndoe&password=A3ddj3w

    

     response-http:

    

     HTTP/1.1 200 OK

     Content-Type: application/json;charset=UTF-8

     Cache-Control: no-store

     Pragma: no-cache

 

     {

       "access_token":"2YotnFZFEjr1zCsicMWpAA",

       "token_type":"example",

       "expires_in":3600,

       "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",

       "example_parameter":"example_value"

     }

      對於資源服務器的接口,Header的Authorization攜帶的是認證服務器返回的Token,參數如下:

     

     然后,介紹下如何用RF工具進行測試的,在RF中,已經提供了基於http/https協議的庫,就是requests庫,只需要在官網下載requests和requestLibray即可。基於之前我寫的安裝步驟,實際用pip命令最容易解決。執行pip install requests,

 pip install -U robotframework-requests,提示成功即可。建項目后,導入RequestsLibrary,如果要操作dictionary,就導入Collections(內置庫,加載進人內存即使用)。
     認證服務器接口的測試業務代碼如下:
               
    成功返回的結果如下:
            
     資源服務器的接口測試代碼如下:
          、   
      成功返回接口如下:
         
   
 
      以上就大致分享了下基於oauth協議的接口的測試方法和大致的業務邏輯,后面會總結下webservice接口測試的方法,通過這半個月對這些接口的測試和學習,突然感觸到學好底層通訊協議是多么重要的一件事,http協議和tcp協議基本的公共協議的知識不夠,處於入門階段,應該盡早計划進行一個系統的學習~~~

       


免責聲明!

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



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