python3+requests:使用類封裝介面測試指令碼

tankII發表於2021-09-09

前言:用例較多,我們不可能每個用例都寫一次requests,get或者requests,post等,所以對共用方法要進行封裝處理

第一次修改:將get請求和post請求單獨定義出來,使用過程中根據不同型別的請求直接呼叫對應的方法

圖片描述

 1 import requests 2 import json 3  4 def send_post(url,data,headers): 5     response = requests.post(url=url,data=data,headers=headers).json() 6     return json.dumps(response,sort_keys=True,indent=4) 7  8 def send_get(url,data,headers): 9     response = requests.get(url=url,data=data,headers=headers).json()10     return json.dumps(response,sort_keys=True,indent=4)11 12 def run_main(url,headers,method,data=None):13     respose = None14     if method == 'GET':15         respose = send_get(url,data,headers)16     else:17         respose = send_post(url,data,headers)18     return respose19 20 url = ''21 headers = {'Content-Type': 'application/x-www-form-urlencoded'}22 print(run_main(url,headers,method='POST'))

圖片描述

第二次修改:用class進行封裝,主函式中建立一個例項run來呼叫類中的方法

圖片描述

 1 import requests 2 import json 3 class Runmain: 4     def send_post(self,url,data,headers): 5         response = requests.post(url=url,data=data,headers=headers).json() 6         return json.dumps(response,sort_keys=True,indent=4) 7  8     def send_get(self,url,params,headers): 9         response = requests.get(url=url,params=params,headers=headers).json()10         return json.dumps(response,sort_keys=True,indent=4)11 12     def run_main(self,url,params,data,headers,method):13         respose = None14         if method == 'GET':15             respose = self.send_get(url,params,headers)16         else:17             respose = self.send_post(url,data,headers)18         return respose19 20 if __name__ == '__main__':21     run = Runmain()22     url = ''23     headers = {'Content-Type': 'application/x-www-form-urlencoded'}24     print(run.run_main(url,params=None,data=None,headers=headers,method='POST'))

圖片描述

第三次修改:第二次修改,每次都需要例項化後再呼叫對應的方法;

改進辦法:使用__init__方法實現:只要例項化類時候就會呼叫__init__方法

圖片描述

 1 import requests 2 import json 3 class Runmain: 4     def __init__(self,url,params,data,headers,method): 5         self.response = self.run_main(url,params,data,headers,method) 6  7     def send_post(self,url,data,headers): 8         response = requests.post(url=url,data=data,headers=headers).json() 9         return json.dumps(response,sort_keys=True,indent=4)10 11     def send_get(self,url,params,headers):12         response = requests.get(url=url,params=params,headers=headers).json()13         return json.dumps(response,sort_keys=True,indent=4)14 15     def run_main(self,url,params,data,headers,method):16         respose = None17         if method == 'GET':18             respose = self.send_get(url,params,headers)19         else:20             respose = self.send_post(url,data,headers)21         return respose22 23 if __name__ == '__main__':24     url = ''25     headers = {'Content-Type': 'application/x-www-form-urlencoded'}26     run = Runmain(url,params=None,data=None,headers=headers,method='POST')27     print(run.response)

圖片描述

備註:對python中類,例項不瞭解的同學,可以參考:

%E9%AB%98%E7%BA%A7python%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80/python-object-class.html


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1795/viewspace-2808991/,如需轉載,請註明出處,否則將追究法律責任。

相關文章