接口自动化之测试数据动态生成并替换

news2024/11/23 9:28:34

一、测试数据

1. 随机库random

查看内置random方法,该方法自行学习,不再介绍。

show

2. Faker库

pip install faker

showHttps://github.com/joke2k/faker

3. 应用到项目中

3.1 思路

  1. 在用例数据中添加标志位,设计这个标志位为

{{特殊的变量名}}
  1. expected什么字段里有可能有这个标志
  2. header
  3. url
  4. sql
  5. request_data
  1. ,例如生成手机号码的标志位为

    {{ phone_number }}
  2. 检查用例数据,如果出现了标志则动态生成对应数据并替换

3.2 用例数据修改

def replace_dependent_parameter(self, jst):
"""
替换字符串中的关联参数,并返回转化后的字典格式。
Args:
jst: 包含接口参数的字符串
Returns:转换后的字典或原始字符串
"""
if not jst:
return jst
jst = json.dumps(jst) if isinstance(jst, (dict, list)) else jst
# 替换
while self.PATTERN.search(jst):
key = self.PATTERN.search(jst).group()
# 字符串替换
if key in self.dependence.keys():
jst = jst.replace(key, str(self.get_dependent_value(key)))
logger.my_log(f"key:{key},替换成功:{self.get_dependent_value(key)}")
else:
logger.my_log(f"key:{key},在关联参数表中查询不到,请检查关联参数字段提取及填写是否正常\n")
break
jst = jst.replace("True", "true").replace("False", "false")
if self.pattern.search(jst):
try:
jst = json.loads(jst)
except json.JSONDecodeError as e:
logger.my_log(f"JSONDecodeError:{jst}:{e}")
 
 
return jst

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

在这里插入图片描述

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

“数智+绿色”驱动,宏工科技助力线缆线材稳定高品质生产

9月4日-7日,WIRE CHINA 2023中国国际线缆及线材展览会在上海新国际博览中心举办。宏工科技现场展出线缆线材自动化生产一站式解决方案,与现场观众共商“数字化、智能化、绿色化”发展机遇。 线缆是制造业中最大或产品使用范围最广的基础性配套产业之一&a…

索尼 toio™ 应用创意开发征文|创新音乐创作工具的诞生

引言 音乐创作一直是人类创造力的一项重要表现形式。然而,随着技术的不断进步,我们希望能够开发出更加创新的音乐创作工具,以激发音乐人的灵感和创造力。toio™音乐Q宝的诞生正是为了满足这一需求。 一、开发 1.1 toio™机器人初邂逅 toi…

测试开发 | Java 接口自动化测试首选方案:REST Assured 实践

1 . 初识 REST Assured 在 REST Assured 的官方 GitHub 上有这样一句简短的描述: Java DSL for easy testing of REST services 简约的 REST 服务测试 Java DSL 1.1 优点: REST Assured 官方的 README 第一句话对进行了一个优点的概述,总的…

如何把Word转换成PDF文档?分享操作简单的方法

在人们办公过程中,word、excel以及pdf这三种格式的文件经常会被使用到。这三类文件因为格式不同,使用时理论上应该是各管各的,但是实际使用时却时不时会遇到要对它们三者进行格式转换的情况。那么,如何把Word转换成PDF文档呢?接下…

通过IP地址进行精准定位技术、方法与隐私问题的探讨

导语:随着互联网和移动设备的普及,通过IP地址进行精准定位已成为现实。这一技术的发展带来了许多便利,但也引发了隐私问题的关注。本文将探讨通过IP地址进行精准定位的技术、方法以及涉及的隐私问题。 技术和方法: IP地址的基…

荧光量子产率测试用的是什么积分球

LED(Light-EmittingDiode)作为一种新型的固态光源,以其绿色环保、寿命超长、高效节能等特点成为继白炽灯、荧光灯和高压气体放电灯之后的第四代照明光源。 蓝光LED芯片和钇铝石榴石(YAG)荧光粉封装在一起得到白光LED的方法具有结构简单、制作…

线程池|单例模式|STL、智能指针线程安全|读者写者问题

线程池 线程池的逻辑思想: 每当我们处理一个任务就要创建一个线程,创建线程的开销是很大的。因此我们可以预先创建一批线程,任务队列里没有任务的时候,每个线程都休眠,当队里中有任务的时候,就可以唤醒线程…

牵手时代少年团,来伊份讲了一个“新鲜”故事

从数天前来伊份官方发布一组悬念九宫图海报开始,其新代言人的身份就呼之欲出。 9月7日上午9点,来伊份正式宣布时代少年团为全新品牌代言人。这一官宣在微博引爆并引发了轰动效应,同时代言人同款IP礼盒“伊份心选”正式发售。 图源&#xff1…

