背景
数据库测试需要插入多条数据时,手动修改效率太低,可以考虑使用脚本自动化生成指定条数符号条件的待测数据。
下列代码可根据输入的单条数据,输出指定条数同类数据,然后复制到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)