lsekfe 发表于 2023-2-6 14:59:48

浅谈meter之正则表达式提取器

正则表达式提取器是 Jmeter 常用的 3 种后置处理器之一。
  使用正则语法提取数据、能提取任何数据、缺点就是难以掌握容易忘,但是工作中大部分会使用本文例子中的情况。
  正则表达式:是一种字符串匹配的模式,满足匹配条件的字符串进行提取、替换的操作。
  添加位置:取样器-添加-后置处理器-正则表达式提取器
http://www.51testing.com/attachments/2023/02/15326880_202302011322211pkbM.jpghttp://www.51testing.com/attachments/2023/02/15326880_202302011322241MtR6.jpg
  模块一:Apply to 提取数据的接口对象
  1、main sample and sub-samples:对所有主请求和子请求生效。
  下面两个图的设置即主请求和子请求:
http://www.51testing.com/attachments/2023/02/15326880_202302011322271Cktl.jpghttp://www.51testing.com/attachments/2023/02/15326880_202302011322291ksHn.jpg
  2、main sample only:只对主请求生效。(推荐使用这个)(默认选这个)
  3、sub-samples only:只对子请求生效。
  4、jmeter variable name to use:对jmeter变量生效。(在测试计划定义变量,在这用)
  模块二:要检查的响应字段(主要提取的数据,只能选择一个)
http://www.51testing.com/attachments/2023/02/15326880_202302011322321gLVi.jpg
  1、主体:响应体。(默认选这个)
  2、Body(unescaped):无符号响应体,会自动忽略特殊字符,功能不稳定,一般不用。
  3、body as a document:响应体,会以文件形式存在(在互联网传输的接口数据都是文件),性能差。
  4、信息头:响应头。
  5、request headers:请求头。
  6、url:请求的url。
  7、响应代码:响应状态码。
  8、响应信息:响应状态码的信息。
http://www.51testing.com/attachments/2023/02/15326880_202302011322351SaTH.jpg
  要检查的响应字段含义:
  1、引用名称:就是匹配成功后,保存数据的变量名。
  2、使用正则表达式提取数据,保存到引用名称中。
  3、正则表达式中每有一个括号就相当于一个模板:$1$代表提取第一个正则表达式的数据。(一般只选择一个)
  4、匹配数字:0代表随机选择一组、1代表选择第一组、2代表选择第二组、-1代表选择全部数据。
  5、缺省值:当匹配失效时,保存到引用名称的值。
  举例:下图是提取百度网页中 title 标签下的值。
http://www.51testing.com/attachments/2023/02/15326880_202302011322381YKvy.jpg
  配合增加调试取样器元件,看提取的字符串对不对。
  调试取样器元件位置:添加 -> 取样器 -> 调试取样器
http://www.51testing.com/attachments/2023/02/15326880_202302011322411tSbT.jpg
  运行脚本后看调试取样器即可知道提取的内容对不对。
http://www.51testing.com/attachments/2023/02/15326880_202302011322441lmpk.jpg
  看红框第一行就是本次提取的内容。
  其余 3 个是 Java 语言的组合数据,不用管。
http://www.51testing.com/attachments/2023/02/15326880_2023020113224618t2X.jpg
  引用百度请求(1)中正则表达式提取的内容,应用到百度请求(2)中 :${},完成关联。(由于没有能使用的公开系统,参考下思路即可)
http://www.51testing.com/attachments/2023/02/15326880_202302011322491bKum.jpg

页: [1]
查看完整版本: 浅谈meter之正则表达式提取器