接口测试场景:怎么实现登录之后,需要进行昵称修改?

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

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

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

分析:登录之后的响应结果中会返回用户id、token信息; 而更新昵称需要传参member_id、且需要请求头传token;

也就是我们要想办法从"登录"的响应结果中获取到id、token信息,再去传给"更新昵称"请求。

因为返回数据格式是json,所以我们用JSON提取器来实现。用正则表达式提取器也可以,大家可参见我之前写的文章。

01 JSON提取器设置多个变量获取多个数据

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

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

JSON path表达式怎么写?例如我要获取id:

可写. d a t a . i d , .data.id,.data.id,表示根元素,然后一级级属性往下去找,先找到data,再往下子节点找到id;

也可写$...id,直接从根元素去递归查找到id;

获取token同理。详细的可查看之前的一篇文章。

2、右键登录请求-->后置处理器-->添加"JSON提取器"。

JSON提取器说明:

Apply to:应用范围;

Default Values: 缺省值,匹配不到值的时候取该值,可写error。

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

JSON Path expression: json path表达式,也是用分号分隔 ;

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

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

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

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

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

02 JSON提取器设置1个变量获取多个数据

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

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

如果想要获取到这里所有的用户id,json路径表达式怎么写呢?

. . i d 或者 ..id或者..id或者.data[*].id

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

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

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

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

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

因为要把JSON提取器中匹配到的id_1,...id_22循环传递给"用户流水记录",__counter为jmeter自带的一个计数函数,${__counter(,)}引用这个函数,每运行1次+1,从1开始;

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

V为jmeter自带的一个嵌套变量函数,运行第1次idKaTeX parse error: Expected group after '' at position 2: {_̲_counter(,)}为id...{V(idKaTeX parse error: Expected group after '' at position 2: {_̲_counter(,)},)}...{id_1},值80;以此类推,一直循环到${id_22}

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

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

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
John_ToDebug1 小时前
2025年度个人总结:在技术深海中锚定价值,于时代浪潮中重塑自我
人工智能·程序人生
测试_AI_一辰2 小时前
Agent & RAG 测试工程05:把 RAG 的检索过程跑清楚:chunk 是什么、怎么来的、怎么被命中的
开发语言·人工智能·功能测试·自动化·ai编程
测试者家园5 小时前
测试用例智能生成:是效率革命,还是“垃圾进,垃圾出”的新挑战?
人工智能·职场和发展·测试用例·测试策略·质量效能·智能化测试·用例设计
llilian_165 小时前
信号发生器 多通道多功能脉冲信号发生器应用解决方案 多功能脉冲发生器
功能测试·单片机·嵌入式硬件·测试工具
程序员小远6 小时前
使用Postman进行一次完整的接口测试
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
win x6 小时前
JavaSE(基础)高频面试点及 知识点
java·面试·职场和发展
生活很暖很治愈7 小时前
GUI自动化测试[3]——控件&数鼠标操作
windows·python·功能测试·测试工具
郝学胜-神的一滴9 小时前
Linux Socket模型创建流程详解
linux·服务器·开发语言·网络·c++·程序人生
橘颂TA9 小时前
【剑斩OFFER】算法的暴力美学——力扣 207 题:课程表
数据结构·c++·算法·leetcode·职场和发展