一键轻松造数据:通过Postman实现表单提交

news2024/12/24 10:39:43

 

一、原始需求的诞生

在测试的过程中,需要大量的表单。于是我选择了通过postman发送表单提交的接口来造数据。

如上图所示,表单提交接口所需的参数以及请求体中需模拟的IP地址。参数为 {{}} 的表示需要不同的实参,至于原因就不在这里赘述了。如何找到数据呢?还能够贴合心意?

我想到了线上的表单提交用户,这样也不用担心身份证校验的问题,且数据的随机性大。

通过对线上日志的观察,筛选关键字后正好有所需要的日志,但是关键却藏在了 req{} 后面。这样需求就可以明确了:截取日志中 req{} 里的json,并提取出需要的字段存为文件。

二、实现

1、提取日志文件

根据关键字搜索日志后,使用阿里云日志下载功能将所需的日志下载保存在 submit.csv

2、提取csv中所需要的字段content

使用 with open() 函数打开csv文件并读取字段后存在列表中

with open("submit.csv", encoding='utf-8') as submit_file:
    reader = csv.DictReader(submit_file)
    column = [row["content"] for row in reader]

打印查看结果

3、截取content中的json,并进行类型转换

使用python中的index()函数定位 req{} 的位置,然后进行截取并存在列表中。

# 循环提取
for i in column:
    # 截取content中的req{} 、转换成json
    location_num = i.index("{")
    str_req = i[location_num:]
    # print(str_req)
    json_req = json.loads(str_req)

打印查看结果

4、将取出的json_req中所需的字段以字典的形式保存

# 提取json部分字符存到列表中
    deviceId = json_req["deviceId"]
    content = json_req["content"]
    idCard = json_req["idCard"]
    realName = json_req["realName"]
    formIP = json_req["formIP"]
    new_contents.append(
        {"deviceId": deviceId, "content": content, "idCard": idCard, "realName": realName, "forIP": formIP})

打印查看结果

5、将列表写入文件中

使用 with open() 函数打开csv文件并将字段写入在csv文件中

# 写入csv文件
    with open("submitV3.csv", "a+", newline="\n", encoding="utf-8") as submitV3_file:
        writer = csv.writer(submitV3_file)
        writer.writerow([deviceId, content, idCard, realName, formIP])

最后得到文件 submitV3.csv ,如下图:

使用文件在postman中进行参数化运行,参数取值符合使用要求:

四、需求优化

1、idCard为空

提取数据后,发现有部分数据没有idCard,此类日志是由电商类表单提交产生,不需要身份证,所以值为空。所以为了用起来方便,需要进行一个判断的改进。

 # if len(json_req['idCard']) == 0:
    if json_req['idCard']:
       …………
     else:
      ……………

只需要判断idCard是否为空既可筛选出两种表单的值。如图,V2的数据不包含idCard。

2、后续

此次工具完成后发现使用场景较少且不够智能,后续的发展方向:1、直接使用阿里云日志sdk提取文件。2、postman 不需要手工操作。3、模拟使用算法的情况下数据的提交。

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

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

相关文章

618手机大战:各大品牌花式秀战报,但难掩冷淡行情

在手机出货量持续下行的态势下,各大手机厂商普遍对618这个年中大促寄予厚望,希望通过各种促销手段,扭转销售颓势。 比如,今年5月下旬,小米、荣耀、OPPO、vivo等厂商就已经开启了降价、分期免息等优惠活动,…

Vue3自定义指令实现按钮权限

