zoukankan      html  css  js  c++  java
  • jmeter正则表达式备忘

    正则表达式使用方法(针对多个匹配结果)

    方法1:

    图1-1

    匹配的结果如图1-1,有多个符合条件的值

    图1-2

    如果使用匹配数字为-1(即全部匹配),那么调用时就要用${goodsid_1_g1},图1-3

    Ps:${goodsid_1_g1}的意思是取goodsid这个集合中第一行第一列的值,如果取第 二行第二列即(goodsid_2_g2)

    图1-3

    方法2:

    图2-1

     

    匹配的结果如图1-1,有多个符合条件的值

    图2-2

    如果使用匹配数字为1(即取第一个匹配的结果),那么调用时就要用${spuid_g1},图2-3

    Ps:$spuid_g1}的意思是取goodsid这个集合中第一行第一列的值,因为只匹配了第一个符合条件的结果,所以不存在取多行的情况

    图2-3

    正则表达式取多个响应的值

    响应的两个值没有间隔

    1. jmeter的响应结果如下图:

    假设需要取横线中的class、oninput 、placeholder的内容,正则表达式可以如下图

    使用的时候 name_g1 代表class的值

    name_g2 代表oninput的值

    name_g3 代表placeholder的值,详细取值结果下图

     

    响应的值有间隔

    相应文本如下:要取红线标注的2个变量值,但是中间隔了“positionCode”,解决方法如下

    正则表达式如下:

    ps:不需要的变量复制过来不要动即可。

    输出结果如图(debug sampler)

     

    正则表达式取多个响应值,并且有多个匹配结果

    这种情况是1+2的组合,又分成2种情况。

    没有 变量干扰

    响应结果没有差异,如图(有3个响应结果,中间隔的“positionCode”值都一样)

    这种情况正则表达式可以这么写:

    取值结果,如下:

    调用的时候:values_1_g1,values_3_g2, 1~3代表行数,g1~g2代表列数

    存在变量干扰

    同样是上面的响应结果,假设每个匹配结果的positionCode字段值都不一样,这样正则表达式可以这样写:

    就是把positionCode的值也取出来,只不过不调用使用

    PS:但是这样写有一个问题,假设响应文本中有很多变量不一致,采用全部取值的方法不确 定是否会影响效率

    总结

    1. 当jmeter中正则表达式中有多个符合条件的结果是,可以选择全部匹配,然后用 ${name_row_g1}这种,变量名+行数+g(列数)的方法去需要的值;

    2. 选择匹配第一个,然后用${name_g1}来取第一个符合条件的结果,只能看成是第一种方法的简化;

    3. 另外g1为默认值可以省略,所以两种方法可以简写为:

    ${name_row_g1} ------>${name_row}

    ${name_g1} ----------->${name}

    1. 如果有多个值可以用随机取值即(匹配数字为:0)来保证请求的多样性

    2. debug sampler可以显示Thread Group中的所有变量值,可以用来调试

  • 相关阅读:
    BUUCTF-web ZJCTF,不过如此
    BUUCTF-web ikun(Python 反序列化)
    BUUCTF-web web1 (无列名注入)
    求前 n 个正整数的 k 次方和
    增根和失根:解方程的逻辑问题
    斜二测画法的经验公式
    像素转换mm
    正则表达式收集
    (转)mssql sp_addextendedproperty 用法,作用
    (转).net平台下垃圾回收机制
  • 原文地址:https://www.cnblogs.com/yifengyu/p/15557525.html
Copyright © 2011-2022 走看看