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/(.+?)"
  • 相关阅读:
    第36课 经典问题解析三
    第35课 函数对象分析
    67. Add Binary
    66. Plus One
    58. Length of Last Word
    53. Maximum Subarray
    38. Count and Say
    35. Search Insert Position
    28. Implement strStr()
    27. Remove Element
  • 原文地址:https://www.cnblogs.com/wz123/p/10832228.html
Copyright © 2011-2022 走看看