JMeter的实际应用---边界提取器 AND 正则表达提取器
-
边界提取器:
允许用户使用左右边界从服务器响应中提取值。作为后处理器,此元素将在其范围内的每个Sample请求之后执行,测试边界,提取请求的值,生成模板字符串,并将结果存储到给定的变量名称中。
添加》后置处理器》边界提取器
可以先添加一个边界提取器测试。如果能提取出来变量值,就可以添加到-边界提取器中去了。
讲关联之前先熟悉一下后置处理器,因为关联取的数据就是请求后的数据。
后置处理器:
后置处理器(Post Processors)负责在请求后进行工作。后置处理器常作为处理响应的数据,后置处理器中的正则表达式提取器常常用于提取动态关联的数据。后置处理器放在请求的子集中。
什么时候需要关联?
1. 服务器返回的动态变化而且对业务有影响的需要关联。
2. 回放脚本看是否正确,检查下脚本,是否有动态数据影响
3. 一大串字符串,每次请求参数是否有变化
4. 可以找开发问问,接口是开发做的,最清楚了
动态数据关联:
1.在HTTP请求的参数中经常会遇到一些参数的值是服务器的响应中的动态数据,这些数据需要进行关联才能使得每一次请求都能成功地被服务器接受,在JMeter中常用正则表达式或者JSON提取器来获取这些动态数据。
2.正则表示式允许用户从服务器响应中获取数据,作为后置处理器,正则表示式在每个请求执行后再执行。正则表示式提取出来的数据放在变量中,供后续的请求使用
-
正则表达式提取器:
-
正则表示式:
- .点:匹配任何单个字符,除了\n\r之外
- +加号:匹配前面的子表示式一次或者多次
- ?问号:当该字符紧跟在任何一个其他限制符(*,+,?)后面时,匹配模式是非贪婪的,非贪婪模式尽可能少地匹配所搜索的字符串
- *星号:匹配前面的子表达式任意次
- ()小括号:将()之间的表示式定义为“组”,并且将匹配这个表示式的字符保存到一个临时区域
- 引用的时候要注意,引用的是
${id_g1}
和${id_g2}
这两个。 - 要取的这两个值,如果中间的字段比较多的话,可以使用正则来代替。用+代替中间的内容。
添加 》 后置处理器 》 正则表达式提取器
实例讲解:
要实现这样一个功能:新建一个学校,然后再把刚才新建的学校禁用了。
通过抓包工具抓到禁用学校的接口
所以只需要把列表页接口的响应中的这两个数据取出来,然后供给禁用的接口使用,就能实现:新建一个学校,然后把新建的学校禁用了。
分开取数据,先取id:
(可以加一个调试取样器,在查看结果树好查看正则表达式有没有取出数据。)
在调试取样器里面测试到了我们需要的变量值,就新建到正则表达提取器中去(此时注意前后的符号,1、一定不能有空格或者其他符号。2、输入字符时输入法一定要在英文状态下才行)
把取出来的id和schoolid引用到禁用学校的接口即可。
通过 ${变量名}把取出来的值引用过来。