在功能测试时,经常会测到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. css杂项补充

    css杂项补充 一.块与内联 1.块 独行显示 支持宽高,宽度默认适应父级,高度默认由子级或内容撑开 设置宽高后,采用设置的宽高 2.内联 同行显示 不支持宽高 margin上下无效果,左右会起作用, ...

  2. 利用python打印字符

    python unicode ('你好','UTF-8') print u'\u4f60\u597d'

  3. npm安装less和less-loadernpm或者stylus和stylus-loader

    vue-cli 构建的项目默认是不支持 less 的,需要自己添加. 首选,安装 less 和 less-loader ,在项目目录下运行如下命令 npm install less less-load ...

  4. Vue CLI 3+tinymce 5富文本编辑器整合

    基于Vue CLI 3脚手架搭建的项目整合tinymce 5富文本编辑器,vue cli 2版本及tinymce 4版本参考:https://blog.csdn.net/liub37/article/ ...

  5. TensorFlow的Bazel构建文件结构

    目录 说明 分析 全局设定文件:$TF_ROOT/WORKSPACE 外部依赖项入口:tensorflow/workspace.bzl 看看有多少package? 本来是想理解一下TF源码编译过程的, ...

  6. James Munkres Topology: Theorem 19.6

    Theorem 19.6 Let \(f: A \rightarrow \prod_{\alpha \in J} X_{\alpha}\) be given by the equation \[ f( ...

  7. react-native清除android项目缓存的命令

    cd到android目录下执行: ./gradlew clean

  8. 前端技术之--HTML

    1.一套规则,浏览器认识的规则. 2.开发者: 学习Html规则 开发后台程序: - 写Html文件(充当模板的作用) ****** - 数据库获取数据,然后替换到html文件的指定位置(Web框架) ...

  9. 根Activity启动过程

    --摘自<Android进阶解密> 根Activity启动过程中会涉及4个进程,分别是Zygote进程.Launcher进程.AMS所在进程(SystemServer进程).应用程序进程, ...

  10. 15,EasyNetQ-高级API

    EasyNetQ的使命是为基于RabbitMQ的消息传递提供最简单的API. 核心IBus接口有意避免公开AMQP概念,如交换,绑定和队列,而是实现基于消息类型的默认交换绑定队列拓扑. 对于某些场景, ...