接口自動化測試框架設計系列(四)


繼續上一篇的內容來講解,我們本篇主要對前面的代碼進行優化。主體思想就是對各種請求方法的二次封裝!

基於我們接口的特殊性處理:

  • 無需鑒權

    • POST /login username/password     #登錄
    • POST /register username/password/password_confirmation #用戶注冊

    需要鑒權

    • GET /api/tasks                        #獲取所有的task
    • GET /api/tastks/:task_id         #獲取id為task_id的task
    • POST /api/tasks title/desc      #創建task
    • DELETE /api/tasks/:task_id   #刪除id為task_id的task
    • PUT /api/tasks/:task_id          #完成id為task_id的task

接口鑒權要求,登錄系統后,服務器返回token,后續的所有請求必須都包含token,那么我們繼續來看。

本篇內容,我們對接口測試案例中的請求方法進行二次封裝,更加簡化,我們定義一個page目錄,新增一個類名,為page類,下面新增一個tasks.py文件:

1.首先封裝post請求,因為post請求只有注冊和登錄不需要鑒權,其他post接口都是需要鑒權才可以訪問的,所以這里面我們可以把headers設置為默認值參數,可以傳入參數也可以不必傳入參數。我們可以這么寫:

緊接着我們對get請求進行封裝:因為get請求只有一個,就是獲取所有任務,而且需求鑒權,所以,這里面我們可以實現如下方式:

ok,以此類推,后續的delete請求和post請求都是需要鑒權的,所以這里我們都可以按照如下這樣去寫:

改寫完畢以后,我們在接口測試用例中對所有原來的請求方式進行改寫,改寫完如下代碼:

def dirname(self,filepath='',filename='token'): '''定義目錄'''
    return os.path.join(os.path.dirname(__file__),filepath,filename) def post(url,data,headers=None): ''' 對post請求進行二次封裝 :parameter url:請求地址 :parameter data:請求參數 ''' r =  requests.post(url=url,json=data,headers=headers) return r def get(url,headers): ''' 對get請求進行二次封裝 :parameter:url:請求地址 :parameter:data:請求參數 ''' r = requests.get(url=url,headers=headers) return r def delete(url,headers=None): ''' 對 delete 請求進行二次封裝 :parameter:url:請求地址 :parameter:data:請求參數 ''' r = requests.delete(url=url,headers=headers) return r def put(url,headers=None): ''' 對 put 請求進行二次封裝 :parameter:url:請求地址 :parameter:data:請求參數 ''' r = requests.put(url=url, headers=headers) return  r

然后我們把整個目錄架構做出如下調整:


免責聲明!

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



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