如何在SoapUI 5.7.2中动态传递Access Token至认证请求头
核心排查与配置步骤
1. 确认GetToken响应的JSON结构
先打开GetToken请求的Raw Response标签,确认Token在JSON中的具体层级和键名。比如常见响应格式:
{"code":200,"data":{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}}
或
{"access_token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."}
键名和层级必须和后续提取规则严格匹配,大小写敏感。
2. 配置PropertyTransfer的源提取规则
双击TestCase中的PropertyTransfer步骤,进入配置界面:
- 源设置:
- 选择
GetToken请求 →Response→JSON - 在JSONPath Expression中输入对应路径:
- 如果Token在根节点:
$.access_token - 如果Token在
data子节点:$.data.access_token
- 如果Token在根节点:
- 点击Test按钮,确认能正确提取到Token字符串,这一步是关键,提取失败直接导致后续认证失败。
- 选择
3. 配置PropertyTransfer的目标赋值规则
分两种方式,按需选择:
方式一:直接赋值到CreateTask请求头
- 目标设置:
- 选择
CreateTask请求 →Request Headers - Header Name输入
Authorization - Value输入
Bearer ${=transferedValue}(注意Bearer后有空格)
- 选择
方式二:先存到TestCase属性(便于多请求复用)
- 先新增一条Transfer规则:
- 源保持上述GetToken的JSON提取规则
- 目标选择
TestCase→Properties,属性名设为AccessToken
- 再新增一条Transfer规则:
- 源选择
TestCase→Properties,属性名选AccessToken - 目标选择
CreateTask请求 →Request Headers - Header Name输入
Authorization - Value输入
Bearer ${#TestCase#AccessToken}
- 源选择
4. 验证CreateTask请求的头配置
打开CreateTask请求的Headers标签,确认Authorization头的值是动态引用格式(比如Bearer ${#TestCase#AccessToken}),而非固定文本。
5. 排查常见错误点
- JSONPath错误:检查键名大小写、层级是否正确,比如把
access_token写成AccessToken会导致提取为空。 - Authorization格式错误:必须保证
Bearer和Token之间有一个空格,缺少空格会被服务端判定为无效认证。 - 步骤顺序错误:确保TestCase内的步骤顺序为:
GetToken→PropertyTransfer→CreateTask,顺序颠倒会导致Token还未提取就发送请求。 - 查看日志验证:执行TestCase时,打开SoapUI的Log标签,检查PropertyTransfer的提取结果,以及CreateTask请求发送的Authorization头具体值,对比手动粘贴的Token是否一致。
内容的提问来源于stack exchange,提问作者tanwir h
相关产品推荐
相关产品推荐

