python接口自动化测试之接口数据依赖
一般在做自动化测试时,经常会对一整套业务流程进行一组接口上的测试,这时候接口之间经常会有数据依赖,那又该如何继续呢?
那么有如下思路:
- 抽取之前接口的返回值存储到全局变量字典中。
- 初始化接口请求时,解析请求头部、请求参数等信息中的全局变量并进行替换。
- 发出请求。
抽取接口的返回值存储到全局变量字典中
其中set_global_vars代表的是当前测试用例的全局变量设置列表, self.global_vars则代表测试类实例的全局变量字典,common.dict_get方法的具体实现请移步方法具体实现
解析字符串中全局变量并进行替换
这里,首先先创建识别全局变量的正则规则,然后运用re.sub方法进行替换。其中,re.sub中的repl参数可接受函数作为参数。global_var_repl方法中,使用global_var_dic字典去获取匹配的值并返回。
默认参数中,将全局变量做了这样一个识别: ${GLOBALVAR_NAME}, 用global_var_dic查找并替换全局变量时,则使用了默认预设的起止索引参数。这种写法我感觉有些奇怪, 但是目前也没想出更好的方法,如果大家有更好的实现思路的话欢迎讨论:)
最佳实践
接下来模拟一次全局变量替换的效果:

下面是控制台输出:
可以看出输出还是符合预期的,将字符串中全局变量成功解析。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

