IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

Jmeter之JSON提取器应用

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

在接口测试中有一个这样的场景:登录之后,需要进行昵称修改,怎么实现?

首先我们分别看下登录、昵称修改的接口说明:

66_1.png

66_2.png

以上业务中补充一点,昵称修改,还需要添加请求头Authorization传登录获取的token值。

分析:登录之后的响应结果中会返回用户id、token信息; 而更新昵称需要传参member_id、且需要请求头传token;也就是我们要想办法从“登录”的响应结果中获取到id、token信息,再去传给“更新昵称”请求。因为返回数据格式是json,所以我们用JSON提取器来实现。用正则表达式提取器也可以,大家可参见我之前写的文章。

一、json提取器设置多个变量获取多个数据

1、先添加好登录请求,运行下查看登录的响应结果

66_3.png

调整下查看结果方式,可较清晰看到响应结果中的id、token信息

66_4.png

JSON path表达式怎么写?例如我要获取id,可写$.data.id,$表示根元素,然后一级级属性往下去找,先找到data,再往下子节点找到id;也可写$..id,直接从根元素去递归查找到id;获取token同理。详细的可查看这篇文章http://www.lemfix.com/topics/63

66_5.png

66_6.png

2、右键登录请求–>后置处理器–>添加“JSON提取器”。66_7.png

JSON提取器说明:

Apply to:应用范围

N****ames of created variables :接收值的变量名,自定义,多个变量用分号分隔

JSON****P****ath expression****: json path表达式,也是用分号分隔

M****atch N****o****.(0 for Random)****:0表示随机;n取第几个匹配值;-1匹配所有。若只要获取到匹配的第一个值,则填写1

Compute concatenation var(suffix_ALL):如果找到许多结果,则插件将使用’ , ‘分隔符将它们连接起来,并将其存储在名为 _ALL的var中

D****efault V****alues: 缺省值,匹配不到值的时候取该值,可写error。

为了检查通过json提取器是否正常获取到值,可添加Debug PostProcessor来检查,注意正常跑用例时删除或禁用它。

66_8.png

对比登录返回的结果,能看到已经正常获取到id,token。

3、添加“修改昵称”请求,将json提取器获取到的值,进行变量引用。运行脚本,更改昵称成功。

66_9.png

66_10.png

66_11.png

二、json提取器设置1个变量获取多个数据

我们也会碰到获取一个变量,但结果是多个数据的情况。

1、例如“获取用户列表”,先来看下“获取用户列表”的响应结果。

66_12.png

如果想要获取到这里所有的用户id,json路径表达式怎么写呢?$..id或者$.data[*].id

66_13.png

2、添加JSON提取器,获取所有用户id信息。

66_14.png

添加Debug PostProcessor来调试用,正常跑用例删除或禁用它。可查看到获取到了所有用户id值。通过id_1,….id_22可得到每一个id。

66_15.png

3、将获取到每一个用户id循环进行“用户流水记录”查看结果。

1)添加循环控制器,设置循环次数。

66_16.png

2)在循环控制器之下添加“用户流水记录”请求,并做以下设置。

66_17.png

因为要把JSON提取器中匹配到的id_1,….id_22循环传递给“用户流水记录”,

__counter为jmeter自带的一个计数函数,${__counter(,)}引用这个函数,每运行1次+1,从1开始;

id_${__counter(,)}运行第1次id_1,运行第2次id_2,以此类推,直到运行到循环次数id_22

__V为jmeter自带的一个嵌套变量函数,运行第1次id_${__counter(,)}为id_1,${__V(id_${__counter(,)},)}则为${id_1},值80;以此类推,一直循环到${id_22}

66_18.png

以上为jmeter工具栏tools–>函数助手对话框界面,可以去选择帮助查看对应函数的功能说明。

3)运行后,可查看到结果

66_19.png

文章永久链接:https://tech.souyunku.com/?p=30619


Warning: A non-numeric value encountered in /data/wangzhan/tech.souyunku.com.wp/wp-content/themes/dux/functions-theme.php on line 1154
赞(64) 打赏



未经允许不得转载:搜云库技术团队 » Jmeter之JSON提取器应用

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码
IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

评论 抢沙发

大前端WP主题 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏


Fatal error: Uncaught Exception: Cache directory not writable. Comet Cache needs this directory please: `/data/wangzhan/tech.souyunku.com.wp/wp-content/cache/comet-cache/cache/https/tech-souyunku-com/index.q`. Set permissions to `755` or higher; `777` might be needed in some cases. in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php:367 Stack trace: #0 [internal function]: WebSharks\CometCache\Classes\AdvancedCache->outputBufferCallbackHandler() #1 /data/wangzhan/tech.souyunku.com.wp/wp-includes/functions.php(5109): ob_end_flush() #2 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(303): wp_ob_end_flush_all() #3 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /data/wangzhan/tech.souyunku.com.wp/wp-includes/plugin.php(470): WP_Hook->do_action() #5 /data/wangzhan/tech.souyunku.com.wp/wp-includes/load.php(1097): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php on line 367