Jmeter 关联之 json 提取器应用
在接口测试中有一个这样的场景:登录之后,需要进行昵称修改,怎么实现?
首先我们分别看下登录、昵称修改的接口说明:
以上业务中补充一点,昵称修改,还需要添加请求头Authorization传登录获取的token值。
分析:登录之后的响应结果中会返回用户id、token信息; 而更新昵称需要传参member_id、且需要请求头传token;
也就是我们要想办法从“登录”的响应结果中获取到id、token信息,再去传给“更新昵称”请求。
因为返回数据格式是json,所以我们用JSON提取器来实现。用正则表达式提取器也可以,大家可参见我之前写的文章。
01 JSON提取器设置多个变量获取多个数据
1、先添加好登录请求,运行下查看登录的响应结果
调整下查看结果方式,可较清晰看到响应结果中的id、token信息
JSON path表达式怎么写?例如我要获取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路径表达式怎么写呢?
$..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次id_${__counter(,)}为id_1,${__V(id_${__counter(,)},)}则为${id_1},值80;以此类推,一直循环到${id_22}
以上为jmeter工具栏tools-->函数助手对话框界面,可以去选择帮助查看对应函数的功能说明。
3)运行后,可查看到结果
最后: 下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
软件测试技术交流群社:786229024(里面还有工作内推机会,毕竟我们是关系社会。)
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
面试文档获取方式:
相关文章
- alibaba的FastJson(高性能JSON开发包) json转换
- Win10系列:C#应用控件基础9
- Knockout应用开发指南 第六章:加载或保存JSON数据
- 【斗医】【3】Web应用开发20天
- redis set数据类型常用命令及应用场景
- 77 番外篇 - SAP UI5 应用 manifest.json 文件里 Routes 数组元素的相对顺序,不可忽视
- SAP Fiori Elements 应用 manifest.json 文件里 resources.json 的含义
- 在SAP UI5应用里使用jQuery.ajax读取数据并显示在页面上
- SAP UI5应用部署在tomcat上运行的部署路径问题,基于Eclipse
- 如何用CL_CLB_PARSE_JSON解析json字符串到动态生成的ABAP内表结构里
- Angular 应用 tsconfig.json 文件里的 typeRoots 属性讲解
- 使用Cordova将您的前端JavaScript应用打包成手机原生应用
- 使用Eclipse调试PHP应用
- SAP UI5 应用里一些容器控件的介绍
- SAP UI5 应用开发教程之九十九 - 深入探讨 SAP UI5 本地开发环境里的 package.json 和 ui5.yaml 试读版
- 关于 Angular PWA 应用中的 ngsw.json 文件
- Angular应用里的tsconfig.app.json
- js转化json的方法:JSON.stringify(str)
- SQLServer · 特性分析 · SQL Server中XML与JSON应用比较
- ML之FE之chi2:基于mushroom蘑菇数据集利用对RF模型采用chi2算法(基于P值调参的k值挑选)实现特征筛选并可视化特征个数与模型得分的变化曲线、输出最佳特征个数Top_i的特征名称应用案
- python毕设案例教学: 基于数据挖掘在京东客户评价方面的研究与应用
- 通过4种经典应用,带你熟悉回溯算法
- 《TPM原理及应用指南》学习 —— TPM执行环境1(4)
- 《云计算架构技术与实践》连载(12)2.2.7 应用管理自己主动化技术
- SPA应用怎么进行SEO?