接口自动化测试框架设计系列(四)

继续上一篇的内容来讲解,我们本篇主要对前面的代码进行优化。主体思想就是对各种请求方法的二次封装!

基于我们接口的特殊性处理:

  • 无需鉴权

    • 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

然后我们把整个目录架构做出如下调整:

posted @ 2018-09-13 23:20  IT测试老兵  阅读(1060)  评论(0)    收藏  举报
作者:测试老兵
出处:https://www.cnblogs.com/fighter007/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。