07、jmeter后置处理器

本文详细介绍了JMeter的三种后置处理器——JSON提取器、正则表达式提取器和BeanShell后置处理程序,用于从响应数据中提取信息并设置为变量,以便在后续请求中使用。通过示例展示了如何提取特定值,如文章ID,并进行调试验证。
摘要由CSDN通过智能技术生成

jmeter后置主要是一些提取器,用来提取请求的返回数据,设置为变量供后续请求使用,这里主要介绍json提取器、正则提取器、beanshell

1、json提取器

右键,添加,后置处理器,json提取器

这里表达式我们可以用结果树来提前校验,可以确认这个值确实被我们提取出来了,Result[0]=129348685

 

我们来引用这个值,这里直接用一个debug取样器来试试,可以看到被我们取出来了

 

2、正则表达式提取器

右键,添加,后置处理器,正则表达式提取器

这里我们先看结果树,先用正则表达式测验一下,这里我们匹配到一大堆,我们的目标是取到一个文章的ID,即129348685

Match count: 20
Match[1][0]="articleId":129348685,"title"
Match[1][1]=129348685
Match[2][0]="articleId":129272536,"title"
Match[2][1]=129272536
Match[3][0]="articleId":129227220,"title"
Match[3][1]=129227220
Match[4][0]="articleId":129226992,"title"
Match[4][1]=129226992
Match[5][0]="articleId":129226674,"title"
Match[5][1]=129226674
Match[6][0]="articleId":129226274,"title"
Match[6][1]=129226274
Match[7][0]="articleId":129145603,"title"
Match[7][1]=129145603
Match[8][0]="articleId":129128262,"title"
Match[8][1]=129128262
Match[9][0]="articleId":129109897,"title"
Match[9][1]=129109897
Match[10][0]="articleId":129100192,"title"
Match[10][1]=129100192
Match[11][0]="articleId":129100115,"title"
Match[11][1]=129100115
Match[12][0]="articleId":129100072,"title"
Match[12][1]=129100072
Match[13][0]="articleId":129099989,"title"
Match[13][1]=129099989
Match[14][0]="articleId":129099763,"title"
Match[14][1]=129099763
Match[15][0]="articleId":129099676,"title"
Match[15][1]=129099676
Match[16][0]="articleId":129090323,"title"
Match[16][1]=129090323
Match[17][0]="articleId":129068257,"title"
Match[17][1]=129068257
Match[18][0]="articleId":129056711,"title"
Match[18][1]=129056711
Match[19][0]="articleId":129052470,"title"
Match[19][1]=129052470
Match[20][0]="articleId":129018613,"title"
Match[20][1]=129018613

 我们来看看正则表达式提取器的页面:

来看几个解释: 

引用名称:其他地方引用提取值的变量名称,如填写的是:str,具体的引用方式是${str}

正则表达式:提取内容的正则表达式【稍注意一下:()表示提取,对于你要提前的内容需要用小括号括起来】

模板:用$$引用起来,如果在正则表达式中有多个提取表达式(多个括号括起来的东东),则可以是$1$,$2$等等,表示解析到的第几个值给str,正则表达式的提取模式,值从1开始,

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

缺省值(默认值):正则匹配失败时,取的值

这里我们拿到了20组值,每组值有两个,我们需要取出第一组值里面的那个数字,那么匹配数字就要写1,表示第一个匹配内容,模板值写1,表示那个ID

我们调试一下:

 

最后关于正则表达式的语法,可以自行百度,不多解释

3、BeanShell后置处理程序

右键,添加,后置处理器,BeanShell后置处理程序

界面和beanshell差不多,关于beanshell断言看这里 jmeter断言汇总

beanshell的用处有很多,比如提取数据作为参数化,或者为全局变量供整个测试计划使用,这里先讲一个基本的用法,beanshell处理返回数据,然后设置为变量。

 首先引用jar包,用来处理json数据,jar包去maven repository官网找 这里直达

 编写脚本:

import org.json.*;
//获取上一个请求的返回值
String response = prev.getResponseDataAsString();
//将返回值转换为json
JSONObject responseJson = new JSONObject(response);
//获取data,JSON对象类型
JSONObject data = responseJson.getJSONObject("data");
//获取list,JSON数组类型
JSONArray list = data.getJSONArray("list");
// 获取第一篇文章信息
JSONObject article1 = (JSONObject)list.get(0);
// 获取第一个articleId
String articleId = article1.get("articleId").toString();
log.info("articleId" + articleId);
// 设置为变量,引用名称为articleId,articleId只能为String,上述已经做了转化
vars.put("articleId", articleId);

 来调试一下:

我们在日志窗口也可以看到,这个值取得是对的:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值