CN110874308B - 一种生成唯一值的方法和装置 - Google Patents

一种生成唯一值的方法和装置 Download PDF

Info

Publication number
CN110874308B
CN110874308B CN201811010992.0A CN201811010992A CN110874308B CN 110874308 B CN110874308 B CN 110874308B CN 201811010992 A CN201811010992 A CN 201811010992A CN 110874308 B CN110874308 B CN 110874308B
Authority
CN
China
Prior art keywords
unique value
test program
prefix
server
thread
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811010992.0A
Other languages
English (en)
Other versions
CN110874308A (zh
Inventor
樊宇
邱鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201811010992.0A priority Critical patent/CN110874308B/zh
Publication of CN110874308A publication Critical patent/CN110874308A/zh
Application granted granted Critical
Publication of CN110874308B publication Critical patent/CN110874308B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种生成唯一值的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据测试程序的测试执行机的服务器IP和子网掩码,以及测试程序的进程号和线程号,获得唯一值前缀;在测试程序执行过程中,累加测试程序的执行次数,作为唯一值后缀,根据测试程序当次执行的唯一值后缀和所述唯一值前缀生成该当次测试程序执行的唯一值。该实施方式能够避免唯一值不唯一的问题发生,并且不影响性能测试的性能指标。

Description

一种生成唯一值的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种生成唯一值的方法和装置。
背景技术
在性能测试领域经常遇到生成唯一值的问题,一般采用两种方法实现唯一值的生成,一种是利用第三方软件,累加生成,通过加锁和远程过程调用的方式获得;另一种方法是采用比较精准的时间,如用微秒作为单位生成时间序列来作为唯一值。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:基于加锁的远程过程调用,可以获得全局唯一值,但加锁和远程过程调用会占用一定的时间,会影响性能测试的性能指标。基于精准时间,获得的唯一值,在跨进程和跨服务器的并发时,可能会产生全局不唯一的情况,此时需要调用远程过程方式查询唯一值是否唯一,如果有重复值,则丢弃,会带来性能损失。
因此,亟需一种生成唯一值的方法和装置,能够避免唯一值不唯一的问题发生,并且不影响性能测试的性能指标。
发明内容
有鉴于此,本发明实施例提供一种生成唯一值的方法和装置,能够避免唯一值不唯一的问题发生,并且不影响性能测试的性能指标。
为实现上述目的,根据本发明实施例的一个方面,提供了一种生成唯一值的方法,包括:
根据测试程序的测试执行机的服务器IP和子网掩码,以及测试程序的进程号和线程号,获得唯一值前缀;
在测试程序执行过程中,累加测试程序的执行次数,作为唯一值后缀,根据测试程序当次执行的唯一值后缀和所述唯一值前缀生成该当次测试程序执行的唯一值。
可选的,所述唯一值前缀包括:服务器前缀数、进程前缀数和线程前缀数;
所述根据测试程序的测试执行机的服务器IP和子网掩码,以及测试程序的进程号和线程号,以获得唯一值前缀包括:
在测试程序的进程启动时,获取测试程序的测试执行机的服务器IP和子网掩码,生成服务器前缀数,以及获取测试程序的进程号,生成进程前缀数;
在测试程序的线程启动后,获取测试程序的线程号,生成线程前缀数。
可选的,所述获取测试程序的测试执行机的服务器IP和子网掩码,生成服务器前缀数包括:
将服务器IP和子网掩码的每个数字转换为设定位数的二进制数,该设定位数大于等于8位;
将服务器IP的每个二进制数与子网掩码的对应二进制数作或运算,以得到或运算结果,然后将该或运算结果的每个二进制数再与子网掩码的对应二进制数作异或运算,以得到异或运算结果;
将该异或运算结果转换为十进制数,对所有数字求和,获得所述服务器前缀数。
可选的,所述根据测试程序当次执行的唯一值后缀和所述唯一值前缀生成该当次测试程序执行的唯一值包括:
将服务器前缀数、进程前缀数、线程前缀数和测试程序当次执行的执行次数组成字符串,以生成数值型唯一值,在该字符串中,每两个数字之间设置有间隔数字,以区分该字符串中的服务器前缀数、进程前缀数、线程前缀数和执行次数。
可选的,所述作为唯一值后缀,根据测试程序当次执行的唯一值后缀和所述唯一值前缀生成该当次测试程序执行的唯一值还包括:
将所述数值型唯一值转换为设定进制数字,所述设定进制大于十进制;
根据该设定进制数字的每一位数的数值,将该设定进制数字的每一位数替换为非数值字符,以得到非数值型唯一值。
为实现上述目的,根据本发明实施例的另一个方面,还提供了一种生成唯一值的装置,包括:
前缀获取模块,用于根据测试程序的测试执行机的服务器IP和子网掩码,以及测试程序的进程号和线程号,获得唯一值前缀;
唯一值生成模块,用于在测试程序执行过程中,累加测试程序的执行次数,作为唯一值后缀,根据测试程序当次执行的唯一值后缀和所述唯一值前缀生成该当次测试程序执行的唯一值。
可选的,所述唯一值前缀包括:服务器前缀数、进程前缀数和线程前缀数;
所述前缀获取模块进一步用于在测试程序的进程启动时,获取测试程序的测试执行机的服务器IP和子网掩码,生成服务器前缀数,以及获取测试程序的进程号,生成进程前缀数;
在测试程序的线程启动后,获取测试程序的线程号,生成线程前缀数。
可选的,所述唯一值生成模块进一步用于将服务器IP和子网掩码的每个数字转换为设定位数的二进制数,该设定位数大于等于8位;
将服务器IP的每个二进制数与子网掩码的对应二进制数作或运算,以得到或运算结果,然后将该或运算结果的每个二进制数再与子网掩码的对应二进制数作异或运算,以得到异或运算结果;
将该异或运算结果转换为十进制数,对所有数字求和,获得所述服务器前缀数。
可选的,所述唯一值生成模块进一步用于将服务器前缀数、进程前缀数、线程前缀数和测试程序当次执行的执行次数组成字符串,以生成数值型唯一值,在该字符串中,每两个数字之间设置有间隔数字,以区分该字符串中的服务器前缀数、进程前缀数、线程前缀数和执行次数。
可选的,所述唯一值生成模块进一步用于将所述数值型唯一值转换为设定进制数字,所述设定进制大于十进制;
根据该设定进制数字的每一位数的数值,将该设定进制数字的每一位数替换为非数值字符,以得到非数值型唯一值。
为实现上述目的,根据本发明实施例的另一个方面,还提供了一种生成唯一值的电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明提供的生成唯一值的方法。
为实现上述目的,根据本发明实施例的另一个方面,还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的生成唯一值的方法。
上述本发明提供的生成唯一值的方法和装置,累加过程在各线程内进行,不需要进行累加的加锁,也没有远程方程过程调用的时间损失,调用操作***的应用程序接口也是在进程和线程初始化时进行的一次即可,也不影响性能测试,不需要考虑性能测试脚本的执行时间。由于唯一值中未采用时间序列值,其最终唯一值长度比较小,可以适用于更多的场景。其中还可以将数值型唯一值压缩转换为非数值型唯一值,压缩过程放在性能测试脚本调用前执行,也不需要远程过程调用,不影响性能测试的运行时间,由于压缩的字符串整体变短,可以节省一部分网络带宽,特别是该生成的唯一值不在性能测试脚本中生成唯一数据的时候,也可以达到一些业务数据唯一值长度限制的要求。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明实施例提供的生成唯一值的方法的主要流程的示意图;
图2是本发明实施例提供的生成唯一值的装置的主要模块的示意图;
图3是本发明实施例可以应用于其中的示例性***架构图;
图4是适于用来实现本发明实施例的电子设备的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本发明实施例提供了一种生成唯一值的方法,该方法可以应用于性能测试的应用场景中,在该场景中,在每次调用性能测试的脚本代码时,生成该次调用的唯一值,以作为性能测试代码的入参。
如图1所示,该生成唯一值的方法包括:步骤S101和步骤S102。在步骤S101中,根据测试程序的测试执行机的服务器IP和子网掩码,以及测试程序的进程号和线程号,以获得唯一值前缀。
服务器IP和子网掩码可以用来区别不同的测试执行机,即服务器,进程号和线程号可以用来区别测试执行机上不同的进程号和线程号。因此,对于一个服务器上在某进程内的,某线程上执行的测试程序,唯一值前缀是唯一的。
进而,在步骤S102中,在测试程序执行过程中,累加测试程序的执行次数,作为唯一值后缀,根据测试程序当次执行的唯一值后缀和唯一值前缀生成该当次测试程序执行的唯一值。
操作***启动进程后,为线程初始化一个线程局部变量,用于对调用次数计数,该值初始化为0。在线程调用测试程序(性能测试的脚本代码)时,将线程中的该调用次数变量累加1,然后调用性能测试代码,重复上述过程,直到性能测试结束为止。
对于一个服务器上在某进程内的,某线程上执行的测试程序,其每次执行的位置值后缀是唯一的,因此通过唯一值前缀和后缀的组合得到唯一值,对任意测试程序每次执行时都是唯一的。
在本发明的一种实施方式中,唯一值前缀包括:服务器前缀数、进程前缀数和线程前缀数。
步骤S101中,根据测试程序的测试执行机的服务器IP和子网掩码,以及测试程序的进程号和线程号,以获得唯一值前缀的过程具体为:
在测试程序的进程启动时,获取测试程序的测试执行机的服务器IP和子网掩码,生成服务器前缀数,以及获取测试程序的进程号,生成进程前缀数。
其中,生成服务器前缀数的过程具体为:首先,将服务器IP和子网掩码的每个数字转换为设定位数的二进制数,该设定位数大于等于8位。然后将服务器IP的每个二进制数与子网掩码的对应二进制数作或运算,以得到或运算结果,将该或运算结果的每个二进制数再与子网掩码的对应二进制数作异或运算,以得到异或运算结果。
将该异或运算结果转换为十进制数,对所有数字求和,获得服务器前缀数。
性能测试执行时,会分配不同的性能测试执行机来进行并发的性能测试。性能测试进程启动时,首先获得其服务器的IP和子网掩码,例如IP地址是192.168.0.100,子网掩码为255.255.255.0。将两者均转换为二进制数,每组8位,不足位置前面补0。
IP地址为:11000000.10101000,00000000.01100100;
子网掩码为:11111111.11111111.11111111.00000000;
两者做位或运算,其结果为11111111.11111111,11111111.01100100;
再次将该结果与子网掩码作异或运算,得到:
00000000.00000000.00000000.01100100;
最后将该二进制转换为10进制数为0.0.0.100,每组数字相加即0+0+0+100为100,求和结果作为该唯一值的服务器前缀数,该值用于区别不同服务器产生的唯一值,该值放入全局变量中。
在测试程序的线程启动后,获取测试程序的线程号,将生成线程前缀数。
本发明上述对于服务器的IP和子网掩码的处理,主要的目的在于保持服务器的IP和子网掩码的唯一性的同时,将地址尽量缩短。
操作***启动进程后,至少会有一个主线程,通常性能测试时会开启多线程,以达到更好的并发目的,也可以真实的模拟真实性能调用环境,在线性测试线程启动时,利用操作***的应用程序接口或开发语言框架获得线程号,将该线程号放入线程局部变量中。
然后线程会初始化一个线程局部变量,用于调用次数计数,该值初始化为0。
在本发明的一种实施方式中,根据测试程序当次执行的唯一值后缀和唯一值前缀生成该当次测试程序执行的唯一值的过程具体为:将服务器前缀数、进程前缀数、线程前缀数和测试程序当次执行的执行次数组成字符串,以生成数值型唯一值,在该字符串中,每两个数字之间设置有间隔数字,以区分该字符串中的服务器前缀数、进程前缀数、线程前缀数和执行次数。
例如,该字符串为服务器前缀值+0+进程号前缀值+0+线程号前缀值+0+调用次数,中间的0值即间隔数字,用于区分不同的数据项,以避免不同数据项数据结合后导致结果不唯一的情况,例如进程号为101,线程号为11,和进程号为1011,线程号为1的两组值相结合,如果不区分数据项的话,结果都是10111,而对于本方案中的相关变量而言,不会存在0开头的数字,因此在这里采用数字0作为数据项的间隔数字,而不影响整体为唯一数据的特征。
上述本发明提供的生成唯一值的方法,累加过程在各线程内进行,不需要进行累加的加锁,也没有远程方程过程调用的时间损失,调用操作***的应用程序接口也是在进程和线程初始化时进行的一次即可,也不影响性能测试,不需要考虑性能测试脚本的执行时间。由于唯一值中未采用时间序列值,其最终唯一值长度比较小,可以适用于更多的场景。
对于非数值型唯一值生成,本方案还可以将该十进制数字转换压缩。压缩方法如下:将生成唯一值转换为设定进制数字,设定进制大于十进制,然后根据该设定进制数字的每一位数的数值,将该设定进制数字的每一位数替换为非数值字符,以得到非数值型唯一值。
根据压缩字典的转换规则将设定进制每位数字大小给出不同的字符,得到结果字符串,即压缩后的唯一值编码。
该压缩过程放在性能测试脚本调用前执行,也不需要远程过程调用,不影响性能测试的运行时间,由于压缩的字符串整体变短,可以节省一部分网络带宽,特别是该生成的唯一值不在性能测试脚本中生成唯一数据的时候,也可以达到一些业务数据唯一值长度限制的要求。
本发明实施例还提供一种生成唯一值的装置,如图2所示,该装置200包括:前缀获取模块201和唯一值生成模块202。
前缀获取模块201用于根据测试程序的测试执行机的服务器IP和子网掩码,以及测试程序的进程号和线程号,获得唯一值前缀。
唯一值生成模块202用于在测试程序执行过程中,累加测试程序的执行次数,作为唯一值后缀,根据测试程序当次执行的唯一值后缀和唯一值前缀生成该当次测试程序执行的唯一值。
在本发明中,唯一值前缀包括:服务器前缀数、进程前缀数和线程前缀数。
前缀获取模块进一步用于在测试程序的进程启动时,获取测试程序的测试执行机的服务器IP和子网掩码,生成服务器前缀数,以及获取测试程序的进程号,生成进程前缀数。
在测试程序的线程启动后,获取测试程序的线程号,生成线程前缀数。
在本发明中,唯一值生成模块进一步用于将服务器IP和子网掩码的每个数字转换为设定位数的二进制数,该设定位数大于等于8位。
将服务器IP的每个二进制数与子网掩码的对应二进制数作或运算,以得到或运算结果,然后将该或运算结果的每个二进制数再与子网掩码的对应二进制数作异或运算,以得到异或运算结果。
将该异或运算结果转换为十进制数,对所有数字求和,获得服务器前缀数。
在本发明中,唯一值生成模块进一步用于将服务器前缀数、进程前缀数、线程前缀数和测试程序当次执行的执行次数组成字符串,以生成数值型唯一值,在该字符串中,每两个数字之间设置有间隔数字,以区分该字符串中的服务器前缀数、进程前缀数、线程前缀数和执行次数。
在本发明中,唯一值生成模块进一步用于将数值型唯一值转换为设定进制数字,设定进制大于十进制。
根据该设定进制数字的每一位数的数值,将该设定进制数字的每一位数替换为非数值字符,以得到非数值型唯一值。
上述本发明提供的生成唯一值的方法和装置,累加过程在各线程内进行,不需要进行累加的加锁,也没有远程方程过程调用的时间损失,调用操作***的应用程序接口也是在进程和线程初始化时进行的一次即可,也不影响性能测试,不需要考虑性能测试脚本的执行时间。由于唯一值中未采用时间序列值,其最终唯一值长度比较小,可以适用于更多的场景。其中还可以将数值型唯一值压缩转换为非数值型唯一值,压缩过程放在性能测试脚本调用前执行,也不需要远程过程调用,不影响性能测试的运行时间,由于压缩的字符串整体变短,可以节省一部分网络带宽,特别是该生成的唯一值不在性能测试脚本中生成唯一数据的时候,也可以达到一些业务数据唯一值长度限制的要求。
图3示出了可以应用本发明实施例的生成唯一值的方法或生成唯一值的装置的示例性***架构300。
如图3所示,***架构300可以包括终端设备301、302、303,网络304和服务器305。网络304用以在终端设备301、302、303和服务器305之间提供通信链路的介质。网络304可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备301、302、303通过网络304与服务器305交互,以接收或发送消息等。终端设备301、302、303上可以安装有各种通讯客户端应用。
终端设备301、302、303可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器305可以是提供各种服务的服务器,例如根据测试程序的测试执行机的服务器IP和子网掩码,以及测试程序的进程号和线程号,以及测试程序的执行次数,生成测试程序执行的唯一值的后台管理服务器。
需要说明的是,本发明实施例所提供的生成唯一值的方法一般由服务器305执行,相应地,生成唯一值的装置一般设置于服务器305中。
应该理解,图3中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图4,其示出了适于用来实现本发明实施例的终端设备的计算机***400的结构示意图。图4示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机***400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储部分408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有***400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
以下部件连接至I/O接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信处理。驱动器410也根据需要连接至I/O接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。在该计算机程序被中央处理单元(CPU)401执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括前缀获取模块和唯一值生成模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
根据测试程序的测试执行机的服务器IP和子网掩码,以及测试程序的进程号和线程号,获得唯一值前缀;
在测试程序执行过程中,累加测试程序的执行次数,作为唯一值后缀,根据测试程序当次执行的唯一值后缀和所述唯一值前缀生成该当次测试程序执行的唯一值。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (12)

1.一种生成唯一值的方法,其特征在于,包括:
根据测试程序的测试执行机的服务器IP和子网掩码,以及测试程序的进程号和线程号,获得唯一值前缀;
在测试程序执行过程中,累加测试程序的执行次数,作为唯一值后缀,根据测试程序当次执行的唯一值后缀和所述唯一值前缀生成该当次测试程序执行的唯一值;其中,启动进程后,为线程初始化一个线程局部变量,用于对调用次数计数。
2.根据权利要求1所述的方法,其特征在于,所述唯一值前缀包括:服务器前缀数、进程前缀数和线程前缀数;
所述根据测试程序的测试执行机的服务器IP和子网掩码,以及测试程序的进程号和线程号,获得唯一值前缀包括:
在测试程序的进程启动时,获取测试程序的测试执行机的服务器IP和子网掩码,生成服务器前缀数,以及获取测试程序的进程号,生成进程前缀数;
在测试程序的线程启动后,获取测试程序的线程号,生成线程前缀数。
3.根据权利要求2所述的方法,其特征在于,所述获取测试程序的测试执行机的服务器IP和子网掩码,生成服务器前缀数包括:
将服务器IP和子网掩码的每个数字转换为设定位数的二进制数,该设定位数大于等于8位;
将服务器IP的每个二进制数与子网掩码的对应二进制数作或运算,以得到或运算结果,然后将该或运算结果的每个二进制数再与子网掩码的对应二进制数作异或运算,以得到异或运算结果;
将该异或运算结果转换为十进制数,对所有数字求和,获得所述服务器前缀数。
4.根据权利要求1所述的方法,其特征在于,所述根据测试程序当次执行的唯一值后缀和所述唯一值前缀生成该当次测试程序执行的唯一值包括:
将服务器前缀数、进程前缀数、线程前缀数和测试程序当次执行的执行次数组成字符串,以生成数值型唯一值,在该字符串中,每两个数字之间设置有间隔数字,以区分该字符串中的服务器前缀数、进程前缀数、线程前缀数和执行次数。
5.根据权利要求4所述的方法,其特征在于,所述根据测试程序当次执行的唯一值后缀和所述唯一值前缀生成该当次测试程序执行的唯一值还包括:
将所述数值型唯一值转换为设定进制数字,所述设定进制大于十进制;
根据该设定进制数字的每一位数的数值,将该设定进制数字的每一位数替换为非数值字符,以得到非数值型唯一值。
6.一种生成唯一值的装置,其特征在于,包括:
前缀获取模块,用于根据测试程序的测试执行机的服务器IP和子网掩码,以及测试程序的进程号和线程号,获得唯一值前缀;
唯一值生成模块,用于在测试程序执行过程中,累加测试程序的执行次数,作为唯一值后缀,根据测试程序当次执行的唯一值后缀和所述唯一值前缀生成该当次测试程序执行的唯一值;其中,启动进程后,为线程初始化一个线程局部变量,用于对调用次数计数。
7.根据权利要求6所述的装置,其特征在于,所述唯一值前缀包括:服务器前缀数、进程前缀数和线程前缀数;
所述前缀获取模块进一步用于在测试程序的进程启动时,获取测试程序的测试执行机的服务器IP和子网掩码,生成服务器前缀数,以及获取测试程序的进程号,生成进程前缀数;
在测试程序的线程启动后,获取测试程序的线程号,生成线程前缀数。
8.根据权利要求7所述的装置,其特征在于,所述唯一值生成模块进一步用于将服务器IP和子网掩码的每个数字转换为设定位数的二进制数,该设定位数大于等于8位;
将服务器IP的每个二进制数与子网掩码的对应二进制数作或运算,以得到或运算结果,然后将该或运算结果的每个二进制数再与子网掩码的对应二进制数作异或运算,以得到异或运算结果;
将该异或运算结果转换为十进制数,对所有数字求和,获得所述服务器前缀数。
9.根据权利要求6所述的装置,其特征在于,所述唯一值生成模块进一步用于将服务器前缀数、进程前缀数、线程前缀数和测试程序当次执行的执行次数组成字符串,以生成数值型唯一值,在该字符串中,每两个数字之间设置有间隔数字,以区分该字符串中的服务器前缀数、进程前缀数、线程前缀数和执行次数。
10.根据权利要求9所述的装置,其特征在于,所述唯一值生成模块进一步用于将所述数值型唯一值转换为设定进制数字,所述设定进制大于十进制;
根据该设定进制数字的每一位数的数值,将该设定进制数字的每一位数替换为非数值字符,以得到非数值型唯一值。
11.一种生成唯一值的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
CN201811010992.0A 2018-08-31 2018-08-31 一种生成唯一值的方法和装置 Active CN110874308B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811010992.0A CN110874308B (zh) 2018-08-31 2018-08-31 一种生成唯一值的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811010992.0A CN110874308B (zh) 2018-08-31 2018-08-31 一种生成唯一值的方法和装置

Publications (2)

Publication Number Publication Date
CN110874308A CN110874308A (zh) 2020-03-10
CN110874308B true CN110874308B (zh) 2024-02-06

Family

ID=69715314

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811010992.0A Active CN110874308B (zh) 2018-08-31 2018-08-31 一种生成唯一值的方法和装置

Country Status (1)

Country Link
CN (1) CN110874308B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113239043B (zh) * 2021-05-17 2024-05-03 上海中通吉网络技术有限公司 在分布式***中高效生成唯一值的方法及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104025029A (zh) * 2011-12-30 2014-09-03 英特尔公司 唯一打包数据元素标识处理器、方法、***、和指令
CN104113435A (zh) * 2014-07-04 2014-10-22 广州华多网络科技有限公司 生成标识的方法及装置
CN106572165A (zh) * 2016-10-26 2017-04-19 宜人恒业科技发展(北京)有限公司 一种分布式全局唯一id应用方法
CN106657441A (zh) * 2017-01-11 2017-05-10 深圳证券通信有限公司 一种生成金融数据交换消息唯一包id的算法
CN106776932A (zh) * 2016-12-01 2017-05-31 湖北荆楚网络科技股份有限公司 一种在分布式***内生成唯一id的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180041224A1 (en) * 2016-08-04 2018-02-08 International Business Machines Corporation Data value suffix bit level compression

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104025029A (zh) * 2011-12-30 2014-09-03 英特尔公司 唯一打包数据元素标识处理器、方法、***、和指令
CN104113435A (zh) * 2014-07-04 2014-10-22 广州华多网络科技有限公司 生成标识的方法及装置
CN106572165A (zh) * 2016-10-26 2017-04-19 宜人恒业科技发展(北京)有限公司 一种分布式全局唯一id应用方法
CN106776932A (zh) * 2016-12-01 2017-05-31 湖北荆楚网络科技股份有限公司 一种在分布式***内生成唯一id的方法
CN106657441A (zh) * 2017-01-11 2017-05-10 深圳证券通信有限公司 一种生成金融数据交换消息唯一包id的算法

Also Published As

Publication number Publication date
CN110874308A (zh) 2020-03-10

Similar Documents

Publication Publication Date Title
CN108628898B (zh) 数据入库的方法、装置和设备
US20140089252A1 (en) Enhancing performance of extract, transform, and load (etl) jobs
CN108874825B (zh) 一种异常数据的校验方法和装置
CN111104776A (zh) 一种浮点数处理方法、装置及电子设备
CN111309304B (zh) 一种生成idl文件的方法、装置、介质和电子设备
CN110874308B (zh) 一种生成唯一值的方法和装置
CN112995199B (zh) 数据编解码方法、装置、传输***、终端设备及存储介质
CN111352957A (zh) 远程字典服务优化方法及相关设备
CN110795328A (zh) 一种接口测试方法和装置
CN107643906B (zh) 数据处理方法及装置
US8018359B2 (en) Conversion of bit lengths into codes
CN114968170A (zh) 浮点数的定和生成方法、相关装置及计算机程序产品
CN107547437B (zh) 应用识别方法及装置
CN113453371B (zh) 用于无线通信的方法、基站和计算机存储介质
CN111026629A (zh) 一种测试脚本自动生成的方法和装置
CN115063123A (zh) 智能制造方法、***及电子设备
CN111984612B (zh) 一种共享文件的方法、装置和***
CN112788075A (zh) 一种业务服务的监控方法和装置
CN113469683B (zh) 密钥存储方法、装置、电子设备和存储介质
CN107562442B (zh) 一种读取数据的方法和装置
CN113472565B (zh) 服务器功能的扩容方法、装置、设备和计算机可读介质
CN117312761B (zh) 一种数据片段处理时间计算方法及装置
CN111209042B (zh) 一种建立函数栈的方法、装置、介质和电子设备
CN112925573B (zh) 网页加载的方法、装置、设备和计算机可读介质
CN113741905A (zh) 接口文件扫描方法、装置、电子设备和计算机可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant