使用java生成UUID在测试过程中使用

UUID简介

UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。目前最广泛应用的UUID,是微软公司的全局唯一标识符(GUID),而其他重要的应用,则有Linux ext2/ext3文件系统、LUKS加密分区、GNOME、KDE、Mac OS X等等。另外我们也可以在e2fsprogs包中的UUID库找到实现。
UUID 的目的是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定。如此一来,每个人都可以建立不与其它人冲突的 UUID。在这样的情况下,就不需考虑数据库建立时的名称重复问题。目前最广泛应用的 UUID,即是微软的 Microsoft's Globally Unique Identifiers (GUIDs),而其他重要的应用,则有 Linux ext2/ext3 档案系统、LUKS 加密分割区、GNOME、KDE、Mac OS X 等等。(摘自百度百科

UUID组成

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字

UUID由以下几部分的组合:

(1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。

(2)时钟序列。

(3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。

UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。在ColdFusion中可以用CreateUUID()函数很简单地生成UUID,其格式为:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。而标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12),可以从cflib 下载CreateGUID() UDF进行转换。(摘自百度百科

UUID在测试过程中的使用

@Test
    public void GetUUID(){
        logger.info(UUID.randomUUID().toString());
    }

需要导包
import java.util.UUID;
输出的是这样一串

image.png

为了验证不会出现重复的ID,代码修改如下:

@Test
    public void GetUUID() throws Exception{
        for (int i = 0; i < 10; i++) {
            new Thread(() -> {
                while (true) {
                    logger.info(UUID.randomUUID().toString());
                }
            }).start();
        }
        Thread.sleep(10000);
    }

开启十个线程,跑十秒,结束后抽查生成的UUID,没有发现重复。适用于在测试过程中需要不重复的ID时使用。在2017年的时候还不知道这个,如果知道,当初性能测试过程中有一个新增数据,需要使用到ID,导致获取的ID重复,插入失败,性能可想而知,当时要知道这个应该会提供这种解决方案给研发。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • JAVA UUID 生成 GUID是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地...
    藝龍阅读 14,418评论 1 3
  • UUID含义是通用唯一识别码(Universally Unique Identifier),这是一个软件建构的标准...
    小拿_8eef阅读 7,982评论 0 0
  • 先来摘抄一段百度百科的资料:UUID含义是通用唯一识别码 (Universally Unique Identifi...
    Dosun阅读 12,666评论 0 5
  • 外面大雪纷飞,客栈里烫着一壶酒与几碟小菜,一个男人在自斟自饮。 门被一个红袍女子推开,风雪吹进来,小二忙把门栓上,...
    青灯古佛丶龙树阅读 4,340评论 0 0
  • 统计作为数学的分支,由于应用广,目前经常被拉出来作为独立的学科。统计在生物,金融和工程类领域都有应用。当然很多专业...
    旺妈聊留学阅读 4,377评论 0 4

友情链接更多精彩内容