自动生成的 ID 编号,纯用 RF 书写
log 进入获取T+N天的日期
${date} Evaluate datetime.date.today()-datetime.timedelta(days=1) datetime
${DATE} Evaluate '''${date}'''.replace('-','')
log 完成获取T+N天的日期
log 进行自动生成18位身份证号码
Comment ${DATE} 获取N天前的日期 -1
${Value} Evaluate int(18)+1 # 通过调整${Value}可以任意生成指定出生年份的身份证号码
${Birthday} Evaluate int(${DATE})-${Value}0000
${list} Evaluate list(str(${Birthday}))
${CODE_A} Set Variable 4
${CODE_B} Set Variable 4
${CODE_C} Set Variable 0
${CODE_D} Set Variable 3
${CODE_E} Set Variable 0
${CODE_F} Set Variable 0
${CODE_Y1} Set Variable ${list[0]}
${CODE_Y2} Set Variable ${list[1]}
${CODE_M1} Set Variable ${list[4]}
${CODE_X1} Set Variable 0
${CODE_Y3}= Set Variable ${list[2]}
${CODE_Y4}= Set Variable ${list[3]}
${CODE_M2}= Set Variable ${list[5]}
${CODE_D1}= Set Variable ${list[6]}
${CODE_D2}= Set Variable ${list[7]}
${CODE_X2}= evaluate random.randint(0,9) random,sys
${CODE_X3}= evaluate random.randint(0,9) random,sys
${S}= evaluate ${CODE_A}*7+${CODE_B}*9+${CODE_C}*10+${CODE_D}*5+${CODE_E}*8+${CODE_F}*4+${CODE_Y1}*2+ ${CODE_Y2}*1+ ${CODE_Y3}*6 +${CODE_Y4}*3+ ${CODE_M1}*7+ ${CODE_M2}*9+${CODE_D1}*10+${CODE_D2}*5+${CODE_X1}*8+${CODE_X2}*4+${CODE_X3}*2
${YS}= evaluate ${S}%11
${C0DE_18}= Set Variable If ${YS}==0 1 ${YS}==1 0 ${YS}==2 X ${YS}==3 9 ${YS}==4 8 ${YS}==5 7 ${YS}==6 6 ${YS}==7 5 ${YS}==8 4 ${YS}==9 3 ${YS}==10 2
${ID_CODE} evaluate str(${CODE_A})+str(${CODE_B})+str(${CODE_C})+str(${CODE_D})+str(${CODE_E})+str(${CODE_F})+str(${CODE_Y1})+str(${CODE_Y2})+str(${CODE_Y3})+str(${CODE_Y4})+str(${CODE_M1})+str(${CODE_M2})+str(${CODE_D1})+str(${CODE_D2})+str(${CODE_X1})+str(${CODE_X2})+str(${CODE_X3})+str('${C0DE_18}')
Set Test Variable ${ID_CODE}
log 完成自动生成18位身份证号码
#################### 随机生成0-18岁之间的身份证号码 #########################
log 进入获取当前日期之后200天中任意一天日期
${list} Create List
:FOR ${i} IN RANGE 1 200
${date} Evaluate datetime.date.today()-datetime.timedelta(days=-${i}) datetime
${DATE} Evaluate '''${date}'''.replace('-','')
Append To List ${list} ${DATE}
${DATE} Evaluate random.choice(@{list}) random,sys
log 完成获取T+N天的日期
log 进行自动生成18位身份证号码
${Birthday} Evaluate int(${DATE})-180000
${list} Evaluate list(str(${Birthday}))
${yyyy} Evaluate int(${list[0]}${list[1]}${list[3]}${list[4]})
${yyyy} Evaluate random.randint(${yyyy},${yyyy}+18) random,sys
${list1} Evaluate list(str(${yyyy}))
${CODE_A} Set Variable 4
${CODE_B} Set Variable 4
${CODE_C} Set Variable 0
${CODE_D} Set Variable 3
${CODE_E} Set Variable 0
${CODE_F} Set Variable 0
${CODE_Y1} Set Variable ${list1[0]}
${CODE_Y2} Set Variable ${list1[1]}
${CODE_M1} Set Variable ${list[4]}
${CODE_X1} Set Variable 0
${CODE_Y3}= Set Variable ${list1[2]}
${CODE_Y4}= Set Variable ${list1[3]}
${CODE_M2}= Set Variable ${list[5]}
${CODE_D1}= Set Variable ${list[6]}
${CODE_D2}= Set Variable ${list[7]}
${CODE_X2}= evaluate random.randint(0,9) random,sys
${CODE_X3}= evaluate random.randint(0,9) random,sys
${S}= evaluate ${CODE_A}*7+${CODE_B}*9+${CODE_C}*10+${CODE_D}*5+${CODE_E}*8+${CODE_F}*4+${CODE_Y1}*2+ ${CODE_Y2}*1+ ${CODE_Y3}*6 +${CODE_Y4}*3+ ${CODE_M1}*7+ ${CODE_M2}*9+${CODE_D1}*10+${CODE_D2}*5+${CODE_X1}*8+${CODE_X2}*4+${CODE_X3}*2
${YS}= evaluate ${S}%11
${C0DE_18}= Set Variable If ${YS}==0 1 ${YS}==1 0 ${YS}==2 X ${YS}==3 9 ${YS}==4 8 ${YS}==5 7 ${YS}==6 6 ${YS}==7 5 ${YS}==8 4 ${YS}==9 3 ${YS}==10 2
${ID_CODE} evaluate str(${CODE_A})+str(${CODE_B})+str(${CODE_C})+str(${CODE_D})+str(${CODE_E})+str(${CODE_F})+str(${CODE_Y1})+str(${CODE_Y2})+str(${CODE_Y3})+str(${CODE_Y4})+str(${CODE_M1})+str(${CODE_M2})+str(${CODE_D1})+str(${CODE_D2})+str(${CODE_X1})+str(${CODE_X2})+str(${CODE_X3})+str('${C0DE_18}')
Set Test Variable ${ID_CODE}
log 完成自动生成18位身份证号码
推荐阅读