您可以通过控制台添加header的响应提取并用于下一个API。
1.登录PTS控制台。
2.在控制台左侧导航栏场景管理中,选择所需的场景并单击右侧的【编辑 】。
3.在场景配置页面,切换到【响应提取】,打开【启用响应提取】开关,点击【添加】,选择内容类型,并配置提取规则。
参数 | 参数说明 |
---|---|
变量名称 | 变量的名称,命名必须唯一,响应提取的值赋予此变量。 |
内容类型 | 响应提取内容的类型,支持body:text、header、响应码、body:json。 |
正则表达式 | 支持使用正则表达式对内容进行提取,详细请参见正则表达式。 |
第几个匹配项 | 在正则表达式已提取的内容中,获取第几个匹配的内容。取值范围:正整数。 |
表达式取值 | 表示解析到的第几个子表达式的值。取值范围:自然数。 |
缺省值 | 提取失败时的默认值。 |
条件表达式 | 当提取的内容类型为body:json时,可通过条件表达式对内容进行提取,详细请参见条件表达式。 |
4.在同任务下,某API提取出来的变量名称(假设为test1),可以给该API后面的所有API使用,支持在url、Header、Body中使用(注意:Header和Body的key不支持参数引用),操作如下:
1)在url位置末尾处输入,在弹出的选择参数对话框选择响应提取,下拉选择参数名称,单击确认即可,也可以直接手动输入{test1}。
2)在Body定义位置输入,在弹出的选择参数对话框选择响应提取,下拉选择参数名称,单击确认即可,也可以直接手动输入{test1}。
3)在Header定义位置输入,在弹出的选择参数对话框选择响应提取,下拉选择参数名称,单击确认即可,也可以直接手动输入{test1}。
5.含有响应提取变量的API接口,不允许API调试,可选择调试场景,查看提取的响应变量。
正则表达式
1)常用正则表达式介绍。
正则表达式 | 说明 | 响应示例 | 匹配结果 |
---|---|---|---|
(\d+) | 匹配非负整数 | abTV1ttiu6RTed9WEqp4U | 1 6 9 4 |
([A-Za-z]+) | 匹配由26个英文字母组成的字符串 | abTV1ttiu6RTed9WEqp | abTV ttiu RTed WEqp |
([A-Za-z0-9]+) | 匹配由数字和26个英文字母组成的字符串 | abTV1ttiu6RTed9_iop | abTV1ttiu6RTed9 iop |
(\w+) | 匹配由数字、26个英文字母或者下划线组成的字符串 | abTV1ttiu6R_iop:tian | abTV1ttiu6R_iop tian |
匹配email地址 | dc_iop:tian@abc.com | tian@abc.com |
2)"token"\s*:\s*"(.*?)":获取token值。
响应示例:
{"info": {"name":
"张三","uid":
"100","source": 10,"source_uid":
"123456","access_token":
"abc123","ctyun_user_id":
"abcdefg","token":
"ab1cD_e2Fgh3iGklmno4pqrsT6uvw7Yz.Eab1cD_e2Fgh3iGklmno4pqrsT ","identity":
-1},"status": {"code": 0,"message":
"ok"}}
匹配结果:ab1cD_e2Fgh3iGklmno4pqrsT6uvw7Yz.Eab1cD_e2Fgh3iGklmno4pqrsT
配置示例:
3)userid:(.) userid:(.) :多表达式取值。
响应示例:
userid:11 userid:12
userid:21 userid:22
userid:31 userid:32
匹配结果:
11 | 12 |
---|---|
21 | 22 |
31 | 32 |
配置示例:
4)(ab|ac)+ :由多个ab或者ac匹配。
响应示例:ababdacac
匹配结果:
第1个匹配项,表达式取值1或0 | 第2个匹配项,表达式取值1或0 |
---|---|
ab | ac |
abab | acac |
配置示例:
条件表达式
当提取内容类型为Body:json时,支持条件表达式,响应json示例:
{
"name": {"first": "Tom", "last": "Anderson"},
"age":37,
"children": ["Sara","Alex","Jack"],
"fav.movie": "Deer Hunter",
"friends": [
{"first": "Dale", "last": "Murphy", "age": 44, "nets": ["ig", "fb", "tw"]},
{"first": "Roger", "last": "Craig", "age": 68, "nets": ["fb", "tw"]},
{"first": "Jane", "last": "Murphy", "age": 47, "nets": ["ig", "tw"]}
]
}
1)基础用法介绍。
条件表达式 | 匹配结果 |
---|---|
name.last | Anderson |
age | 37 |
children | ["Sara","Alex","Jack"] |
children.# | 3 |
children.1 | Alex |
child*.2 | Jack |
c?ildren.0 | Sara |
Deer Hunter | |
friends.1 | {"first": "Roger", "last": "Craig", "age": 68, "nets": ["fb", "tw"]} |
friends.#.first | ["Dale","Roger","Jane"] |
friends.1.last | Craig |
2)高级用法介绍。
条件表达式 | 匹配结果 |
---|---|
friends.#(last=="Murphy").first | Dale |
friends.#(last=="Murphy")#.first | ["Dale","Jane"] |
friends.#(age>45)#.last | ["Craig","Murphy"] |
friends.#(first%"D*").last | Murphy |
friends.#(first!%"D*").last | Craig |
friends.#(nets.#(=="fb"))#.first | ["Dale","Roger"] |