(三)jmeter接口自动化难点系列---jmeter上下文关联操作

        在做接口测试的时候,会经常遇到上下文关联的问题,比如:新增一条数据后,需要这条数据中的UUID或者ID字段,进行编辑接口或者删除接口的操作。又或者用户登录后,session信息都不同,有些操作要使用session,就需要将这个动态的信息保存下来。

        第二个请求提交的参数要从第一个请求的返回数据中获取,这就是上下文关联。

在jmeter中,我们可以使用多种方法进行上下文关联。

比如:我这边有一个添加许可证的接口,有一个删除许可证的接口,删除许可证需要用到添加的许可证的ID,那么我们就可以使用上下文关联来提取添加许可证接口中,返回值中的ID。


方法一:json提取器 

要使用json提取器,首先返回的值必须是json格式的。这样才能被json提取器提取到。

首先在查看结果树中测试json提取的表达式。

在查看结果树中,查看添加许可接口的响应数据,然后把查看方式改成JSON Path Tester,最后编写JSON表达式测试提取响应数据中的id值。

 ID字段是在data下面,所以我们的表达式是:$.data.id

$.是第一级,data是第二级,最后获取到ID的值。级别直接用 . 隔开。

有了表达式,然后在接口中添加json提取器,右击 注册->添加->后置处理器->JSON提取器。

 JSON提取器说明:
1) Name of created variables:变量名称,引用时格式${xukeid}
2) JSON path expressions:观察结果树中测试的表达式
3) Match No:可以填三个值 (0:随机 1:第一个 -1:全部)(获取到的值有多个时,选择其中的某部分)
4) compute concatenation var(suffix_ALL): 是否统计所有,即将获取到的所有值都保存(目前用到的不勾选)
5) default values:默认值

 配置好JSON提取器后,就可以在删除接口进行使用了。

 然后我们看一下,删除接口的请求数据。成功获取到了添加许可中的ID。

 在使用JSON提取器时,有的时候会遇到带中括号的返回数据。

其实这种数据的提取只需要在data后面多加一个点,相当于是多了一级而已。 

表达式:$.data..id

还有一种情况就是提取到的数据不是唯一,而是有多个数据。这种情况该如何处理呢?

其实这种情况也可以处理的,只需要根据提取到的值中,把标号取出来就可以了。

比如:

我们如果想取15这个值的话,只需要把标号0添加到表达式就可以了。

表达式:$.data.[0].id 

 如果想获取最后一位的话可以通过-1标号来获取。

表达式:$.data.[-1].id

 好了,JSON提取器就讲这么多,接下来我们讲讲正则表达式提取器。

方法二:正则表达式提取器

想要通过正则表达式提取数据,首先必须会写正则表达式。

在察看结果树中,查看注册的响应数据,然后把查看方式改成RegExp Tester,最后编写正则表达式测试提取响应数据中的id值。

 有了表达式,然后在接口中添加正则表达式提取器,右击 注册->添加->后置处理器->正则表达式提取器

配置正则表达式:

正则表达式提取器说明:
Apply to:应用范围
要检查的响应字段:样本数据源。
引用名称:其他地方引用时的变量名称,可自定义设置,引用方法:${引用名称}
正则表达式:数据提取器,()括号里为你要获取的的值。 为正则表达式,用来匹配所需要获取的数据.
模板:用于从找到的匹配项创建字符串的模板。这是一个带有特殊元素的任意字符串,用于引用正则表达式中的组。引用组的语法是:' $1$ '引用组1,' $2$ '引用组2,等等。$0$引用整个表达式匹配的内容。
匹配数字:正则表达式匹配数据的所有结果可以看做一个数组,匹配数字即可看做是数组的第几个元素。-1表示全部,0随机,1第一个,2第二个,以此类推。若只要获取到匹配的第一个值,则填写1
缺省值:匹配失败时的默认值。可以不写。若需用于后续逻辑判断,可简单写为 ERROR。

 最后的引用方法跟JSON提取器是一样的,这里就不过多叙述了。接下来我们讲讲边界值提取器。

方法三:边界值提取器

想要提取一个响应数据的一部分,我们可以通过正则表达式提取,而很多小伙伴并不会写正则表达式,那么我们就可以通过使用边界值提取器了。

比如:下面接口中,我想要拿到返回数据的中间一部分。

那么我们可以通过边界值提取器来提取这部分内容:

 左边界:你要提取部分的左边的数据。

右边界:你要提取部分的右边的数据。

然后再写上引用名称就OK了。

使用起来非常简单。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值