4.6 请求数据

前置处理

使用变量

来源: 响应提取后置SQL结果
使用$变量名的方式来引用变量

使用函数

来源:tools/hooks.py 定义的函数
调用无参方法:${方法名()}
调用有参方法:${方法名(参数)}

经过上面两道工序处理之后,返回的data被转为dict

使用参数变量
用例数据
用例标题 是否跳过 请求头 请求地址 请求方式 入参关键字 上传文件 请求数据 提取参数 后置SQL 预期结果
登录 FALSE login post data {"username": "admin", "password": "$password", "age": $age} {"msg":"$.meta.msg"} {"$.meta.status":400}

设:变量池

{
"password": 123456,
"age": 18
}

解析过程

${password} -> 变量池["password"] -> 123456
$age -> 变量池["age"] -> 18

则: 最终请求数据

{
"username": "admin", 
"password": "123456",
"age": 18
}
使用自定义方法
用例数据
用例标题 是否跳过 请求头 请求地址 请求方式 入参关键字 上传文件 请求数据 提取参数 后置SQL 预期结果
登录 FALSE {set_token(token)} login post data {"username": "${get_current_highest()}", "password": "123456"} {"msg":"$.meta.msg"} {"$.meta.status":400}
设:hooks.py
# hooks.py 自定义函数内容如下
import time


def get_current_highest():
    """获取当前时间戳"""
    return int(time.time())

def set_token(token: str):
    """设置token,直接返回字典"""
    return {"Authorization": token}
设:变量池
{
"token": "123789token123"
}

解析过程

${token} -> 变量池["token"] -> "123789token123"
${get_current_highest()} -> 执行hooks.py中的get_current_highest() -> "1621415799"
${set_token(${token})} -> 执行hooks.py中的set_token("123789token123") -> {"Authorization": "123789token123"}

最终请求数据

请求头(含配置文件中的基准header)
{ 
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36",
"Authorization": "123789token123"
}
请求数据
{
"username": "1621415799", 
"password": "123456"
}