接口测试场景:怎么实现登录之后,需要进行昵称修改?
在接口测试中有一个这样的场景:登录之后,需要进行昵称修改,怎么实现?
首先我们分别看下登录、昵称修改的接口说明:
以上业务中补充一点,昵称修改,还需要添加请求头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)运行后,可查看到结果
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
相关文章:

接口测试场景:怎么实现登录之后,需要进行昵称修改?
在接口测试中有一个这样的场景:登录之后,需要进行昵称修改,怎么实现? 首先我们分别看下登录、昵称修改的接口说明: 以上业务中补充一点,昵称修改,还需要添加请求头Authorization传登录获取的to…...
石油化工专业MR仿真情景教学演练
首先,MR混合现实情景实训教学系统为学生提供了一个高度仿真的学习环境。在这个环境中,学生可以亲自操作设备,进行模拟实验,甚至可以体验到工业事故的模拟情景,从而更好地理解工艺流程的复杂性和安全性。这种沉浸式的学…...

Docker配置Halo搭建个人博客-快速入门
Docker配置Halo搭建个人博客-快速入门 1 官方文档2 安装Halo2.1 创建Halo主目录2.2 远程下载配置文件2.3 编辑配置文件2.4 拉取最新镜像2.6 查看容器2.7 开放服务器的防火墙 3 运行3.1 运行项目3.2 停止项目 4 常见问题4.1 没有权限4.2 ommand netstart not found, did you mea…...
禁止编辑的PPT幻灯片,如何有效保护文件安全?
【幻灯片解密、去除密码、找回密码指南】 具体步骤如下:第一步百度搜索【密码帝官网】,第二步在用户中心上传需要解密的文件即可。 你是否有遇到过打开一个PPT文件却发现它被去除了密码无法编辑的情况?别担心,将为您提供最简单的解…...
优化前端性能
一次在前端面试中问到优化前端性能的方式 一、主要通过两种方式: reflow(回流)和repaint(重绘)。整个在浏览器的渲染过程中(页面初始化,用户行为改变界面样式,动画改变界面样式等)reflow(回流)和repaint(重绘) 会大大影…...

1.1 C语言之入门:使用Visual Studio Community 2022运行hello world
1.1 使用Visual Studio Community 2022运行c语言的hello world 一、下载安装Visual Studio Community 2022 与 新建项目二、编写c helloworld三、编译、链接、运行 c helloworld1. 问题记录:无法打开源文件"stdio.h"2. 问题记录:调试和执行按钮…...
Android NDK开发中常用的gradle配置
文章目录 externalNativeBuild1.配置通用的 CMake 构建选项2.指定 CMakeLists.txt 文件的位置和 CMake 版本 指定ndk版本 externalNativeBuild 下面的gradle代码包含两个externalNativeBuild {} android {defaultConfig {externalNativeBuild {cmake {cppFlags ""}…...

【AUTOSAR-DoIP】通过 DoIP 进行符合 Autosar 的车辆诊断
前言 通信协议 DoIP(互联网协议诊断)可通过以太网、WLAN 和移动通信对系统进行灵活而强大的诊断:无论是车间外的诊断还是车载诊断,以及驾驶时的远程访问。 DoIP 可以通过多种方式使用:现代车辆中的电子控制系统高度互连并执行各种复杂的功能。 Autosar 支持的通信协议 Do…...

GPIO的使用--操作PE02 PE03 PE04实现开关控制灯泡亮灭
效果: 开关控制灯的亮灭 目录 1.找到引脚组别(DEFG) led灯硬件结构 开关硬件结构 2.时钟使能 3.GPIO时钟控制 4.控制实现思路 5. 完整代码 6.视频演示 1.找到引脚组别(DEFG) 开关的引脚组别--E;LED灯的引脚组别--F led灯硬件结构 开关硬件结构…...

【算法萌新闯力扣】:回文链表
力扣题目:回文链表 开篇 今天是备战蓝桥杯的第23天。我加入的编程导航算法通关村也在今天开营啦!那从现在起,我的算法题更新会按照算法村的给的路线更新,更加系统。大家也可以关注我新开的专栏“算法通关村”。里面会有更全面的知…...
php站点伪静态配置(Apache+Linux)
404报错: 404 Not Found nginx/1.15.11 问题解决: 1、Linux location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s/$1 last; } } 2、Apache <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteCond %{REQU…...

Figma 插件学习(二)- 常用属性和方法
一. 如何调试figma插件 Plugins > Development > Show/Hide console 打开控制台即可开始调试 二.节点类型 根据不同的节点类型,也是会有不同的方法和属性,介绍几个常用节点类型 1.FrameNode 框架节点是用于定义布局层次结构的容器。它类似于HTM…...

基于Flutter的图片浏览器的实现
一 效果展示: 1. 图片展示: 2.混色,平铺,拉伸,原图展示 二 实验准备: 1.在包结构中创建images包来存放我们用到的图片,在pubspec.yaml中声明路径: 2. 检查虚拟机是否正常运行&…...

STM32-使用固件库新建工程
参考链接: 【入门篇】11-新建工程—固件库版本(初学者必须认认真真看)_哔哩哔哩_bilibili 使用的MCU是STM32F103ZET6 。 这篇参考的是野火的资料,可以在“野火大学堂”或者它的论坛上下载。(我通常是野火和正点原子的资料混着看的…...

商用车量产智能驾驶路径思考
1、商用车量产智能驾驶特点 2、量产自动驾驶路径 3、商用车ADAS法规件 4、高等级自动驾驶...
flink消费kafka限制消费速率
flink版本1.14 别的版本类似 需要速率限制的情况 1.任务异常在停止的时间内大量数据挤压 2.新任务上线需要铺底数据,消费几天前的数据 在不增加内存和并行度的情况下,如果任务启动可能会造成oom,这时需要进行速率限制。 前提 漏桶算法(Leaky Bucket Algorithm): 原…...

搭建Appium工具环境
1、安装Java Development Kit(JDK) 前往Oracle官网下载JDK。 在https://www.oracle.com/java/technologies/javase-jdk11-downloads.html 找到最新版本的JDK。根据操作系统选择适合的版本,并根据指示下载安装程序。 安装JDK。运行下载的安…...
【面经八股】搜广推方向:常见面试题(六)
【面经&八股】搜广推方向:常见面试题(六) 文章目录 【面经&八股】搜广推方向:常见面试题(六)1. Memorization 和 Generalization2. Wide 和 Deep3. Cross-product transformation4. 推荐系统划分5. 线性模型6. Embedding-Based 模型7. 推荐系统工作流程8. Wide P…...

6.前端--CSS-基础选择器【2023.11.26】
1.CSS基本选择器 标签选择器: 标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的 CSS 样式。标签选择器可以把某一类标签全部选择出来,比如所有的 <…...

Java制作“简易王者荣耀”小游戏
第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 GameFrame 运行类 package com.sxt;import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; im…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

搭建DNS域名解析服务器(正向解析资源文件)
正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...