背景
數據庫測試需要插入多條數據時,手動修改效率太低,可以考慮使用腳本自動化生成指定條數符號條件的待測數據。
下列代碼可根據輸入的單條數據,輸出指定條數同類數據,然後複製到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)