zoukankan      html  css  js  c++  java
  • Jmeter如何将上一个请求的结果作为下一个请求的参数——使用正则表达式提取器

    正则表达式提取器是一个后置处理器,作用是在请求完成后,从响应数据中截取一部分字符串保存到变量中,以便下一个请求使用,下面我们就来做一个简单的例子吧

    1.首先在线程组下添加两个HTTP请求,

    2.添加好两个HTTP请求后,在每个HTTP请求下添加一个查看结果数

    3.在第一个HTTP请求下添加正则表达式提取器

    4.在第一个HTTP请求添加好IP地址,路径,端口号,协议,方法,如果有参数,还需要添加参数,我这里没有参数所以就不添加了

    5.点击绿色箭头启动,查看第一个HTTP请求完成后的响应数据

    6.第一个HTTP请求完成后的响应数据的url是随机变化的,每次HTTP请求完成后的响应数据的url是不同的,现在需要获取第一个HTTP请求完成后的响应数据的url作为第二个HTTP请求的IP地址,这个时候就需要用到正则表达式提取器,正则表达式提取器是一个后置处理器,作用是在请求完成后,从响应数据中截取一部分字符串保存到变量中,以便下一个请求使用。

    7.现在编辑正则表达式提取器

    8.说明:

    (1)引用名称:作为下一个请求要引用的参数名称,如填写myurl,则可用${myurl}引用它来作为第二个HTTP请求的IP地址

     (2)正则表达式用""包起来,如第一个HTTP请求完成后的响应数据{"status":"ok","message":"创建房间成功","data":{"url":"https://www.pp2pp.xyz/room/58ff022f5cd4c32ae9a7f457"}} 我们只需要URL,所以正则表达式为  "url":"https://(.+?)"

    () 表示括起来的部分就是要提取的。

    . 表示匹配任何字符串。
    + 表示一次或多次。
    ?表示不要太贪婪,在找到第一个匹配项后停止。
    (3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$,$3$等等,表示解析到的第几个值给myurl。如:$1$表示解析到的第1个值,我们这里只有一个正则表达式,所以是$1$
    (4)匹配数字:0代表随机取值,1代表全部取值,通常情况下填1
    (5)缺省值:如果参数没有取得到值,那默认给一个值让它取,通常情况下为空
     
    9.现在可以开始编辑第二个HTTP请求,
    10.我们再来点击绿色箭头启动,查看这两个HTTP请求完成后的响应数据,可以看到第二个HTTP请求地址就是第一个HTTP请求的响应数据的URL
     
    11.如果是要获取第一个HTTP的响应数据的URL地址的后面数字作为第二个HTTP的参数,做法也是一样的,只是正则表达式不一样,
    如第一个HTTP请求完成后的响应数据{"status":"ok","message":"创建房间成功","data":{"url":"https://www.pp2pp.xyz/room/58ff022f5cd4c32ae9a7f457"}} 如果我们只需要URL后面的数字58ff022f5cd4c32ae9a7f457,那么正则表达式为  "url":"https://www.pp2pp.xyz/room/(.+?)"
     
  • 相关阅读:
    模拟一个弹出层
    mysql去重
    java 使用map返回多个对象组装
    java替换包含html标签
    java 给指定时间加上天数or给当前日期加天数
    js下载文件 阿星小栈
    Redis中Set集合命令 阿星小栈
    Mysql查询不为null值和字段为null 阿星小栈
    php求今天、昨天、明天时间戳的方法 阿星小栈
    PHP百分数转小数,php 小数转换百分数函数 阿星小栈
  • 原文地址:https://www.cnblogs.com/whitewasher/p/6762793.html
Copyright © 2011-2022 走看看