一、需求前提 登录成功后,后端直接返回了用户的所有权限(路由权限按钮权限),在已经实现菜单权限的基础上,实现每个页面的按钮权限,树形数据结构如下: { "roles": ["admin&q…

嵌入式实时操作系统的设计与开发New(六)

aCoral的优先级与数字大小成反比,即:数字越大,优先级越低。 #define MAX_PRIO_NUM ((CFG_MAX_THREAD1) & 0xff) #define MINI_PRIO CFG_MAX_THREAD //最低优先级40typedef enum{ACORAL_INIT_PRIO; //init线程独有的0优先级ACORAL_MAX_PR…

如何刷新 DNS 缓存 (macOS, Linux, Windows)

如何刷新 DNS 缓存 (macOS, Linux, Windows) Unix Linux Windows 如何刷新 DNS 缓存 (macOS, FreeBSD, RHEL, CentOS, Debian, Ubuntu, Windows) 请访问原文链接:https://sysin.org/blog/how-to-flush-dns-cache/,查看最新版。原创作品,转载…

论文解读|基于平面双关节机器人的相机姿态分析与评估

原创 | 文 BFT机器人 01 研究内容 论文的主要研究内容是基于平面双关节机器人的相机姿态分析和评估。研究旨在分析相机的位置调整和一般数据分析,讨论人体姿势的平衡、关节运动的控制以及相机速率的估计和控制。 通过有限相机技术的应用,有效解决平面摄影…

【虚拟机数据恢复】XenServer虚拟机磁盘数据被破坏的数据恢复案例

虚拟机数据恢复环境: 一台某品牌720服务器,4块STAT硬盘通过RAID卡组建raid10磁盘阵列。部署的XenServer虚拟化平台Windows Server操作系统,共两个虚拟磁盘:数据盘系统盘。服务器作为Web服务器使用,上层部署ASP SQL Se…

Chrome插件开发_V3_浏览器扩展插件基础教程

文章目录 一、简介二、核心介绍三、自定义页面背景色三、设置页面背景图(web_accessible_resources)四、设置徽章(Badge)五、桌面通知六、消息通信七、自定义右键菜单(添加、更新、删除)八、Omnibox九、浏览…

JVM基础知识

JVM 一次编译终身运行1.1 JVM和java的体系结构1.1.1 虚拟机与JAVA虚拟机1.1.2 JVM的位置1.1.3 JVM的整体执行流程1.1.4 JAVA代码的执行流程1.1.5 JVM架构模型1.1.6 JVM的生命周期1.1.7 Sun Classic Vm1.1.8 Exact VM1.1.9 Hotspot VM1.1.10 BEA的JRockit1.1.11 IBM的 J91.1.12 …

云渲染是什么?如何挑选云渲染平台

在影视动画、建筑设计、游戏开发等领域,渲染是一个非常重要的环节,它可以将场景、模型、纹理、材质等元素综合起来,生成逼真的图像或视频。然而,渲染也是一个非常耗时和耗能的过程,它需要大量的计算资源和硬件设备&…

Intel base instruction -- Jcc

检查EFLAGS寄存器中一个或多个状态标志(CF、of、PF、SF和ZF)的状态,如果这些标志处于指定状态(条件),则执行跳转到目标操作数指定的目标指令。条件代码(cc)与每个指令相关联&#xf…

实用干货-汇总篇

_ 实用干货 _ 11.实用干货-基因&基因组知识回顾 (qq.com)22.实用干货—解惑NGS可能引入的错误突变 (qq.com)33.临床肿瘤NGS的常规检测流程 (qq.com)44.实用干货—DNA甲基化相关知识点整理 (qq.com)55.实用干货-NGS的QC质控和突变结果复核 (qq.com)65.实用干货-你可能没…

patch 报错 can‘t find file to patch at input line 4

错误现象&#xff1a; 解决 -p3 patch -p3 < ../speccpu2006-kylinv10-aarch64.patch

问题总结,web自动化测试元素无法操作?shadowDOM节点元素解决......

前言 web自动化遇到shadowDOM你会操作吗&#xff1f; 之前在做web自动化的时候&#xff0c;发现页面上有些元素&#xff0c;在selenium中无法通过xpath来定位&#xff0c;各种原因找了半天都没找到解决方案&#xff0c;最后发现元素在一个叫做shadow-root的节点下面&#xff…

消息通知系统设计

编辑导语&#xff1a;消息通知可以将内容实时送达用户手机页面&#xff0c;但是泛滥的消息通知会引起用户的反感&#xff0c;也违背了这个设计的初衷。如何理解以及设计消息通知&#xff0c;作者作了简单的分享&#xff0c;我们一起来看看吧。 消息通知可以及时地将状态、内容…

开发之路,穷且益坚,不坠青云之志(入门开发者共勉)

引言 2023毕业季&#xff0c;距离笔者毕业已过2年有余。 互联网从业环境由盛转衰&#xff0c;互联网从业者数量剧增&#xff0c;市场竞争异常激烈&#xff0c;原本的利润空间被不断挤压&#xff0c;以至于很多开发者对互联网已经失去了信心与激情。 互联网的市场份额依旧是占…

全志科技T507-H工业核心板规格书(4核ARM Cortex-A53,主频1.416GHz)

1 核心板简介 创龙科技SOM-TLT507是一款基于全志科技T507-H处理器设计的4核ARM Cortex-A53全国产工业核心板&#xff0c;主频高达1.416GHz。核心板CPU、ROM、RAM、电源、晶振等所有元器件均采用国产工业级方案&#xff0c;国产化率100%。 核心板通过邮票孔连接方式引出MIPI C…

6 应用层-6.1【实验】【计算机网络】

6 应用层-6.1【实验】【计算机网络】 前言推荐6 应用层6.1 Web服务与FTP服务配置0 搭建拓扑图1 Web演示2 FTP演示6.1.1实验章节测验 最后 前言 2023-6-25 14:35:53 以下内容源自《创作模板三》 仅供学习交流使用 推荐 4端到端协议-4.3【实验】【计算机网络】 6 应用层 6.…

【Java|多线程与高并发】阻塞队列以及生产者-消费者模型

文章目录 1. 前言2. 阻塞队列3. 实现阻塞队列4. 生产者-消费者模型5. 总结 1. 前言 阻塞队列(BlockingQueue)常用于多线程编程中&#xff0c;可以实现线程之间的同步和协作。它可以用来解决生产者-消费者问题&#xff0c;其中生产者线程将元素插入队列&#xff0c;消费者线程从…

《网络安全0-100》自学误区和陷阱

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习 我在之前的回答中&#xff0c;我都一再强调不要以编程为基础再开始学习网络安全&#xff0c;一般来说&#xff0c;学习编程不但学习周期长&#xff0c;而且实际向安全过渡后可用到…

今天面了个腾讯拿 28K 出来的,让我见识到了软件测试的天花板

已经6月底了&#xff0c;你们是在职呢还是待业呢&#xff1f; 今年的春招结束了&#xff0c;而秋招也马上要开始了&#xff0c;很多小伙伴收获不错&#xff0c;拿到了心仪的 offer。 各大论坛和社区里也看见不少小伙伴慷慨地分享了常见的面试题和八股文&#xff0c;为此咱这里…