Python脚本生成SQL测试数据

背景

数据库测试需要插入多条数据时,手动修改效率太低,可以考虑使用脚本自动化生成指定条数符号条件的待测数据。
下列代码可根据输入的单条数据,输出指定条数同类数据,然后复制到sql插入语句的values后,即可生成要求数据。

代码

import random
import string
import datetime
import time

def rand_string(num):
    return ''.join(random.sample(string.ascii_letters + string.digits,num))



def get_sql_clause(tpl, num):
    lst = list(tpl)
    dst = [] # 包含指定个数的元组列表

    for i in range(2,cnt):
        tmp = lst[:]

        # 列出需要递增的字段
        tmp[0] = str(int(tmp[0]) + i)
        tmp[1] = str(int(tmp[1]) + i)
        tmp[2] = str(int(tmp[2]) + i)
        tmp[4] = 'WXJ' + str(int(tmp[4].split('WXJ')[1]) + i)
        tmp[5] = str(int(tmp[5]) + i)
        tmp[6] = rand_string(20)
        tmp[10] = datetime.datetime.now().strftime( '%Y-%m-%d %H:%M:%S')
        tmp[11] = datetime.datetime.now().strftime( '%Y-%m-%d %H:%M:%S')

        time.sleep(1)
        dst.append(tuple(tmp))

    return dst

if __name__ == "__main__":
    tpl = ('1', '11', '41', '121', 'WXJ219', '2', 'wishes', '0', '1', '0', '2020-03-07 20:21:33', '2020-03-07 20:21:33')
    cnt = 55 # 元组个数

    ret = get_sql_clause(tpl, cnt)
    print(ret)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段Python脚本是用来生成测试数据并插入到MySQL数据库中的。它使用了Python的faker库来生成假数据,并使用了records库来连接和操作MySQL数据库。脚本首先定义了一个函数get_insert_sql,用于生成插入数据的SQL语句。然后定义了一个函数get_row,用于生成一条数据记录。接下来,在main函数中,通过循环生成10万条数据,并使用bulk_query方法将数据批量插入到名为tb_user的表中。脚本中还包含了数据库连接的相关信息,如数据库地址、用户名、密码等。\[1\] 然而,根据引用\[2\]中的错误信息,脚本在执行过程中遇到了一个SQL语法错误。具体来说,这个错误是由于在SQL语句中出现了一个不正确的语法。可能是在生成SQL语句的过程中出现了错误,或者是在执行SQL语句的过程中出现了错误。需要检查SQL语句的语法是否正确,并确保与MySQL服务器版本相匹配。\[2\] 此外,根据引用\[3\]中的错误信息,还可能存在MySQLdb库的版本不兼容问题。这个错误信息表明在MySQLdb库的cursors模块中的execute方法出现了错误。可能需要检查MySQLdb库的版本,并确保与Python版本和操作系统相兼容。\[3\] 综上所述,如果你想使用这个脚本自动生成插入数据的SQL语句,你需要确保SQL语句的语法正确,并检查MySQLdb库的版本是否与Python版本和操作系统相兼容。 #### 引用[.reference_title] - *1* [实战:利用Python脚本生成MySQL测试数据](https://blog.csdn.net/mouday/article/details/124677953)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [在MySQLPython中使用INSERT INTO语句时出现语法错误](https://blog.csdn.net/weixin_39747975/article/details/113461648)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值