【接口自动化】参数化替换

在做接口测试时,除了测单个接口,还需要进行业务链路间的接口测试

比如[注册-登陆]需要token鉴权的业务流

当我们用使用postman/jmeter等工具时,将注册接口的一些响应信息提取出来,放到登陆接口的请求中,来完成某个业务流的接口测试。

截取postman部分图示:

Step1:新增环境变量,并且通过编写postman脚本将响应字段提取并且保存到环境变量中

 

Step2:引用变量,在你需要引用变量的位置通过{{XXX}},XXX代表的是变量名

在后续接口的请求中引入{{token}},将从环境变量中把token的数值提取出来,替换掉{{token}},进行接口请求

同样的,在接口自动化编写代码时,我们也可以参考postman的参数化替换:

后续接口 如果需要使用前面接口的响应信息,直接从环境变量中取出来,通过正则表达式的替换安装到自己的需要字符串里面

举例如下:

通过正则匹配{{(.*?)}}找到{{mobile_phone}},再找到里面的mobile_phone,拿mobile_phone去环境变量中找到对应的响应值,通过字符串的replace方法,把{{mobile_phone}}替换为具体的值比如:15764340463

java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现

  • Pattern类的作用在于编译正则表达式后创建一个匹配模式.

  • Matcher类使用Pattern实例提供的模式信息对正则表达式进行匹配

