jmeter中的正则表达式提取器

jmeter中的提取器

什么是提取器

在实际接口测试中经常会用到 其他接口的 返回数据,举个例子 登录请求后 要取出 响应中的token,交给后续接口使用。 完成提取 token工作的元件就叫提取器, 提取器根据提取原理不同划分了很多的提取器,最常用的 是 正则表达式提取器 和 json提取器。


image.png

正则表达式提取器

顾名思义,就是使用 <ins style="box-sizing: border-box;">正则表达式</ins> 来 提取 想要的数据

什么是正则表达式

正则表达式 是编程工作中经常使用的一个知识点,它规定了一些特殊符号的含义,用来描述一种字符串的匹配模式。

常用的匹配符号

image.png
image.png

正则表达式演示

image.png

在Jmeter中的实际使用

假设我们要提取登录接口中token的值


image.png
  1. 首先在接口中右键点击添加 正则表达式提取器


    image.png
  2. 输入内容


    image.png

    下面来逐个解释:

    1. 引用名称:取值成功后要给这个值取个变量名,方便后续使用,我这里填的是 login_param,如果我在其他元件使用这个值的时候 写 ${login_param} 就代表这个取到的值

    2. 正则表达式:<ins style="box-sizing: border-box;">“token”:"(.*?)",</ins> 因为我们要取token,根据报文得知值的前后内容,

      1. ():括起来的部分就是要提取的。
      2. .:点匹配任何字符串。
      3. *:代表匹配0个到多个字符
      4. ?:不要太贪婪,在找到第一个匹配项后停止。
      5. 简单概括一下就是, 从"token":“开始匹配所有的字符,直到碰到第一个”,为止,把中间的所有字符串取到


        image.png
    3. 模板:模板:用引用起来,如果在正则表达式中有多个正则表达式,则可以是$23$等等,表示解析到的第几个值给title。如:<math><semantics><annotation encoding="application/x-tex">1</annotation></semantics></math>1表示解析到的第1个值,下个案例会实战

    4. 匹配数字:如果表达式匹配到多个目标,取第几个,一般填 1,就行了

    5. 缺省值:如果参数没有取得到值,那默认给一个值让它取

  3. 添加一个调试取样器
    这个元件可以查看jmeter运行时的变量变化,在名字后面加上${login_param}


    image.png
  4. 执行脚本看看结果


    image.png
  5. 再添加一个HTTP信息头管理器,在线程组外面添加,输入token


    image.png
    image.png

同一个响应中提取两个参数

假设我们要提取登录接口中token的值 和 userName的值


image.png
  1. 复制刚才的请求 和 调试取样器
    image.png
  2. 修改正则提取器
    “token”:"(.?)",“userName”:"(.?)" : 这里面有两个正则表达式,多以对应的模板改成 <math><semantics><annotation encoding="application/x-tex">1</annotation></semantics></math>1<math><semantics><annotation encoding="application/x-tex">2</annotation></semantics></math>2

    image.png

  3. 执行一下看看结果
    这个时候 login_g1代表token,login_g2代表userName,这就是匹配多个值的用法,注意模板和表达式的对应关系就好了


    image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容