4.接口测试框架:interface-test登录时的特殊处理

主要兼容以下情况

1. 静态的header

2. 加密处理 

3. 固定的登录token

4. 动态加密的请求头

验证码逻辑和静态header:

验证码

一般验证码在测试环境的话,可以通过非前端手段去获取。或和开发人员沟通如何在测试环境内跳过验证码环节

自定义header

当然具体是什么header只有你们自己公司知道,这里以我遇到的情况为例

在测试环境大部分可以使用白名单header处理,如果仍然是动态的,这里改成 自己公司内部的加密方法去实现get_signature():

    Signature = get_signature()

固定token(具体的字段根据实际去配置)

    current_user.tmp_header = {"Authentication": current_user.user_token, "Signature": Signature}

动态加密

如果你的动态header与请求的接口或参数或其他id相关,那么就需要你在requests_process.py中添加请求加工(最终会打在测试对象的request方法中载入):

我这里添加了一个请求前的处理:requests_process.py

def resolve_signature(config_url, token):
    # 根据url、token动态生成sign    
    ...


def process_header(obj, current_user):
    """
    处理header
    :param obj: Test对象
    :param current_user: 根据用户信息来获取配置
    :return:
    """
    # xxx项目那边需要动态的生成签名放入请求头
    if current_user.test_config and current_user.test_config.get("Signature_dyanamic"):
        _dy_header = resolve_signature(obj.request_info["url"], current_user.user_token)
        obj.request_info["headers"].update({"Signature": _dy_header})



def pre_process(obj, current_user, *args, **kwargs):
    """伪中间件,不可返回数据,只能加工对象数据"""
    process_url(obj)
    process_header(obj, current_user)

  • 21
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值