相关文章:
python接口自动化测试之接口数据依赖
一般在做自动化测试时,经常会对一整套业务流程进行一组接口上的测试,这时候接口之间经常会有数据依赖,那又该如何继续呢? 那么有如下思路: 抽取之前接口的返回值存储到全局变量字典中。初始化接口请求时,…...
s28.CentOS、Ubuntu、Rocky Linux系统初始化脚本v6版本
CentOS、Ubuntu、Rocky系统初始化脚本 Shell脚本源码地址: Gitee:https://gitee.com/raymond9/shell Github:https://github.com/raymond999999/shell 可以去上面的Gitee或Github仓库代码拉取脚本。 版本功能v6版更新内容1.由于CentOS 6…...
go同步锁 sync mutex
goroutine http://127.0.0.1:3999/concurrency/11 go tour 到此 就结束了. 继续 学习 可以 从 以下网站 文档 https://golang.org/doc/ https://golang.org/doc/code https://golang.org/doc/codewalk/functions/ 博客 https://go.dev/blog/ wiki 服务器教程 服务器…...
使用项目自动生成的dokcerfile第一次构建时把加载aps5.0失败无法找到加载的文件
第一次构建初始化项目自带的dockerfile,内容如下: #See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.#FROM mcr.microsoft.com/dotnet/aspnet:5.0-buster-slim AS base #WORKDIR /a…...
ACREL DC energy meter Application in Indonesia
安科瑞 华楠 Abstract: This article introduces the application of Acrel DC meters in base station in Indonesia.The device is measuring current,voltage and energy together with hall current sensor. 1.Project Overview This company is located in Indonesia a…...
报错!Jupyter notebook 500 : Internal Server Error
Jupyter notebook 报错 500 : Internal Server Error 问题背景 tensorflow-gpu环境,为跑特定代码专门开了一个环境,使用conda安装了Jupyter notebook,能够在浏览器打开Jupyter notebook,但是notebook打开ipynb会报错。 问题分析…...
2023.11.21使用<button>元素来触发form表单和数据提交
2023.11.21使用<button>元素来触发form表单和数据提交 除了使用<input>中的submit方式进行form表单和数据提交,还可以使用button方式,两种方式视使用场景,各有优点。 方法一:可以将<button>放…...
leetcode:504. 七进制数
一、题目: 链接: 504. 七进制数 - 力扣(LeetCode) 函数原型: char* convertToBase7(int num) 二、思路 本题要将十进制数转换为二进制数,只要将十进制num数模7再除7,直到num等于0 每次将模7的结…...
centos安装指定版本docker
centos7安装指定版本的docker 官方文档 https://docs.docker.com/engine/install/centos/ 1、卸载旧版本 $ sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2、设…...
PPT幻灯片里的图片,批量提取
之前分享过如何将PPT文件导出成图片,今天继续分享PPT技巧,如何提取出PPT文件里面的图片。 首先,我们将PPT文件的后缀名,修改为rar,将文件改为压缩包文件 然后我们将压缩包文件进行解压 最好是以文件夹的形式解压出来…...
《Fine-Grained Image Analysis with Deep Learning: A Survey》阅读笔记
论文标题 《Fine-Grained Image Analysis with Deep Learning: A Survey》 作者 魏秀参,南京理工大学 初读 摘要 与上篇综述相同: 细粒度图像分析(FGIA)的任务是分析从属类别的视觉对象。 细粒度性质引起的类间小变化和类内…...
【网络安全】伪装IP网络攻击的识别方法
随着互联网的普及和数字化进程的加速,网络攻击事件屡见不鲜。其中,伪装IP的网络攻击是一种较为常见的攻击方式。为了保护网络安全,我们需要了解如何识别和防范这种攻击。 一、伪装IP网络攻击的概念 伪装IP网络攻击是指攻击者通过篡改、伪造I…...
redis非关系型数据库
1.redis redis:开源的,使用c语言编写的NQL数据库 redis:基于内存运行,支持持久化(数据恢复)。采用的就是key-value(键值对)的存储形式,目前在分布式架构中,…...
LeetCode 0053. 最大子数组和:DP 或 递归(线段树入门题?)
【LetMeFly】53.最大子数组和:DP 或 递归 力扣题目链接:https://leetcode.cn/problems/maximum-subarray/ 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最…...
二十三种设计模式全面解析-解密职责链模式:请求处理的设计艺术
当我们构建软件系统时,经常会遇到需要处理各种不同类型请求的情况。有时,请求的处理逻辑可能相当复杂,需要按照一定的规则和条件进行处理。在本文中,我们将深入探讨职责链模式在请求处理中的应用。职责链模式通过将请求发送者和接…...
【linux】安装telnet
Telnet Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令…...
深入探索 PaddlePaddle 中的计算图
**引言** 计算图是深度学习平台 PaddlePaddle 的核心组件之一,它提供了一种图形化的方式来表示和执行深度学习模型。通过了解和理解 PaddlePaddle 中的计算图,我们可以更好地理解深度学习的工作原理,并且能够更加灵活和高效地构建和训练复杂…...
西南科技大学814考研一
C语言基础 字节大小 char:1 字节 unsigned char:1 字节 short:2 字节 unsigned short:2 字节 int:通常为 4 字节(32 位平台)或 8 字节(64 位平台) unsigned int&#x…...
【网络编程】简述TCP通信程序,三次握手,四次挥手
文章目录 🎄TCP通信程序⭐打印字符串✨中文乱码问题🎈解决方法 🌺TCP三次握手🌺TCP四次挥手🛸其他 🎊专栏【网络编程】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆…...
【ARM Trace32(劳特巴赫) 使用介绍 5 -- Trace32 ELF 文件加载介绍】
请阅读【ARM Coresight SoC-400/SoC-600 专栏导读】 文章目录 1.1 Trace32 加载符号表1.1.1 ELF 文件加载1.1.2 其它格式文件加载1.1.3 多个 ELF 的加载1.2 Trace32 UEFI 配置1.2.1 x86 32-BIT1.2.2 x86 64-BIT1.2.3 ARM1.1 Trace32 加载符号表 劳特巴赫 TRACE32 可以显示目标…...
通过Taotoken为OpenClaw配置自定义模型供应商的详细步骤
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken为OpenClaw配置自定义模型供应商的详细步骤 OpenClaw是一个流行的AI智能体开发框架,它允许开发者灵活地配…...
从DenseNet到特征复用:揭秘密集连接如何重塑卷积网络
1. 密集连接:卷积网络的第三次进化 记得我第一次跑图像分类任务时,用的还是传统的VGG网络。那时候为了提升准确率,只能不断堆叠卷积层,结果模型体积像吹气球一样膨胀到500MB。直到2017年遇到DenseNet,才发现原来只需要…...
GDB调试实战:如何像本地变量一样轻松查看函数参数和结构体成员(附常用命令清单)
GDB调试实战:像本地变量一样高效查看函数参数与复杂数据结构 调试大型C/C项目时,最令人头疼的莫过于面对层层嵌套的函数调用和包含数十个成员的结构体。传统调试方式往往让我们陷入内存地址的泥潭,而GDB提供的诸多高级功能可以彻底改变这一局…...
从零构建Copaw自定义Channel:WebSocket实时通信与Agent能力接入实战
1. 项目概述:一个最小可用的Copaw自定义Channel实现如果你正在研究如何将Copaw Agent的能力“暴露”给外部世界,比如一个网页、一个桌面应用,或者你自己的业务系统,那么你很可能已经意识到,官方文档里关于Channel的示例…...
信息几何物理学:范式构建、本体坐标与世毫九理论科学谱系定位
信息几何物理学:范式构建、本体坐标与世毫九理论科学谱系定位 Information-Geometric Physics: Paradigm Construction, Ontological Coordinates and Scientific Pedigree Positioning of Shihao-9 Theory 作者:方见华 单位:世毫九实验室 摘要 当代人工智能与认知科学正…...
3个步骤让AMD显卡也能运行CUDA程序:ZLUDA终极指南
3个步骤让AMD显卡也能运行CUDA程序:ZLUDA终极指南 【免费下载链接】ZLUDA CUDA on non-NVIDIA GPUs 项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA 你是否曾经因为手头只有AMD显卡,却想运行那些需要CUDA加速的深度学习框架而感到无奈&…...
AI代理如何革新领导力评估:从隐藏档案任务到低成本高效测量
1. 项目概述:当AI成为你的“面试官”,领导力评估正在发生什么?如果你是一位人力资源总监,或者是一位正在为团队选拔继任者而头疼的部门负责人,那么下面这个场景你一定不陌生:为了评估一个候选人的真实领导潜…...
Vue.Draggable终极指南:掌握拖拽数据同步的5大核心策略
Vue.Draggable终极指南:掌握拖拽数据同步的5大核心策略 【免费下载链接】Vue.Draggable Vue drag-and-drop component based on Sortable.js 项目地址: https://gitcode.com/gh_mirrors/vu/Vue.Draggable Vue.Draggable是一个基于Sortable.js的强大Vue.js拖拽…...
芯片原型开发实战指南:从虚拟原型到FPGA的决策与调试
1. 原型决策前的核心考量:一份来自一线的深度清单在硬件和系统设计领域,原型开发是连接构想与现实的桥梁,但这座桥怎么搭、用什么材料、何时能通车,每一步都充满了抉择。很多团队在项目启动时,满腔热情地喊着“先做个原…...
如何在iOS设备上快速安装TrollStore:TrollInstallerX完整使用指南
如何在iOS设备上快速安装TrollStore:TrollInstallerX完整使用指南 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX TrollInstallerX是一款专为iOS 14.0到16.6…...
