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

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

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

图片

图片

以上业务中补充一点,昵称修改,还需要添加请求头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)运行后,可查看到结果

图片

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/217789.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】

redis数据结构介绍 redis是一个key-value的数据库,key一般是String类型,但是value的类型多种多样。 redis 通用命令 keys : 查看符合模板的所有key (keys partten ,匹配表达式支持一些特殊字符 * ?)del:删…

测试Bard和ChatGPT对双休有关法规的认知和简单推理

Bard是试验品,chatgpt是3.5版的。 首先带着问题,借助网络搜索,从政府官方网站等权威网站进行确认,已知正确答案的情况下,再来印证两个大语言模型的优劣。 想要了解的问题是,在中国,跟法定工作…

【Linux】gcc和g++

👦个人主页:Weraphael ✍🏻作者简介:目前正在学习c和Linux还有算法 ✈️专栏:Linux 🐋 希望大家多多支持,咱一起进步!😁 如果文章有啥瑕疵,希望大佬指点一二 …

Golang并发模型:Goroutine 与 Channel 初探

文章目录 goroutinegoexit() channel缓冲closerangeselect goroutine goroutine 是 Go 语言中的一种轻量级线程(lightweight thread),由 Go 运行时环境管理。与传统的线程相比,goroutine 的创建和销毁的开销很小,可以…

无线网络下VMWare+CentOS7使用桥接模式无法联通网络问题

因为最近新配了台带无线网卡的主机,所以准备把所有的内容都转移到新电脑上,其中就包括虚拟机 安装好VMWareCentOS7选择桥接模式 然后我们去修改一下网络配置 cd /etc/sysconfig/network-scripts/进入这个ifcfg-ens33文件 我们修改箭头所示内容&#xff…

毅速丨3D打印随形水路为何受到模具制造追捧

在模具制造行业中,随形水路镶件正逐渐成为一种革命性的技术,其提高冷却效率、优化产品设计、降低成本等优点,为模具制造带来了巨大的创新价值。 随形水路是一种根据产品形状定制的冷却水路,其镶件可以均匀地分布在模具的表面或内部…

2016年11月16日 Go生态洞察:Go字体的创新之旅

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

我叫:希尔排序【JAVA】

1.我兄弟存在的问题 2.毛遂自荐 希尔排序提希尔(Donald Shell)于1959年提出的一种排序算法。 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。 希尔排序是基于插入排序的以下两点性质而提出改进方法的&…

基于微信小程序的员工宿舍报修系统

项目介绍 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时…

npm pnpm yarn(包管理器)的安装及镜像切换

安装Node.js 要安装npm,你需要先安装Node.js。 从Node.js官方网站(https://nodejs.org)下载并安装Node.js。 根据你的需要选择相应的版本。 一路Next,直到Finish 打开CMD,输入命令来检查Node.js和npm是否成功安装 nod…

SAS9.2软件“OLE:对象的类没有在注册数据库中注册“问题的解决. 2023-11-25

操作系统测试平台: Win7 sp1 32bit (6.1.7601.26321 (Win7 RTM)) ; Win 11 64bit(具体版本不详) 其它win平台理论上也可以,可自行测试 1.安装依赖库(必要步骤) 下载地址: Microsoft Visual C 2005 Redistributable 下载 Microsoft Visual C 2008 Redistributable 官方vc库总…

8.AUTOSAR 诊断栈分析(一)

目录 1.错误分级分类 2.错误上报方法 2.1 API上报 2.2 预定义的Callout上报 2.3 DET(Default Error Tracer)相关Hook或者Callout上报 2.4 DEM相关错误处理 2.5 DLT相关错误处理 3.小结 终于来到了整个ECU的核心:诊断Dianostic。 为了更加系统地了解诊断…