兄弟们,上次有个哥们儿找我,说是要做个什么系统测试,需要一大批用户的虚拟身份信息。具体点,就是要模拟那种身份证号和姓名,而且得是看起来真的一样,用来跑业务流程。当时我就懵了,500个?手敲?那不得敲到猴年马月去!而且哪有那么多现成的真数据能拿来用,这可是敏感信息,不能随便搞的。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.icu
我为啥会掺和这事儿?说起来也是一肚子苦水。那会儿刚从老东家离职,手上也没个项目撑着,成天呆家里看老婆孩子。老哥们儿看我闲着,就问我能不能帮他这个忙。想着也算是有点活儿干,还能练练手,就一口答应下来了。结果没想到,看着简单的事儿,干起来简直要人命。
需求:500个模拟身份证和姓名
我琢磨着随便找个在线生成器得了。网上那种工具不少,你搜一下“身份证号生成器”,哗出来一大堆。我随便点进去一个,生成了几十个,看着是挺像那么回事。但问题来了,他那系统里还带点简单的校验逻辑,比如说,有的号段不能用,名字不能太离谱,还得随机点儿,不能全是一个省份的,不然测试场景太单一,没啥说服力。那些在线工具搞出来的,要不就是一眼假,要不就是一大堆重复的,根本没法用!
那怎么办?总不能真的一条一条去编?光是想名字,想身份证号的地区、生日、校验码,我的头都大了。对着电脑屏幕,敲了半天,手也酸了,眼睛也花了,才凑了几十条,而且还老是被系统报错说格式不对。旁边老婆看我抓耳挠腮的,还以为我被啥难题困住了,问我为啥不出去走走。我心里苦,这活儿接了就得干
硬着头皮,自己动手干!
后来我一拍大腿,他娘的,自己动手丰衣足食!反正我以前也捣鼓过一些小脚本,这不就是把一些规律整合起来,然后随机生成嘛说干就干,我那几天基本上除了吃饭睡觉,就是钻进电脑里研究这事儿。
-
先搞身份证号:
身份证号这东西,看着一串数字,里面门道不少。前面六位是地区码,中间八位是生日,再三位是顺序码,一位是校验码。我就先去网上找了些比较常见的地区码,什么北京上海广东的,列了一大堆。生日好说,随机生成个范围内的年份、月份、日期就行。顺序码也简单,无脑随机三个数字。最麻烦的就是那个校验码。这玩意儿不是随便乱设的,它有自己的算法。我当时就百度了一下“身份证校验码算法”,看着一堆公式头大,但硬着头皮也得看。我也不管他什么高深理论,就照着那个计算方式,一步一步地去弄。不是让你真的去理解背后的数学原理,而是把那个“公式”给“翻译”成我能用的方式。
-
再搞姓名:
姓名就更没谱了。总不能叫“张三李四王五”一直排下去?那样也太假了。我想了个笨办法,就是找了份“百家姓”的列表,然后又找了些常见的单字和双字的名字。把姓和名字分开,然后随机组合。比如,随机选个姓“王”,再随机选个字“芳”,或者“建国”。这样组合出来,虽然不保证每个都特别自然,但至少比“AAA”,“BBB”强多了,看起来像那么回事。
-
拼起来:
把这些零散的东西,我写了个简单的脚本,也不复杂,就是一段一段的逻辑。先生成一个地区码,再生成一个日期,接着生成个随机顺序码,根据前面这些,算出那个魔鬼校验码,咔嚓一下,一个身份证号就出来了。名字也是一样,随机拼凑。然后就让它跑跑,跑个几百上千次,每次都把结果存到一个文件里。刚开始那会儿,因为校验码老是算错,或者名字组合出来太奇怪,跑出来一堆“废品”,我一个劲儿地调,一个劲儿地试错,中间好几次都想放弃了。
终于搞定,柳暗花明
可算是皇天不负有心人,折腾了差不多三天,终于让我搞定了一个能用的版本。脚本一跑,哗几分钟,500个看起来真真假假的身份证号和姓名就整整齐齐地躺在我的电脑里了!我当时那个心情,简直比中彩票还开心。赶紧把文件发给那哥们儿,他那边一跑测试,说这数据太给力了,解决了他的大麻烦。听他这么一说,我也觉得这三天没白熬。
经过这事儿,我才发现,很多时候我们不是没有办法,而是没逼到那份儿上。这种生成测试数据的需求,可能很多人都遇到过,但又苦于没有好的工具或思路。我寻思着,既然我都踩过这坑了,也整明白了怎么搞,干脆就把我的这个思路和大概的“土方法”给整理出来。虽然不是啥高大上的技术,但胜在实用,能解决实际问题。就像我那会儿,要是有人能给我点指点,估计也能少走不少弯路。
所以我就是想把我的这段“折腾史”分享出来,希望对那些跟我一样,需要大量“看起来真实的”测试数据的朋友们,能有点启发。你们要的那些身份信息,也不难搞,主要就是抓住它背后的规律,再用点笨办法去实现。等我把这些思路再整理得更细致点,有机会再把那个生成脚本的简化版也分享出来,到时候你们就可以直接“拿走”用了。真的,能帮到大家,我也挺开心的。