python3+requests:使用類封裝接口測試腳本


轉載請注明出處:https://www.cnblogs.com/shapeL/p/9045439.html

前言:接口測試用例較多,我們不可能每個用例都寫一次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 = None 14     if method == 'GET': 15         respose = send_get(url,data,headers) 16     else: 17         respose = send_post(url,data,headers) 18     return respose 19 
20 url = 'https://...'
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 = None 14         if method == 'GET': 15             respose = self.send_get(url,params,headers) 16         else: 17             respose = self.send_post(url,data,headers) 18         return respose 19 
20 if __name__ == '__main__': 21     run = Runmain() 22     url = 'https://...'
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 = None 17         if method == 'GET': 18             respose = self.send_get(url,params,headers) 19         else: 20             respose = self.send_post(url,data,headers) 21         return respose 22 
23 if __name__ == '__main__': 24     url = 'https://...'
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中類,實例不了解的同學,可以參考:

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

 


免責聲明!

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



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