zoukankan      html  css  js  c++  java
  • Jmeter之关联

    一、什么时候需要关联

      1、服务器返回中存在动态变化的值,一般是类似session的无规则数据

      2、后面的操作或请求需要用到前面的请求返回的值

      3、脚本运行之后没有报错,也没有产生什么数据

      Jmeter可以通过“后置处理器”中的“正则表达式提取器”来处理关联

    二、如何查找关联

      1、Hidden标签

      2、不规则的一段数字或数字与字母的组合

      3、问开发人员哪些地方是需要动态捕捉数据的

    三、简单的关联

    比如在访问百度首页时响应数据里面有一个title标签

    <title>百度一下,你就知道</title>, 我想在其他的请求中引用这个title

    添加正则表达式提取器并设置如下:

    说明:

      (1)引用名称:下一个请求要引用的参数名称,如填写title,则可用${myref}引用它

      (2)正则表达式:

          括号扩起来的部分是要提取的

          “.”:点代表匹配任何字符

          “*”:星号代表匹配的字符0个或者多个

          “+”:加号代表匹配的字符1个或者多个

          “?”:问号代表找到第一个就不再找了

          问号(?)放在星号(*)和加号(+)后面代表匹配尽可能少的字符

          例如:<src="test.jpg" width="60px" height="80px"/>

            正则src=".*"和src=".+"会匹配整个字符串

            正则src=".*?"和src=".+?"匹配src="test.jpg"

            *+没有这样的用法,除非是匹配星号本身,即: *+ 表示一个或多个星号

      (3)模板:用$$引用起来,如果在正则表达式中有多个正则表达式,则可以是$2$$3$等等,表示解析到的第几个值给title。如:$1$表示解析到的第1个值

      (4)匹配数字:0代表随机取值,-1代表全部取值

      (5)缺省值:如果正则表达式没有匹配到值,则给它一个默认值

    添加一个关联请求来验证这个关联:

    执行后我们看到关联成功了

    四、正则表达式举例

    1、提取单个字符串

      匹配Web页面的如下部分:name = "file" value = "readme.txt">,并提取readme.txt

      正则表达式:name = "file" value = "(.+?)">

    2、提取多个字符串

      匹配Web页面的如下部分:name = "file.name" value = "readme.txt">,并提取file.name和readme.txt

      正则表达式:name = "(.+?)" value = "(.+?)",这样就会创建2个组,分别用于$1$和$2$

      比如:

      

      如下变量的值将会被设定:

        MYREF:    file.namereadme.txt
        MYREF_g0:   name = "file.name"value = "readme.txt"     模板{0}
        MYREF_g1:   file.name                                                   模板{1}
        MYREF_g2:   readme.txt                                                 模板{2}

      事实上,MYREF_g0、MYREF_g1、MYREF_g2是正则表达式的结果组,而MYREF才是被模板控制提取出来结果,在需要引用地方可以通过:${MYREF_g1}, ${MYREF_g2进行使用。

  • 相关阅读:
    2019春季助教学期总结
    第二次实验设计报告
    第十二周作业
    第十一周作业
    第十周作业
    第九周作业
    第八周作业
    万恶的第七周作业
    第六周作业
    堆积如山的第五周作业
  • 原文地址:https://www.cnblogs.com/L-Test/p/9426325.html
Copyright © 2011-2022 走看看