Python边界值测试工具:生成指定大小文件

在进行软件测试的过程中,经常会有文件上传功能的需求(例如头像上传、商品图上传等),这时候就需要考虑文件大小的边界值,例如只可上传1-2MB的图片,5-10MB的文件,想要验证需求的话,就需要找到合适大小的文件,这样的文件很难获取,为了提升测试效率,我决定开发一个测试工具,用于生成指定文件大小,以应对这种边界测试情况。

思路:可以考虑写一个方法,将文件大小MB转化为N个字节Byte,然后写入N个1字节字符到一个文件中,这样就可以实现创建指定大小的文件。但是需要考虑的是,如果我需要一个0.9MB的文件,转化为字节的时候,可能出现小数的问题,众所周知,字节已经是最小的单位,如果代码中出现0.2个字节,必然会报错,因此,我引入了round方法,将转化后的数值四舍五入,这样就能解决这个问题。

代码:

# [应用]生成指定大小的文件
# 应用场景:头像上传、图片上传
import tkinter as tk# 传入三个参数:文件类型、文件名、文件大小(MB)
def generate_file():file_type = e1.get()file_name = e2.get()file_mb = float(e3.get())# 1MB = 1024KB =1024 * 1024bytefile_byte = file_mb * 1024 * 1024# 二进制文件if file_type == "bin":with open(file_name + ".bin", "wb") as f:f.write(b"\x00" * round(file_byte))# 其他类型文件如txt、excel、png、jpg等else:with open(file_name + "." + file_type, 'w') as f:f.write("A" * round(file_byte))# 创建GUI界面
window = tk.Tk()
window.title("测试工具-生成指定大小文件")
window.geometry("330x330")
l1 = tk.Label(window, text="请输入文件类型如txt、bin、jpg、excel等")
e1 = tk.Entry(window, width=12)
l2 = tk.Label(window, text="请输入文件名")
e2 = tk.Entry(window, width=12)
l3 = tk.Label(window, text="你想要多大的文件(单位:MB)")
e3 = tk.Entry(window, width=12)
b = tk.Button(window, text="点击生成", command=generate_file)
l1.pack()
e1.pack()
l2.pack()
e2.pack()
l3.pack()
e3.pack()
b.pack()window.mainloop()

 运行:

 可以看到,生成了一个刚好2MB的TXT文件

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

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

相关文章

CVPT: Cross-Attention help Visual Prompt Tuning adapt visual task

论文汇总 当前的问题 图1:在VTAB-1k基准测试上,使用预训练的ViT-B/16模型,VPT和我们的CVPT之间的性能和Flops比较。我们将提示的数量分别设置为1、10、20、50,100,150,200。 如图1所示,当给出大量提示时,VPT显示了性能的显著下降…

电脑ip会因为换了网络改变吗

在当今数字化时代,IP地址作为网络世界中的“门牌号”,扮演着至关重要的角色。它不仅是设备在网络中的唯一标识,也是数据交换和信息传递的基础。然而,对于普通用户而言,一个常见的问题便是:当电脑连接到不同…

三菱变频器Modbus-RTU 通讯规格

能够从变频器的 RS-485 端子使用 Modbus-RTU 通讯协议,进行通讯运行和参数设定。 NOTE: 1、使用 Modbus-RTU 通讯协议时,请设定Pr.549 协议选择 “1” 2、从主机按地址0(站号0)进行hodbus-RTU通讯时,为广播通讯,变频器不向主机发…

QT编译后,如何手动运行,或复制到其他机器运行

编译后(文件名叫Work.exe),通过QT功能,是可以成功运行的。如果在目录中双击,或复制到其他机器上运行,就会失败。怎么办? 打开命令窗口 运行命令 D:\Work\build\release>windeployqt Work.e…

写论文去哪个网站?2024最佳五款AI毕业论文学术网站

在2024年,AI技术在学术写作领域的应用已经变得越来越普遍。为了帮助学生和研究人员更高效地完成毕业论文的撰写任务,市场上涌现了许多优秀的AI论文写作工具。本文将重点推荐五款最佳的AI毕业论文学术网站,并特别强调千笔-AIPassPaper的优势。…

【应用开发三】 input子系统介绍

文章目录 1 名词解释2 输入设备编程框架2.1 input子系统2.2 读取数据流程2.3 input_event结构体2.3.1 type(哪类事件)2.2 code(具体事件)2.3 value(数值) 2.4 数据同步2.5 读取start input_event数据 1 名词…

【iOS】——YYModel源码总结

