zoukankan      html  css  js  c++  java
  • Jmeter脚本增强之关联--正则表达式提取器(8)

    关联:适用于从已知请求中获取响应结果,从响应数据中提取目标信息,作为下一个请求的参数(或进行断言 用)

    所谓关联, 就是第二个Requst, 使用第一个Request中的响应数据

    • 使用步骤:在【登录】请求  右键-->后置处理器 选择需要的关联方式【正则表达式提取器】(例如:用户登录后,将userID提取出来,传递给后续的请求)

     

    • 关键点:怎样设置正则表达式,来提取目标信息?

    纠正一下图上的描述:

    • 模板:$N$引用起来,指的是有多个提取表达式时,取第几个表达式的值,值从1开始 (值0时,引用名=所有提取表达式的值)

    比如:正则表达式("id":(.+?),"pageSize":(.+?),"firstIndex":(.+?),)  这整个是一个表达式,而模板:$1$,$3$ 指只需要获取id 和firstIndex的值。

    • 匹配数字(0代表随机):0代表随机,-1代表所有,其余正整数代表将在已提取的内容中,匹配第几项

    比如:正则表达式就是:"id":(.+?), 在响应信息中有多个id时,取第几个id的值,匹配数字填写3,就是指就取第3个id的值。

    • 缺省值:正则匹配失败时,取的值

    .  表示匹配任意字符

    + 表示匹配一个或者多个

    ?表示匹配到结束为止

    怎样看正则表达式提取到的值正确呢,可以调试

    方法一、添加Debug sampler

    (用Debug取样器可以方便tester查看系统有哪些变量)

     

    方法二、引用提取的变量,此处给debug名称 后面赋值userID的值

    =====================================

    • 匹配多个值

    引用时分别这样写:${userID_g1},${userID_g2}(下面截图中,是两个相邻的参数)

     

    不行是指userID不能同时提取id、pageSize的值,$1$只能提取id的值,要提取pageSize的值需要加上$2$

      

    ==似乎不纠正,也无妨呢(引用时,都要加_g1 或_g2)===========

    ==如果模板是 $0$==,对应的是整个匹配的表达式===================================

     

    Question1:如果要同时匹配下面的stuId 和 id(它们不是相邻的参数),正则表达式需要调一下(后续学习正则表达式的,才能搞定),或者用两个正则表达式提取器

     

    解决办法一,写出它们之间的所有参数,如下:

    参照:https://blog.csdn.net/hujyhfwfh2/article/details/80551299

    =======================================================================================================

    • 扩展阅读:单模板多数据、多模板单数据、多模板多数据

    参照:https://wenku.baidu.com/view/e668f5f5b9f67c1cfad6195f312b3169a451eaf0.html  正则表达式的进一步讲解

     

     

      

    =====

    PS:(.+?)  和     (.*?)  的区别:

    (.+?)提取1个字符串及以上,不要太贪婪,在找到第一个匹配项后停止;         

    (.*?)提取0个字符串及以上,要取的值是空值的时候可以取得到。

    =====

    正则表达式中有转义符(例如:   ?),需要进行转义:

    例如:id?test":"1234" ,我们想要匹配出1234。

    一个合适的正则表达式是: id?test\":"(.+?)"

    =====

    如果匹配的字符,已换行结尾,可以使用换行 “ ”结尾进行匹配, 例如提取Server的值nginx:

       正则表达式:Server:(.+?)

    -----------------------------------------Have a good day!---------------------------------------------------------------------------------------------------
  • 相关阅读:
    Codeforces Global Round 11
    2018-2019 ICPC, Asia Najing
    Codeforces Round #675 (Div. 2) ABCDE
    AtCoder Regular Contest 104 D(卡常)
    Navigator History Location
    键盘移动div
    键盘事件
    事件的传播
    事件的绑定
    事件的委派
  • 原文地址:https://www.cnblogs.com/ww-xiaowei/p/11132884.html
Copyright © 2011-2022 走看看