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

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

        先介紹下項目背景:json

        公司的項目採用的受權模式是第三種resource owner password credentials密碼模式,由於認證服務器和資源服務器都是公司內部的項目,因此採用了這個方式,公司的處理流程大體以下:服務器

      (A)用戶向客戶端提供帳號和密碼。微信

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

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

       認證服務器主要是管理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協議基本的公共協議的知識不夠,處於入門階段,應該儘早計劃進行一個系統的學習~~~
相關文章
相關標籤/搜索