1、测试工作中经常需要创建大量的测试数据,如果对于同一种测试数据每次都 需要手动一次次创建,难免有些烦燥,档次也有点Low了,有什么办法可以 摆脱这种现象呢?今天给大家介绍一种快速创建测试数据的方法,提高我们测试工程师工作效率的同时,让我们的心情也愉悦不少,留点时间去干点其他的事多好呀。
2、今天的文章主要是向大家介绍使用python语言来编写小程序实现对身份证号码的自动生成,好了,废话不多说啦,简单粗暴,直接上代码:
方法一:
def get_validate_checkout(id17): """获得校验码算法""" """十七位数字本体码权重""" weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] """mod11,对应校验码字符值""" validate = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'] sum = 0 for i in range(0, len(id17)): sum = sum int(id17[i])*weight[i] mode = sum % 11 return validate[mode]
方法二: def get_random_idnumber(): """产生随机可用身份证号,sex = 1表示男性,sex = 0表示女性""" """地址码产生""" id_number = "110108" """生日起止日期""" start, end = "1960-01-01", "1999-12-30" days = (datetime.datetime.strptime(end, "%Y-%m-%d") - datetime.datetime.strptime(start, "%Y-%m-%d")).days 1 birth_days = datetime.datetime.strftime(datetime.datetime.strptime(start, "%Y-%m-%d") datetime.timedelta (random.randint(0, days)), "%Y%m%d") id_number = id_number str(birth_days) """顺序码""" for i in range(2): """最后一个值可以包括""" n = random.randint(0, 9) id_number = id_number str(n) """性别码""" sex_id = random.randint(1, 2) id_number = id_number str(sex_id) """校验码""" check_out = get_validate_checkout(id_number) id_number = id_number str(check_out) return id_number
在方法二中的倒数第三行会调用方法一中已经定义好的方法:get_validate_checkout,get_validate_checkout方法主要是为了获得校验码的算法,方法二是真正生成身份证号码测试数据需要执行的小程序。
执行该小程序需首先导入相应的模块,例如:
import datetime
import random
3、身份证号码的生成规则有:地址码、顺序码、性别码、校验码,满足以上4个条件即可生成我们需要使用的身份证号码测试数据,再也不用百度去搜索啦,执行一次就生成一个自己想要的测试数据。因为小程序的执行的结果是以return返回的,所以想要看到这个生成的身份证号码,需要定义一个变量去接收或者将return修改为print,直接打印到控制台输出。