使用python request编写简单的接口测试
- 使用requests请求获取返回数据
- 封装成函数
- 封装成类
一、使用requests请求post返回的数据
import requests import json # data={ # 'username':'sun', # 'password':'123', # 'data':'test' # } # res=requests.post(url='http://127.0.0.1:8000/login/',data=data) # print(res.text) # print(type(res.json()))
二、封装成函数
#封装成函数 url='http://127.0.0.1:8000/login/' data={ 'username':'sun', 'password':'123', 'data':'test' } def send_post(url,data): #post->get就是get接口的,但是上面的测试数据的是post请求,get没有测试 res=requests.post(url=url,data=data).json() #格式化json数据,indent=2是空格,sort是排序 return json.dumps(res,indent=2,sort_keys=True) def send_get(url,data): #post->get就是get接口的 res=requests.get(url=url,data=data).json() #格式化json数据,indent=2是空格,sort是排序 return json.dumps(res,indent=2,sort_keys=True) def run_main(data,url,method): res=None if method=='GET': res=send_get(url,data) else: res=send_post(url,data) return res def run_main01(url,method,data=None):#默认参数放在最后面的位置 res = None if method == 'GET': res = send_get(url, data) else: res = send_post(url, data) return res # print(send_post(url,data)) # print(run_main(data,url,'POST'))
三、封装成类:
#进一步,封装成类 class RunMain: #构造函数 # def __init__(self,url,method,data=None): # self.res=self.run_main(url,method,data) def send_post(self,url, data): # post->get就是get接口的,但是上面的测试数据的是post请求,get没有测试 res = requests.post(url=url, data=data).json() # 格式化json数据,indent=2是空格,sort是排序 # return json.dumps(res, indent=2, sort_keys=True) return res def send_get(self,url, data): # post->get就是get接口的 res = requests.get(url=url, data=data).json() # 格式化json数据,indent=2是空格,sort是排序 # return json.dumps(res, indent=2, sort_keys=True) return res def run_main(self,url, method, data=None): res = None if method == 'GET': res = self.send_get(url, data) else: res = self.send_post(url, data) return res #这种写法就是每次都要先实例化,然后再去调用run_main if __name__=="__main__": run=RunMain() url = 'http://127.0.0.1:8000/login/' data = { 'username': 'sun', 'password': '123', 'data': 'test' } print( run.run_main(url,'POST',data)) #可以直接写一个构造函数,当实例化的时候就自动执行run_main这个方法 #添加一个构造方法 # if __name__=="__main__": # url = 'http://127.0.0.1:8000/login/' # data = { # 'username': 'sun', # 'password': '123', # 'data': 'test' # } # run=RunMain(url,'POST',data)#实例化的同时执行构造函数 # print(run.res)