使用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)

  

 

posted @ 2018-06-10 20:42  水如如  阅读(5573)  评论(0编辑  收藏  举报