• python生成excel测试数据


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

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

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

      主要实现的功能是:

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

      2、列数自定义;

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

    代码如下:

    from openpyxl import Workbook
    from openpyxl import load_workbook
    import os
    import random

    files=r'C:UsersAdministratorDesktop est estdata.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)

    生产的文件结果:
    
    
    
  • 相关阅读:
    HDU 5313 bitset优化背包
    bzoj 2595 斯坦纳树
    COJ 1287 求匹配串在模式串中出现的次数
    HDU 5381 The sum of gcd
    POJ 1739
    HDU 3377 插头dp
    HDU 1693 二进制表示的简单插头dp
    HDU 5353
    URAL 1519 基础插头DP
    UVA 10294 等价类计数
  • 原文地址:https://www.cnblogs.com/whitemouseV2-0/p/10756501.html
Copyright © 2020-2023  润新知