文档首页 > > 用户指南> 测试任务管理> 添加请求信息(响应提取)

添加请求信息(响应提取)

分享
更新时间: 2020/05/26 GMT+08:00

例如,在电商抢购场景中,您搜索对应的商品之后购买该产品,可使用响应提取功能,提取“搜索”报文得到的商品id作为下一个“购买”报文的输入参数。

  • 响应提取不支持跨用例提取,即从用例A的报文的响应中提取值作为用例B报文的输入。
  • 响应提取的变量为局部变量。

操作步骤

  1. 登录CPTS控制台,在左侧导航栏中选择“测试工程”
  2. 在待编辑测试工程所在行,单击“编辑测试任务”。
  3. 在“测试任务”页签中,选择待添加请求信息的用例,单击“添加请求信息”。
  4. 请求类型设置为“响应提取”,参照表1设置基本信息。

    图1 响应提取
    表1 响应提取

    参数

    参数说明

    启用响应提取

    启用响应提取后,如果同一用例中存在多个报文,通过正则表达式把前一个报文的输出提取出来,作后一个报文的输入。

    变量名称

    变量的名称,命名必须唯一,响应提取的值赋予此变量。

    预期值

    预期响应提取出的变量值。

    开启后,会将响应提取到的值与预期值进行比对,若不等则链接失败。

    提取内容范围

    响应提取内容的范围。

    其中,“报文内容”、“头域”和“URL”可通过正则表达式进行内容提取。

    正则表达式

    正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

    完整的正则表达式由两种字符构成:特殊字符(special characters)称为“元字符”(meta characters);其它为“文字”(literal),或者是普通文本字符(normal text characters,如字母、数字、汉字、下划线)。元字符的说明请参见正则表达式元字符

    说明:

    “()”表示提取,对于您要提取的内容需要用小括号括起来,每个“()”之间的内容表示一个子表达式。

    第几个匹配项

    在正则表达式已提取的内容中,获取第几个匹配的内容。

    取值范围:正整数。

    说明:

    该参数值不可设置为0。

    表达式取值

    表示解析到的第几个子表达式的值。

    取值范围:自然数。

    说明:
    • 取值为0:匹配整个正则表达式。
    • 取值为1:匹配正则表达式的第一个子表达式即第一个“()”提取的内容。

    通过“正则表达式”和“第几个匹配项”提取出内容后,再通过“表达式取值”获得最终的提取内容。

    需获取的键名

    输入需要获取的键名。

    例:{"key":{"key1":"v1","key2":{"key3":"v3"},"key4":[{"key41":"v41","key42":"v42"},{"key41":"v43","key42":"v44"}]}},若想取出"v42",则输入:key.key4[0].key42。

    说明:

    仅在提取内容范围是json内的值时生效。

    缺省值

    正则匹配或JSON提取失败时,取的值。

    条件表达式

    与“需获取的键名”配套使用。

    例如:{"key":{"key1":"v1","key2":{"key3":"v3"},"key4":[{"key41":"v41","key42":"v42"},{"key41":"v43","key42":"v44"}]}},如果需要表达:当key42=v42时,提取目标值v41;则在“条件表达式”框里输入:key.key4[].key42 = v42,在"需获取的键名"框里输入:key.key4[].key41。

    表2 常用正则表达式介绍

    正则表达式

    说明

    示例

    (\d+)

    匹配非负整数

    字符串:

    bTivm2wu9jih1LBKR4osZGrjjl

    匹配结果:

    2
    9
    1
    4

    ([A-Za-z]+)

    匹配由26个英文字母组成的字符串

    字符串:

    bTivm2wu9jih1LBKR4osZGrjjl

    匹配结果:

    bTivm
    wu
    jih
    LBKR
    osZGrjjl

    ([A-Za-z0-9]+)

    匹配由数字和26个英文字母组成的字符串

    字符串:

    bTivm2wu9jih1LBKR4osZGrjjl:asdasd22

    匹配结果:

    bTivm2wu9jih1LBKR4osZGrjjl
    asdasd22

    (\w+)

    匹配由数字、26个英文字母或者下划线组成的字符串

    字符串:

    bTivm2wu9jih1LBKR4osZGrjjl:asdasd22

    匹配结果:

    bTivm2wu9jih1LBKR4osZGrjjl
    asdasd22

    ([\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+)

    匹配email地址

    字符串:

    bTivm2wu9jih1LBKR4osZGrjjl:abc@abc.com

    匹配结果:

    abc@abc.com

  5. (可选)一个请求信息可包含1个或多个变量,若您的请求信息需要添加多个变量,请单击“添加变量”,再设置变量的相关参数。
  6. 配置完成后,单击“确定”

响应提取示例一

例如,前一个报文响应的报文内容如下图所示:

图2 报文内容

如果想要获取token值的,可通过正则表达式"token"\s*:\s*"(.*?)"提取,响应提取的设置如图3所示。

图3 提取token值

响应提取示例二

例如,前一个报文响应的报文内容为:

javawind:9javawind:12 
javawind:16javawind:17 
javawind:46javawind:22

如果想要提取数值16,响应提取的设置如图4所示。

图4 响应提取示例
  1. 通过正则表达式javawind:(.*)javawind:(.*),提取数据如下:
    9 12
    16 17
    46 22
  2. 通过第2个匹配项,提取数据如下:
    16 17
  3. 通过第1个表达式,提取数据如下:
    16
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问