马拉松成绩训练利器“亚索800”

在马拉松火热的今天,跑圈中流行着各种各样的马拉松训练方法 其实在众多的流派体系中基本可归纳为两类: 1、强调基础有氧训练,以中低强度长时间跑步训练为主,LSD、MAF180、细胞分裂法都归属于这类训练; 2、强调高强度间…

大数据技术之Hadoop:Yarn集群部署(七)

目录 一、部署说明 二、集群规划 三、开始配置 3.1 MapReduce配置文件 3.2 YARN配置文件 3.3 分发配置文件 四、集群启停 4.1 命令介绍 4.2 演示 4.3 查看YARN的WEB UI页面 一、部署说明 Hadoop HDFS分布式文件系统,我们会启动: NameNode进…

帆软报表简单设置分组汇总

前言 接手之前同事留下的一个胶膜产品入库登记表(帆软报表),结果手滑把原来的报表行删除了。用户反馈需要恢复按报表中 “型号” “卷数” 分组汇总一下 “件数” 字段的值、也就是按每种同型号同卷数分组、相同分组的要有一行汇总&#xf…

将 Qt Designer 的 ui 文件转换为 PySide2 使用的.py 文件

20201206 修订:在 Pyside2 的 5.15.2 版本中,从 ui 生成 py 文件过程,命令从 “uic” 变为 “pyside2-uic” Qt Designer 设计的 ui 文件,就是一个 xml 文件,通过 pyside-uic 可以转换成标准的.py 文件 。通过 QtDesi…

阿里云App备案详细流程_APP备案问题解答

阿里云APP备案流程分为6步,APP备案成功后应用可以上架,登录阿里云账号填写APP信息,等待阿里云初审,初审通过后进行工信部短信核验,管局审核通过后APP即可备案成功,最后移动APP应用可以分发平台上架&#xf…

习题练习 C语言(暑期第四弹)

自我小提升! 前言一、数组二、指针运算三、统计每个月兔子的总数四、双指针的应用五、判断指针六、珠玑妙算七、两数之和八、数组下标九、指针十、寻找峰值十一、二级指针十二、大端小端十三、无符号参数十四、数对十五、截取字符串总结 前言 重要的事说三遍&#…

【校招VIP】JAVA语言考点之多线程实现相关

考点介绍: 多线程是JAVA校招中出现频度比较高的考点,本专题需要熟悉四种多线程的实现方式,并深入对比和区别。另外,对线程的状态和变化的相关题型也进行了分析。 JAVA语言考点之多线程实现相关-相关题目及解析内容可点击文章末尾…

CSS:实现文字溢出显示省略号且悬浮显示tooltip完整信息

组件&#xff1a; element ui中的tooltip组件 思路&#xff1a;通过ref获取宽度进行判断&#xff0c;当子级宽度大于对应标签/父级宽度显示tooltip组件 <div class"bechmark-wrap"><ul ref"bechmarkUl"><liv-for"(item,index) in comp…

SVN 索引版本与打包版本号不匹配

今天突然遇到了一个问题&#xff0c;SVN上传不了&#xff0c;错误提示如下&#xff1a; 解决方法&#xff1a; 1.其实&#xff0c;这是SVN库不小心搞坏了&#xff0c;只能重新再创建一个SVN仓库了。

Java jvm 内存溢出分析

1.如何分析jvm内存溢出呢 我们经常用visualVm监控Jvm的内存&#xff0c;cpu&#xff0c;线程的使用情况&#xff0c;通常可以根据内存不断增长来判断内存是否存在不释放。但是我们不可能时时盯着去看&#xff0c;这里涉及jvm堆内存配置&#xff0c;堆内存参数配置和调优会在其…

mongodb数据库操作

1、启动mongodb /usr/local/mongodb/bin/mongod --dbpath /var/mongodb/data/--logpath /var/mongodb/logs/log.log &在mongodb启动命令中 --dbpath 指定mongodb的数据存储路径 --logpath 指定mongodb的日志存储路径 2、停止mongodb 第一步先进入mongo命令行模式 第二…

nvm管理多个版本的nodejs

1. 已经安装过nodejs在安装nvm的步骤 1.安装nvmhttps://github.com/coreybutler/nvm-windows/releases 2.nvm安装位置 2.nvm管理的nodejs安装位置 4.最终的安装结构 备注&#xff1a;nodejs安装 2.使用nvm安装管理nodejs 2.1配置下载镜像&#xff1a; 找到nvm安装路径…