在功能测试时,经常会测到excel文件导入导出的功能,导入与导出时,需要测试系统单次导入大批量数据时是否正常,

如果系统承受不起太大的数据导入,则需要开发限制单次导入的数量,以防止系统服务异常。大量的数据手工写太过于耗时耗力,

所以,今天用python写了一个生产excel测试数据的脚本,用于以后测试类似功能时,生产测试数据使用。

  主要实现的功能是:

  1、自定义生产数据的行数;

  2、列数自定义;

  3、每列自定义是固定值、拼接自增长、随机值;

代码如下:

from openpyxl import Workbook
from openpyxl import load_workbook
import os
import random files=r'C:\Users\Administrator\Desktop\test\testdata.xlsx' #生成测试数据文件地址
total=50 #写入文件的总行数为total-1
columns_list=[{0:'liuwq'},{1:[1501344,1314368,1369189]},{2:[1,2,3]}]
#写入的对应列内容,如columns_list[0]为第一列的内容,olumns_list[1]为第二列的内容;
#columns_list[n]如果key是0,则value直接写入excel中;
# 1则取value的(list的)其中一个值,并拼接4位数字写入excel中;
# 2则随机取value的一个值写入excel; def WriteDataInExcel(files,columns_list,total):
if not os.path.exists(files):
wb = Workbook()
ws=wb.active
count_write=0
while True:
if count_write==total:
break
for i in range(2,total+1):
count_write=i
tails=str('0'*(4-len(str(i-1)))+str(i-1))
for idx,head in enumerate(columns_list,1):
if list(head.keys())[0]==1:
for hd in head[1]:
data=str(hd)+tails
if isinstance(hd,(int,float)):
ws.cell(row=i, column=idx, value=int(data))
else:
ws.cell(row=i, column=idx, value=data)
elif list(head.keys())[0]==0:
ws.cell(row=i, column=idx, value=head[0])
elif list(head.keys())[0]==2:
data=random.choice(head[2])
ws.cell(row=i, column=idx, value=data)
wb.save(files)
else:
wb=load_workbook(files)
ws=wb.active
count_write=0
while True:
if count_write==total:
break
for i in range(2,total+1):
count_write=i
tails=str('0'*(4-len(str(i-1)))+str(i-1))
for idx,head in enumerate(columns_list,1):
if list(head.keys())[0]==1:
for hd in head[1]:
data=str(hd)+tails
if isinstance(hd,(int,float)):
ws.cell(row=i, column=idx, value=int(data))
else:
ws.cell(row=i, column=idx, value=data)
elif list(head.keys())[0]==0:
ws.cell(row=i, column=idx, value=head[0])
elif list(head.keys())[0]==2:
data=random.choice(head[2])
ws.cell(row=i, column=idx, value=data)
wb.save(files) if __name__=="__main__":
WriteDataInExcel(files, columns_list, total) 生产的文件结果:
												

最新文章

  1. solr update接口常用方法
  2. [CentOS7]安装mysql遇到的问题
  3. Android 网络通信框架Volley简介
  4. platform_device与platform_driver
  5. UVa 11246 - K-Multiple Free set
  6. 搭建hive1.2.1图形界面
  7. Javascript 电子时钟源码
  8. Larave 多图片上传
  9. Contest 20140923 潛行世界 拓撲排序,期望
  10. 7816的报文结构APDU
  11. 将其它图片格式转为.eps格式
  12. Cppcheck 1.54 C/C++静态代码分析工具
  13. Visual Studio 2013 IIS Explorer 停止调试继续访问站点
  14. UIButton 关灯小实验
  15. Divide Sum 比赛时竟然想不出。。。。。。。
  16. 《k8s-1.13版本源码分析》上github
  17. 简述linux操作系统启动流程
  18. BZOJ2534 Uva10829L-gap字符串 字符串 SA ST表
  19. iOS兼容性(不断完善)
  20. oracle 手动增加序列值

热门文章

  1. .NET垃圾回收机制(一)
  2. 校验XX是否在有效期内
  3. 饮冰三年-人工智能-Python-22 Python初识Django
  4. sqlserver 脚本生成数据库文档
  5. 昨天开始使用lr controller 已停止工作问题
  6. jsp中静态include和动态include的区别
  7. ASP.NET Core 3.0预览版体验
  8. react的Virtual DOM
  9. linux(ubuntu) 安装composer(PHP用来管理依赖关系的工具 ) 和安装中国全量镜像
  10. CXF安装和配置时出现Exception in thread "main" java.lang.UnsupportedClassVersionError:异常?