在功能测试时,经常会测到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) 生产的文件结果:
												

python生成excel测试数据的更多相关文章

  1. python生成Excel图表(通过xlsxwriter)

    前面介绍了pandas的简单用法,pandas的数据可以通过matlab第三方包将数据生成报表,但是我想将报表生成在Excel中,这时候就可以借助xlsxwriter第三方包来生成图标   缺点:xl ...

  2. 小兴趣:用python生成excel格式座位表

    脚本分两个文件: 1.生成二维随机列表:GenerateLocaltion.py 2.将列表导入excel文件:CreateExcel.py 先上GenerateLocaltion.py: impor ...

  3. python生成excel格式座位表

    脚本分两个文件: 1.生成二维随机列表:GenerateLocaltion.py 2.将列表导入excel文件:CreateExcel.py 先上GenerateLocaltion.py: impor ...

  4. Python生成随机测试数据

    前言 安装 pip install Faker 使用 from faker import Faker fake = Faker() name = fake.name() address = fake. ...

  5. python 生成excel,并下载到本地

    from django.shortcuts import reverse,redirect,render from operations import models import xlwt impor ...

  6. python生成excel文件

    2018-04-1919:04:25 测试代码如下: import openpyxl import datetime wb = openpyxl.Workbook() ws = wb.active w ...

  7. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告

    1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请求参数 ...

  8. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(二)

    可以参考 python+requests接口自动化完整项目设计源码(一)https://www.cnblogs.com/111testing/p/9612671.html 原文地址https://ww ...

  9. python+requests+excel+unittest+ddt接口自动化数据驱动并生成html报告(已弃用)

    前言 1.环境准备: python3.6 requests xlrd openpyxl HTMLTestRunner_api 2.目前实现的功能: 封装requests请求方法 在excel填写接口请 ...

随机推荐

  1. 008_tcp探测

    一. 线上出现了监控指标抖动,netscaler心跳监测的问题,如下图: 二.工具如下: 原理参考:https://www.dearcodes.com/index.php/archives/17/ N ...

  2. 【原创】Linux基础之挂载硬盘

    1 查看哪些硬盘没有挂载 # fdisk -l Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectorsUnits = sector ...

  3. WPF 单个触发器、多个触发器、多条件触发器

    Trigger的使用.利用Trigger对象,我们可以接收到属性变化或者事件发生,并据此做出适当的响应.Trigger本身也是支持多种类型的,下面是一个属性Trigger的例子: <Style ...

  4. 初学python之路-day04

    每天一篇总结,今天学习的是有关于流程控制的知识. 流程控制,顾名思义,在计算机运行中,程序是被某种控制方式按照某种流程或者规律来执行的.而python程序的运行,肯定也是按照某种规律在执行.这些规律可 ...

  5. Mac下mongodb connect failed 连接错误解决方法

    查看elm 后台node 代码 一直连不上mongodb,报错 MongoDB shell version v3.6.0 connecting to: mongodb://127.0.0.1:2701 ...

  6. Mysql索引机制(B+Tree)

    1,索引谁实现的: 索引是搜索引擎去实现的,在建立表的时候都会指定,搜索引擎是一种插拔式的,根据自己的选择去决定使用哪一个. 2,索引的定义: 索引是为了加速对表中数据行的检索而创建的一种分散存储的( ...

  7. element ui table单选框点击全选问题

    <template slot-scope="scope"> <el-radio-group v-model="scope.row.HandleState ...

  8. C++面试

    C++ Primer.STL源码剖析.设计模式 C++ 析构函数可以是虚函数吗?为什么 构造函数可以是虚函数吗?为什么 如何防止类被继承 手写String类(实现类里面常用函) 什么是野指针如何避免这 ...

  9. GCD Counting-树形DP

    GCD Counting 思路: 预处理  每个权值的素因子.问题转化为  以同一个素数作为因子 最长的链, 树形DP求解,ans 由 此点的 最长子链 + 次长子链 相加得到, 然后再更新最长子链 ...

  10. Android数据存储引擎---SQLite数据库

    目标:是否可以在PC端桌面上使用SQLite数据库制作一个财务文件? 目录: 来源: 实践: 总结和比较: SQLite数据简介 是什么,内部结构是怎样的,数据库和表的关系是什么 有什么用 常用的操作 ...