性能优化及优点 YYModel主要用于将JSON数据转换为模型对象,以及将模型对象转换为字典的库。相比于其他的数据转换库例如JSONModel,它更加的轻量级并且性能更高,因为它在很多地方做了优化: 通过CFDictionaryCreateMutable方法将数…

【数据结构与算法 | 灵神题单 | 二叉搜索树篇】力扣99, 1305, 230, 897

1. 力扣99:恢复二叉搜索树 1.1 题目: 给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换。请在不改变其结构的情况下,恢复这棵树 。 示例 1: 输入:root [1,3,null,null,2] 输出&…

【UWB无线载波通信技术】史上最详细解说!!

UWB定位技术的人员定位系统源码,高精度人员定位系统,自主研发,最高定位精度可达10cm,全套源码合作! 目录 简介 基本原理 技术指标 应用 uwb定位系统应用场景 一、‌室内定位与导航‌: 二、‌特定行业…

如何快速修改CSDN代码块或者主题的字体颜色

第一步登录你的CSDN账号然后点击你的头像 第二步点击下拉框中的“内容管理” 第三步,点击“博客设置” 第四步,点击“等级”选择喜欢的主题和颜色 第五步,选择代码块的主题和颜色 最后保存刷新就可以了。

sqlite数据库设计工具

下载 开发环境 VS2022 + Qt5.14.2 CMake修改 add_subdirectory(sqlite3-cmake) include_directories(${CMAKE_SOURCE_DIR}/sqlite3-cmake/src) target_link_libraries(${PROJECT_NAME} sqlite3) 效果 参考 https://github.com/sqlitebrowser/sqlitebrowser

莱卡相机sd内存卡格式化了怎么恢复数据

在数字化时代,相机已成为我们记录生活、捕捉瞬间的重要设备。而SD内存卡,作为相机的存储媒介,承载着我们的珍贵记忆和重要数据。然而,有时由于误操作、系统错误或其他原因,我们可能会不小心格式化SD内存卡,…

对商品分类系统的若干问题的思考

科学研究的目的就是研究事物的特征,并根据共同的特征加以分类 商品分类是商业,制造业中最普遍的活动,几乎所有的企业,电商平台都要对销售的商品,使用的原材料(BOM)进行分类和编号。 商品分类貌似…

电脑录屏方法,四个方法快速录屏!

在这个数字化时代,无论是教学分享、游戏直播还是软件教程制作,电脑录屏都成了我们日常生活中不可或缺的技能之一。但面对琳琅满目的录屏软件和复杂多样的操作界面,你是否也曾感到一头雾水?别担心,今天我们就来揭秘四个…

攻防世界--->EASYHOOK

做题笔记。 下载 查壳。 32ida打开。 进入main:(该改的该) 动调,第一遍,试试水:看看程序的状态。 运行。 发现我们的输入变成了另一种字符,并且还写了个文件。 我们对,input进行追…

Makefile的常用语法

1. makefile规则 目标:依赖 [tab]命令 或者 目标:依赖 ;命令 【目标】:目标可以是一个文件/标签。可以有多个目标,多个目标之间用空格分开,支持通配符。 【依赖】:依赖可以是一个文件/目标…

【计算机网络】传输层协议UDP

目录 一、端口号1.1 端口号范围划分1.2 认识知名端口号 二、UDP协议2.1 UDP协议端格式2.2 UDP的特点2.3 UDP的缓冲区2.4 UDP使用注意事项2.5 基于UDP的应用层协议 一、端口号 传输层协议负责数据的传输,从发送端到接收端。端口号标识一个主机上进行通信的不同的应用…

力扣之1459.矩形面积

1. 1459.矩形面积 1.1 题干 表: Points ---------------------- | Column Name | Type | ---------------------- | id | int | | x_value | int | | y_value | int | ---------------------- id 是该表中具有唯一值的列。 每个点都用二维坐标 (x_value, y_value) 表示。 编…

化工行业如何做数字化转型?

据红杉的一项调查报告中指出,国内超九成的企业(95%)已经开展了不同程度的数字化实践,并将把数字化转型作为企业的战略核心。数字化转型或者说通过数据手段来帮助企业更好发展的方式,已成为未来不可避免的趋势。 那么&a…

SG-SLAM下载部署安装运行记录

1、论文简介 论文地址 GitHub - silencht/SG-SLAM: SG-SLAM: A Real-Time RGB-D Visual SLAM toward Dynamic Scenes with Semantic and Geometric Information 下载论文,zip文件 2、配置环境 其实没什么好说的,就是按照作者提供的文档 2.1cmake错…