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"
}