zoukankan      html  css  js  c++  java
  • Jmeter正则提取请求响应数据

    前言

    在测试时,我们经常需处理请求返回的响应数据,比如很多时候 cookietokenAuthorization授权码 会返回在 Response headers(响应头)中,这时我们便需要从中进行提取,以供其他接口使用。

    今天我们主要学习下,如何在Jmeter中通过正则提取响应数据中 Response headers 的数据。

    总的设置界面如下:

    所有设置界面

    发送请求,获取响应数据

    首先,设置一个HTTP请求,如下:

    HTTP请求

    接着,设置一个察看结果树,然后执行,得到响应数据,下图中的cookie即我们需要提取的数据:

    响应数据

    正则提取响应数据

    接下来,我们便设置一个正则提取器(用于提取出cookie),另外再设置一个调试后置处理程序(用于查看提取结果)

    正则提取器

    说明:
    1.引用名称:即变量名,后续请求中可以通过 ${引用名称} 来调用
    2.正则表达式:按实际情况填写
    3.模板:$$表示需要哪个正则表达式获取的值,1代表第一个,-1代表全部,0代表随机
    4.匹配数字:1代表第一个,-1代表全部,0代表随机
    5.缺省值:如果正则未匹配到,就会使用缺省值

    正则说明:
    . 表示除“ ”之外的任意字符
    * 表示匹配前面的子表达式任意次
    + 表示匹配前面的子表达式1次或多次
    表示匹配前面的子表达式0次或1次
    .*:贪婪匹配原则,即匹配到不能匹配为止
    .*?:非贪婪匹配,即在匹配成功的情况下尽可能少的匹配

    实例:存在字符串 7adbcfgfbesw ,要匹配7和b之间的字符
    匹配1:使用 .* ,7开始之后,遇到第一个b不结束,继续找下一个b,直到不能匹配,即匹配到 adbcfgf
    匹配2:使用 .*? ,7开始之后,遇到第一个b就结束了,即匹配到 ad

    调试后置处理程序

    查看提取结果

    提取结果

    以上就是本次的提取结果,在这里,如果需在后续请求使用,可通过 ${response_data} 来关联调用。

    可能遇到的问题

    假如,我们需提取 Set-Cookie 里的所有内容。此时,如果依然使用 .*? ,就会发现提取是不成功的,如下:

    响应头数据

    正则提取器

    提取失败

    要解决这个问题也很简单,我们修改正则表达式,使用 .* 贪婪匹配原则既可以。

    正则提取器

    提取成功

    好了,以上就是通过Jmeter正则提取的内容,提取其他数据,如 tokenAuthorization 等的方法与上面类似,大家可以进行实践。

  • 相关阅读:
    04: vue生命周期和实例属性和方法
    03: vuejs 事件、模板、过滤器
    (打补丁 )patch
    zabbix安装
    zabbix简介
    linux 虚拟网络模型介绍
    虚拟化
    虚拟化分类(半虚拟化和全虚拟化)
    playbook详解—YAML格式的文本
    ansible的介绍和一些基本模块介绍
  • 原文地址:https://www.cnblogs.com/wintest/p/11297827.html
Copyright © 2011-2022 走看看