public class RegexUtils {public static void main(String[] args){//1、在环境变量中,存在 变量及值"mobile_phone","13323234545"...//这里方便演示,手动存入Environment.envMap.put("mobile_phone","13323234545");Environment.envMap.put("pwd","123456");Environment.envMap.put("id","666");//2、接口请求数据中,为了方便管理测试数据,写成如下json样式,发送请求之前,进行参数化替换String str = "{\n" +"    \"mobile_phone\": {{mobile_phone}},\n" +"    \"pwd\": {{pwd}},\n" +"    \"id\":{{id}}\n" +"}";System.out.println("原始的字符串:"+str);String replaceStr = regexReplace(str);System.out.println("替换后的字符串:"+replaceStr);}/*** 字符串替换* @param orgStr 原始字符串* @return 替换后的字符串*/public static String regexReplace(String orgStr){String result =  orgStr;//compile————编译 Pattern正则匹配器Pattern pattern = Pattern.compile("\\{\\{(.*?)\\}\\}");//matcher匹配对象,和原始字符串相匹配Matcher matcher = pattern.matcher(orgStr);while (matcher.find()) {//找到的完整字符串String allGetStr = matcher.group(0);System.out.println("找到的完整字符串:"+allGetStr);//找到{{XXX}}内部的匹配的字符串String innerStr = matcher.group(1);System.out.println("找到的内部字符串:"+innerStr);//具体的要替换的值(从环境变量中找到的)Object replaceValue = Environment.envMap.get(innerStr);//替换result = result.replace(allGetStr,replaceValue+"");}return result;}}

运行结果:

关于具体的表达式内容,可以看这篇👉 CSDN

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

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

相关文章

Hadoop学习笔记

视频地址 简介 Hadoop是一个由Apache基金会所开发的分布式系统基础架构主要解决海量数据的存储和海量数据的分析计算问题 Hadoop组成 1. 架构 2. HDFS(Hadoop Distributed FileSystem) 简称HDFS,是一个分布式文件系统 2.1. 架构 2.1.1…

设计模式之创建型模式

创建型模式:创建对象的机制,从所需要实例化的对象中解耦。主要分成了五种设计模式,即工厂方法、抽象工厂、生成器、原型、单例。 文章目录 工厂方法抽象工厂生成器原型单例 工厂方法 问题:一个物流公司最初只使用卡车运输&#x…

刷题之Leetcode54题(超级详细)

54. 螺旋矩阵54. 螺旋矩阵 - 力扣(LeetCode)https://leetcode.cn/problems/spiral-matrix/submissions/521329682/ 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入…

SEO优化艺术:精细化技巧揭示与搜索引擎推广全面战略解读

SEO(搜索引擎优化,Search Engine Optimization)是一种网络营销策略,旨在通过改进网站内外的各项元素,提升网站在搜索引擎自然搜索结果中的排名,从而吸引更多目标用户访问网站,增加流量&#xff…

《springcloud alibaba》 四 seata安装以及使用

目录 准备调整db配置准备创建数据库 seata配置nacos配置confi.txt下载向nacos推送配置的脚本 启动seata新建项目order-seata项目 订单项目数据库脚本pom.xmlapplication.yml启动类实体类dao类service类controller类feign类mapper类 stock-seata 库存项目数据库脚本pom.xmlappli…

第⑫讲:Ceph集群OSD扩缩容中Reblanceing数据的重分布

文章目录 1.Reblanceing数据重分布的概念2.验证Reblanceing触发的过程3.Reblanceing细节4.临时关闭Reblanceing机制 1.Reblanceing数据重分布的概念 当集群中OSD进行扩缩容操作后,会触发一个Reblanceing数据重分布的机制,简单的理解就是将扩缩容前后OSD…

AAC相关知识

一、AAC音频格式种类有哪些 AAC音频格式是一种由MPEG-4标准定义的有损音频压缩格式。AAC包含两种封装格式 ADIF(Audio Data Interchange Format音频数据交换格式)和ADTS(Audio Data transport Stream音频数据传输流)。 ADIF 特点…

RFID工业读写器步骤:只需4步,即可安装使用!

高频读写器在安装的时候需要先考察清楚安装环境,然后根据环境要求选定读写器,确定好对应的安装方式,以及安装位置。具体操作通常包括以下几个步骤: 1、了解安装环境 在安装之前,需要了解实际应用环境,根据环…

鸿蒙南向开发:制作【智能儿童手表】

样例简介 本项目是基于BearPi套件开发的智能儿童手表系统,该系统通过与GSM模块(型号:SIM808)的通信来实现通话和定位功能。 智能儿童手表系统可以通过云和手机建立连接,同步时间和获取天气信息,通过手机下…

智慧农场物联网系统:重塑农业的未来

随着科技的进步,物联网技术正在逐渐改变我们的生活。在农业领域,物联网系统也正在发挥着越来越重要的作用,为智慧农场的发展提供了新的可能。本文将深入探讨智慧农场物联网系统的优势、应用场景、技术实现以及未来发展趋势。 一、智慧农场物…

npm包安装与管理:深入解析命令行工具的全方位操作指南,涵盖脚本执行与包发布流程

npm,全称为Node Package Manager,是专为JavaScript生态系统设计的软件包管理系统,尤其与Node.js平台紧密关联。作为Node.js的默认包管理工具,npm为开发者提供了便捷的方式来安装、共享、分发和管理代码模块。 npm作为JavaScript世…

CKA 基础操作教程(五)

Kubernetes Ingress 理论学习 Ingress 提供从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源所定义的规则来控制。 Ingress 资源示例: apiVersion: networking.k8s.io/v1 # 指定 Kubernetes 中使用的 API 版本 kind: Ingress # 指定对象…

[dvwa] CSRF

CSRF 0x01 low 跨站,输入密码和确认密码直接写在url中,将连接分享给目标,点击后修改密码 社工方式让目标点击短链接 伪造404页,在图片中写路径为payload,目标载入网页自动请求构造链接,目标被攻击 http…

吴恩达深度学习笔记:深层神经网络(Deep Neural Networks)4.5-4.8

目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第四周:深层神经网络(Deep Neural Networks)4.5 为什么使用深层表示?(Why deep representations?) 第一门课:神经网络和深度学习 (…

设计模式之观察者模式讲解

概念:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。 抽象主题:或者叫被观察者,可以持有、增加、删除观察者对象。具体主题:实现抽象主题定义的…

一部手机游全国|打造文旅云平台,开启智慧旅游新篇章

随着移动互联网的迅猛发展,旅游业在不断寻求创新与变革,旅游小程序作为智慧文旅的一个终端,在智慧推荐、智慧票务、智慧导览、智慧服务、虚拟体验等方面上,都具备发展潜力。小程序的出现,则从根本上大大提升了景区智慧…

如何快速开启一个项目-ApiHug - API design Copilot

ApiHug101-001开启篇 🤗 ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin |…

数据库——实验6 视图的创建与使用

1. 视图的定义 视图是根据需要以一个表或多个表为基础,选择满足一定条件的行或列数据的静态定义。它是一种逻辑对象,是一种虚拟表。视图并不生成行或列的永久副本,并不占用存储空 间,也就是说,视图就是保存在数据库中…

探索算力(云计算、人工智能、边缘计算等):数字时代的引擎

引言 在数字时代,算力是一种至关重要的资源,它是推动科技创新、驱动经济发展的关键引擎之一。简而言之,算力即计算能力,是计算机系统在单位时间内完成的计算任务数量或计算复杂度的度量。随着科技的不断发展和应用范围的不断扩大…

nginx到底是怎么工作的

工作流程 用户通过域名发出访问Web服务器的请求,该域名被DNS服务器解析为反向代理服务器的IP地址反向代理服务器接受用户的请求反向代理服务器在本地缓存中查找请求的内容,找到后直接把内容发送给用户如果本地缓存里没有用户所请求的信息内容&#xff0…