CN106776264A - 应用程序代码的测试方法和装置 - Google Patents

应用程序代码的测试方法和装置 Download PDF

Info

Publication number
CN106776264A
CN106776264A CN201510829034.6A CN201510829034A CN106776264A CN 106776264 A CN106776264 A CN 106776264A CN 201510829034 A CN201510829034 A CN 201510829034A CN 106776264 A CN106776264 A CN 106776264A
Authority
CN
China
Prior art keywords
value
calculated
application code
preset value
preset
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.)
Granted
Application number
CN201510829034.6A
Other languages
English (en)
Other versions
CN106776264B (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 Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum 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 Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201510829034.6A priority Critical patent/CN106776264B/zh
Publication of CN106776264A publication Critical patent/CN106776264A/zh
Application granted granted Critical
Publication of CN106776264B publication Critical patent/CN106776264B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种应用程序代码的测试方法和装置。其中,该方法包括:构建用于运行应用程序代码的本地模拟分布式系统;在本地模拟分布式系统上测试应用程序代码。本申请解决了现有技术中基于分布式计算的应用程序代码的测试效率低,且难以调试的技术问题。

Description

应用程序代码的测试方法和装置
技术领域
本申请涉及数据处理领域,具体而言,涉及一种应用程序代码的测试方法和装置。
背景技术
网站分析中,从网站采集过来的数据都发往指定的服务器,有时数据量会很大,所以会采用分布式的计算。
在开发通过分布式计算来分析网站日志的代码过程中,需要对开发的代码进行测试,如果将代码打包,放到真正的分布式集群上去执行测试的话,测试效率很低,并且由于无法利用程序调试工具对代码进行调试,如果代码出问题了很难去调试。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种应用程序代码的测试方法和装置,以至少解决现有技术中基于分布式计算的应用程序代码的测试效率低,且难以调试的技术问题。
根据本申请实施例的一个方面,提供了一种应用程序代码的测试方法,包括:构建用于运行所述应用程序代码的本地模拟分布式系统;在所述本地模拟分布式系统上测试所述应用程序代码。
进一步地,在所述本地模拟分布式系统上测试所述应用程序代码包括:获取用于对所述应用程序代码进行测试的日志文件;在所述本地模拟分布式系统上运行所述应用程序代码,对所述日志文件进行计算,得到计算值;将所述计算值与预设值进行比较,其中,所述预设值为用于验证所述应用程序代码的值;如果所述计算值与所述预设值相同,确定所述应用程序代码正确;如果所述计算值与所述预设值不同,确定所述应用程序代码错误。
进一步地,所述方法还包括:选择目标字段,所述目标字段为所述日志文件中用于对所述应用程序代码进行测试的字段;根据预设计算方式,对所述目标字段进行计算,得到所述预设值。
进一步地,所述目标字段为多个,在所述本地模拟分布式系统上运行所述应用程序代码,对所述日志文件进行计算,得到计算值包括:在所述本地模拟分布式系统上运行所述应用程序代码,对多个所述目标字段分别进行计算,得到多个所述计算值,其中,多个所述计算值与多个所述目标字段一一对应,根据预设计算方式,对所述目标字段进行计算,得到所述预设值包括:根据所述预设计算方式,对多个所述目标字段分别进行计算,得到多个所述预设值,其中,多个所述预设值与多个所述目标字段一一对应,在得到多个所述计算值之后,所述方法还包括:将多个所述计算值以列式存储格式存储在所述本地模拟分布式系统,将所述计算值与预设值进行比较包括:从所述本地模拟分布式系统中查询多个所述计算值;以及将查询到的多个所述计算值分别与多个所述预设值一一对应地进行比较。
进一步地,如果所述计算值与所述预设值相同,确定所述应用程序代码正确包括:如果比较出计算值B1至计算值Bm与预设值C1至预设值Cm均一一对应相同,确定所述应用程序代码正确,其中,计算值Bi和预设值Ci均与目标字段Ai相对应,i依次取1至m,目标字段A1至目标字段Am为构成多个所述目标字段,所述计算值B1至所述计算值Bm构成多个所述计算值,所述预设值C1至所述预设值Cm构成多个所述预设值,如果所述计算值与所述预设值不同,确定所述应用程序代码错误包括:如果比较出计算值Br与预设值Cr不相同,确认所述应用程序代码错误,其中,1≤r≤m。
根据本申请实施例的另一方面,还提供了一种应用程序代码的测试装置,包括:构建单元,用于构建用于运行所述应用程序代码的本地模拟分布式系统;测试单元,用于在所述本地模拟分布式系统上测试所述应用程序代码。
进一步地,所述测试单元包括:获取子单元,用于获取用于对所述应用程序代码进行测试的日志文件;第一计算子单元,用于在所述本地模拟分布式系统上运行所述应用程序代码,对所述日志文件进行计算,得到计算值;比较子单元,用于将所述计算值与预设值进行比较,其中,所述预设值为用于验证所述应用程序代码的值;第一确定子单元,用于当所述比较子单元比较出所述计算值与所述预设值相同时,确定所述应用程序代码正确;第二确定子单元,用于当所述比较子单元比较出所述计算值与所述预设值不同时,确定所述应用程序代码错误。
进一步地,所述装置还包括:选择单元,用于选择目标字段,所述目标字段为所述日志文件中用于对所述应用程序代码进行测试的字段;计算单元,用于根据预设计算方式,对所述目标字段进行计算,得到所述预设值。
进一步地,所述目标字段为多个,所述第一计算子单元包括:计算模块,用于在所述本地模拟分布式系统上运行所述应用程序代码,对多个所述目标字段分别进行计算,得到多个所述计算值,其中,多个所述计算值与多个所述目标字段一一对应,所述计算单元包括:第二计算子单元,用于根据所述预设计算方式,对多个所述目标字段分别进行计算,得到多个所述预设值,其中,多个所述预设值与多个所述目标字段一一对应,所述装置还包括:存储单元,用于在所述计算模块计算得到多个所述计算值之后,将多个所述计算值以列式存储格式存储在所述本地模拟分布式系统,所述比较子单元包括:查询模块,用于从所述本地模拟分布式系统中查询多个所述计算值;以及比较模块,用于将查询到的多个所述计算值分别与多个所述预设值一一对应地进行比较。
进一步地,所述第一确定子单元包括:第一确定模块,用于当所述比较模块比较出计算值B1至计算值Bm与预设值C1至预设值Cm均一一对应相同时,确定所述应用程序代码正确,其中,计算值Bi和预设值Ci均与目标字段Ai相对应,i依次取1至m,目标字段A1至目标字段Am为构成多个所述目标字段,所述计算值B1至所述计算值Bm构成多个所述计算值,所述预设值C1至所述预设值Cm构成多个所述预设值,所述第二确定子单元包括:第二确定模块,用于当所述比较模块比较出计算值Br与预设值Cr不相同时,确认所述应用程序代码错误,其中,1≤r≤m。
在本申请实施例中,采用构建用于运行应用程序代码的本地模拟分布式系统,在本地模拟分布式系统上测试应用程序代码,通过构建本地模拟分布式系统,在本地模拟分布式系统上测试应用程序代码,当应用程序代码出错时,可以使用程序调试工具对代码进行调试,避免了将应用程序代码放到真正的分布式集群上测试时效率低且难以调试的技术问题,从而实现了高效率地测试基于分布式计算的应用程序代码的技术效果,进而解决了现有技术中基于分布式计算的应用程序代码的测试效率低,且难以调试的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的应用程序代码的测试方法的流程图;以及
图2是根据本申请实施例的应用程序代码的测试装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先对本申请实施例所涉及的技术术语作如下解释:
Hadoop:Hadoop是一种分析和处理大数据的软件平台,是Appach的一个用Java语言所实现的开源软件的加框,在大量计算机组成的集群当中实现了对于海量的数据进行的分布式计算。
Cookie:Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。
根据本申请实施例,提供了一种应用程序代码的测试方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例的应用程序代码的测试方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,构建用于运行应用程序代码的本地模拟分布式系统。可以利用Hadoop的minicluster中的MiniDFSCluster来构建本地模拟分布式系统。
步骤S104,在本地模拟分布式系统上测试应用程序代码。
构建本地模拟分布式系统,该本地模拟分布式系统用于测试应用程序代码的正确性。本申请实施例中的应用程序代码应用于分布式系统中,但是如果将应用程序代码放到真正的分布式集群上去测试的话,效率会很低,如果代码出问题了很难去调试。
通过构建本地模拟分布式系统,在本地模拟分布式系统上测试应用程序代码,当应用程序代码出错时,可以使用程序调试工具对代码进行调试,避免了将应用程序代码放到真正的分布式集群上测试时效率低且难以调试的技术问题,从而实现了高效率地测试基于分布式计算的应用程序代码的技术效果,进而解决了现有技术中基于分布式计算的应用程序代码的测试效率低,且难以调试的技术问题。
可选地,在本地模拟分布式系统上测试应用程序代码包括:获取用于对应用程序代码进行测试的日志文件;在本地模拟分布式系统上运行应用程序代码,对日志文件进行计算,得到计算值;将计算值与预设值进行比较,其中,预设值为用于验证应用程序代码的值;如果计算值与预设值相同,确定应用程序代码正确;如果计算值与预设值不同,确定应用程序代码错误。
日志文件用于对应用程序代码进行测试。在本地模拟分布式系统上运行应用程序代码,利用分布式计算的本地方式,对日志文件进行计算,得到计算值。
如果计算值与预设值相同,说明应用程序代码正确;如果计算值与预设值不同,说明应用程序代码错误,需要对应用程序代码进行修改。
预设值和计算值可以为IP地址,也可以为Cookie的值,等等。
例如,预设值是123,在本地模拟分布式系统上运行应用程序代码,对日志文件进行计算,得到的计算值是453,预设值与计算值不相等,因此应用程序代码错误。
再例如,预设值是191.255.255.255,在本地模拟分布式系统上运行应用程序代码,对日志文件进行计算,得到的计算值也是191.255.255.255,预设值与计算值相等,因此应用程序代码正确。
可选地,本申请实施例所提供的应用程序代码的测试方法还包括:选择目标字段,目标字段为日志文件中用于对应用程序代码进行测试的字段;根据预设计算方式,对目标字段进行计算,得到预设值。选择日志文件中的某些字段,根据预设计算方式,对日志文件中选中的字段进行计算,得到预设值。预设计算方式与希望应用程序代码对字段进行操作的计算方式相同。
可选地,目标字段为多个,在本地模拟分布式系统上运行应用程序代码,对日志文件进行计算,得到计算值包括:在本地模拟分布式系统上运行应用程序代码,对多个目标字段分别进行计算,得到多个计算值,其中,多个计算值与多个目标字段一一对应,根据预设计算方式,对目标字段进行计算,得到预设值包括:根据预设计算方式,对多个目标字段分别进行计算,得到多个预设值,其中,多个预设值与多个目标字段一一对应,在得到多个计算值之后,本申请实施例所提供的应用程序代码的测试方法还包括:将多个计算值以列式存储格式存储在本地模拟分布式系统,将计算值与预设值进行比较包括:从本地模拟分布式系统中查询多个计算值;以及将查询到的多个计算值分别与多个预设值一一对应地进行比较。
选择日志文件中的多个字段,被选中的字段即为目标字段,目标字段为多个。在本地模拟分布式系统上运行应用程序代码,对多个目标字段进行计算,得到多个计算值。根据预设计算方式,对多个目标字段分别进行计算,得到多个预设值。每个目标字段都有一个计算值和一个预设值与之对应。
将多个计算值以列式存储格式存储在本地模拟分布式系统,可以选择Parquet列式存储格式存储。相对于行式存储,列式存储的优点有:可以跳过不符合条件的数据,只读取需要的数据;由于同一列的数据类型是一样的,可以使用更高效的压缩编码(例如RunLength Encoding和Delta Encoding)进一步节约存储空间;只读取需要的列,支持向量运算,能够获取更好的扫描性能。
可选地,如果计算值与预设值相同,确定应用程序代码正确包括:如果比较出计算值B1至计算值Bm与预设值C1至预设值Cm均一一对应相同,确定应用程序代码正确,其中,计算值Bi和预设值Ci均与目标字段Ai相对应,i依次取1至m,目标字段A1至目标字段Am为构成多个目标字段,计算值B1至计算值Bm构成多个计算值,预设值C1至预设值Cm构成多个预设值,如果计算值与预设值不同,确定应用程序代码错误包括:如果比较出计算值Br与预设值Cr不相同,确认应用程序代码错误,其中,1≤r≤m。
有可能出现的一种情况是:应用程序代码某一条或某几条语句出错了,但是对日志文件某些字段的计算值与预设值相同。此时,如果根据一个预设值与其对应的计算值相同而判断应用程序代码正确,准确度不高。
为避免上述问题,本申请实施例所提供的应用程序代码的测试方法中,预设值与计算值均为多个。假设目标字段的数量为m,目标字段A1至目标字段Am构成m个目标字段,计算值B1至计算值Bm构成m个计算值,预设值C1至预设值Cm构成m个预设值,计算值B1和预设值C1均与目标字段A1相对应,计算值B2和预设值C2均与目标字段A2相对应,计算值B3和预设值C3均与目标字段A3相对应,以此类推,计算值Bm和预设值Cm均与目标字段Am相对应。
依次比较目标字段A1至目标字段Am这m个目标字段所对应的计算值和预设值是否相等,即比较计算值B1和预设值C1是否相等,比较计算值B2和预设值C2是否相等,比较计算值B3和预设值C3是否相等,以此类推,比较计算值Bm和预设值Cm是否相等。如果经过比较,得出目标字段A1至目标字段Am这m个目标字段所对应的计算值和预设值均相等,则说明应用程序代码是正确的。如果经过比较,得出目标字段A1至目标字段Am这m个目标字段中有一个或几个目标字段的计算值和预设值不相等,则说明应用程序代码有错误。
表1
表2
例如,如表1所示,一共有6个预设值,这6个预设值对应6个目标字段,分别为目标字段1、目标字段2、目标字段3、目标字段4、目标字段5和目标字段6。对目标字段1使用预设计算方法,计算出来的预设值是191.255.255.235,在本地模拟分布式系统上运行应用程序代码,对目标字段1进行计算,得到计算值191.255.255.235,故目标字段1的预设值与计算值相同。同理,从表1中可以看出,目标字段1至目标字段6中,每个目标字段的预设值都与计算值相同,因此,应用程序代码是正确的。
再例如,如表2所示,一共有4个预设值,这4个预设值对应4个目标字段,分别为目标字段1、目标字段2、目标字段3和目标字段4。对目标字段4使用预设计算方法,计算出来的预设值是191.255.255.240,在本地模拟分布式系统上运行应用程序代码,对目标字段4进行计算,得到计算值191.255.255.230,故目标字段4的预设值与计算值不相同,故应用程序代码中存在错误。
通过将多个目标字段的预设值与计算值进行比较,只有在每一个目标字段的预设值和计算值都相等的情况下,才判断应用程序代码正确,当存在目标字段的预设值和计算值不相等的情况下,判断应用程序代码有错误,这样大大提高测试结果的准确度。
根据本申请实施例,还提供了一种应用程序代码的测试装置。该应用程序代码的测试装置可以执行上述应用程序代码的测试方法,上述应用程序代码的测试方法也可以通过该应用程序代码的测试装置实施。
图2是根据本申请实施例的应用程序代码的测试装置的示意图。如图2所示,该装置包括构建单元22和测试单元24。
构建单元22,用于构建用于运行应用程序代码的本地模拟分布式系统。
测试单元24,用于在本地模拟分布式系统上测试应用程序代码。
构建本地模拟分布式系统,该本地模拟分布式系统用于测试应用程序代码的正确性。本申请实施例中的应用程序代码应用于分布式系统中,但是如果将应用程序代码放到真正的分布式集群上去测试的话,效率会很低,如果代码出问题了很难去调试。
通过构建本地模拟分布式系统,在本地模拟分布式系统上测试应用程序代码,当应用程序代码出错时,可以使用程序调试工具对代码进行调试,避免了将应用程序代码放到真正的分布式集群上测试时效率低且难以调试的技术问题,从而实现了高效率地测试基于分布式计算的应用程序代码的技术效果,进而解决了现有技术中基于分布式计算的应用程序代码的测试效率低,且难以调试的技术问题。
可选地,测试单元24包括获取子单元、第一计算子单元、比较子单元、第一确定子单元和第二确定子单元。获取子单元用于获取用于对应用程序代码进行测试的日志文件。第一计算子单元用于在本地模拟分布式系统上运行应用程序代码,对日志文件进行计算,得到计算值。比较子单元用于将计算值与预设值进行比较,其中,预设值为用于验证应用程序代码的值。第一确定子单元用于当比较子单元比较出计算值与预设值相同时,确定应用程序代码正确。第二确定子单元用于当比较子单元比较出计算值与预设值不同时,确定应用程序代码错误。
日志文件用于对应用程序代码进行测试。在本地模拟分布式系统上运行应用程序代码,利用分布式计算的本地方式,对日志文件进行计算,得到计算值。
如果计算值与预设值相同,说明应用程序代码正确;如果计算值与预设值不同,说明应用程序代码错误,需要对应用程序代码进行修改。
预设值和计算值可以为IP地址,也可以为Cookie的值,等等。
例如,预设值是123,在本地模拟分布式系统上运行应用程序代码,对日志文件进行计算,得到的计算值是453,预设值与计算值不相等,因此应用程序代码错误。
再例如,预设值是191.255.255.255,在本地模拟分布式系统上运行应用程序代码,对日志文件进行计算,得到的计算值也是191.255.255.255,预设值与计算值相等,因此应用程序代码正确。
可选地,本申请实施例所提供的应用程序代码的测试装置还包括选择单元和计算单元。选择单元用于选择目标字段,目标字段为日志文件中用于对应用程序代码进行测试的字段。计算单元用于根据预设计算方式,对目标字段进行计算,得到预设值。选择日志文件中的某些字段,根据预设计算方式,对日志文件中选中的字段进行计算,得到预设值。预设计算方式与希望应用程序代码对字段进行操作的计算方式相同。
可选地,目标字段为多个。第一计算子单元包括计算模块。该计算模块用于在本地模拟分布式系统上运行应用程序代码,对多个目标字段分别进行计算,得到多个计算值,其中,多个计算值与多个目标字段一一对应。计算单元包括第二计算子单元。该第二计算子单元用于根据预设计算方式,对多个目标字段分别进行计算,得到多个预设值,其中,多个预设值与多个目标字段一一对应。本申请实施例所提供的应用程序代码的测试装置还包括存储单元。该存储单元用于在计算模块计算得到多个计算值之后,将多个计算值以列式存储格式存储在本地模拟分布式系统。比较子单元包括查询模块和比较模块。查询模块用于从本地模拟分布式系统中查询多个计算值。比较模块用于将查询到的多个计算值分别与多个预设值一一对应地进行比较。
选择日志文件中的多个字段,被选中的字段即为目标字段,目标字段为多个。在本地模拟分布式系统上运行应用程序代码,对多个目标字段进行计算,得到多个计算值。根据预设计算方式,对多个目标字段分别进行计算,得到多个预设值。每个目标字段都有一个计算值和一个预设值与之对应。
将多个计算值以列式存储格式存储在本地模拟分布式系统,可以选择Parquet列式存储格式存储。相对于行式存储,列式存储的优点有:可以跳过不符合条件的数据,只读取需要的数据;由于同一列的数据类型是一样的,可以使用更高效的压缩编码(例如RunLength Encoding和Delta Encoding)进一步节约存储空间;只读取需要的列,支持向量运算,能够获取更好的扫描性能。
可选地,第一确定子单元包括第一确定模块。该第一确定模块用于当比较模块比较出计算值B1至计算值Bm与预设值C1至预设值Cm均一一对应相同时,确定应用程序代码正确,其中,计算值Bi和预设值Ci均与目标字段Ai相对应,i依次取1至m,目标字段A1至目标字段Am为构成多个目标字段,计算值B1至计算值Bm构成多个计算值,预设值C1至预设值Cm构成多个预设值。第二确定子单元包括第二确定模块。该第二确定模块用于当比较模块比较出计算值Br与预设值Cr不相同时,确认应用程序代码错误,其中,1≤r≤m。
有可能出现的一种情况是:应用程序代码某一条或某几条语句出错了,但是对日志文件某些字段的计算值与预设值相同。此时,如果根据一个预设值与其对应的计算值相同而判断应用程序代码正确,准确度不高。
为避免上述问题,预设值与计算值均为多个。假设目标字段的数量为m,目标字段A1至目标字段Am构成m个目标字段,计算值B1至计算值Bm构成m个计算值,预设值C1至预设值Cm构成m个预设值,计算值B1和预设值C1均与目标字段A1相对应,计算值B2和预设值C2均与目标字段A2相对应,计算值B3和预设值C3均与目标字段A3相对应,以此类推,计算值Bm和预设值Cm均与目标字段Am相对应。
依次比较目标字段A1至目标字段Am这m个目标字段所对应的计算值和预设值是否相等,即比较计算值B1和预设值C1是否相等,比较计算值B2和预设值C2是否相等,比较计算值B3和预设值C3是否相等,以此类推,比较计算值Bm和预设值Cm是否相等。如果经过比较,得出目标字段A1至目标字段Am这m个目标字段所对应的计算值和预设值均相等,则说明应用程序代码是正确的。如果经过比较,得出目标字段A1至目标字段Am这m个目标字段中有一个或几个目标字段的计算值和预设值不相等,则说明应用程序代码有错误。
例如,如表1所示,一共有6个预设值,这6个预设值对应6个目标字段,分别为目标字段1、目标字段2、目标字段3、目标字段4、目标字段5和目标字段6。对目标字段1使用预设计算方法,计算出来的预设值是191.255.255.235,在本地模拟分布式系统上运行应用程序代码,对目标字段1进行计算,得到计算值191.255.255.235,故目标字段1的预设值与计算值相同。同理,从表1中可以看出,目标字段1至目标字段6中,每个目标字段的预设值都与计算值相同,因此,应用程序代码是正确的。
再例如,如表2所示,一共有4个预设值,这4个预设值对应4个目标字段,分别为目标字段1、目标字段2、目标字段3和目标字段4。对目标字段4使用预设计算方法,计算出来的预设值是191.255.255.240,在本地模拟分布式系统上运行应用程序代码,对目标字段4进行计算,得到计算值191.255.255.230,故目标字段4的预设值与计算值不相同,故应用程序代码中存在错误。
通过将多个目标字段的预设值与计算值进行比较,只有在每一个目标字段的预设值和计算值都相等的情况下,才判断应用程序代码正确,当存在目标字段的预设值和计算值不相等的情况下,判断应用程序代码有错误,这样大大提高测试结果的准确度。
所述应用程序代码的测试装置包括处理器和存储器,上述构建单元22和测试单元24等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现对应用程序代码的测试。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:构建用于运行应用程序代码的本地模拟分布式系统,在本地模拟分布式系统上测试应用程序代码。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种应用程序代码的测试方法,其特征在于,包括:
构建用于运行所述应用程序代码的本地模拟分布式系统;
在所述本地模拟分布式系统上测试所述应用程序代码。
2.根据权利要求1所述的方法,其特征在于,在所述本地模拟分布式系统上测试所述应用程序代码包括:
获取用于对所述应用程序代码进行测试的日志文件;
在所述本地模拟分布式系统上运行所述应用程序代码,对所述日志文件进行计算,得到计算值;
将所述计算值与预设值进行比较,其中,所述预设值为用于验证所述应用程序代码的值;
如果所述计算值与所述预设值相同,确定所述应用程序代码正确;
如果所述计算值与所述预设值不同,确定所述应用程序代码错误。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
选择目标字段,所述目标字段为所述日志文件中用于对所述应用程序代码进行测试的字段;
根据预设计算方式,对所述目标字段进行计算,得到所述预设值。
4.根据权利要求3所述的方法,其特征在于,所述目标字段为多个,
在所述本地模拟分布式系统上运行所述应用程序代码,对所述日志文件进行计算,得到计算值包括:在所述本地模拟分布式系统上运行所述应用程序代码,对多个所述目标字段分别进行计算,得到多个所述计算值,其中,多个所述计算值与多个所述目标字段一一对应,
根据预设计算方式,对所述目标字段进行计算,得到所述预设值包括:根据所述预设计算方式,对多个所述目标字段分别进行计算,得到多个所述预设值,其中,多个所述预设值与多个所述目标字段一一对应,
在得到多个所述计算值之后,所述方法还包括:将多个所述计算值以列式存储格式存储在所述本地模拟分布式系统,
将所述计算值与预设值进行比较包括:从所述本地模拟分布式系统中查询多个所述计算值;以及将查询到的多个所述计算值分别与多个所述预设值一一对应地进行比较。
5.根据权利要求4所述的方法,其特征在于:
如果所述计算值与所述预设值相同,确定所述应用程序代码正确包括:如果比较出计算值B1至计算值Bm与预设值C1至预设值Cm均一一对应相同,确定所述应用程序代码正确,其中,计算值Bi和预设值Ci均与目标字段Ai相对应,i依次取1至m,目标字段A1至目标字段Am为构成多个所述目标字段,所述计算值B1至所述计算值Bm构成多个所述计算值,所述预设值C1至所述预设值Cm构成多个所述预设值,
如果所述计算值与所述预设值不同,确定所述应用程序代码错误包括:如果比较出计算值Br与预设值Cr不相同,确认所述应用程序代码错误,其中,1≤r≤m。
6.一种应用程序代码的测试装置,其特征在于,包括:
构建单元,用于构建用于运行所述应用程序代码的本地模拟分布式系统;
测试单元,用于在所述本地模拟分布式系统上测试所述应用程序代码。
7.根据权利要求6所述的装置,其特征在于,所述测试单元包括:
获取子单元,用于获取用于对所述应用程序代码进行测试的日志文件;
第一计算子单元,用于在所述本地模拟分布式系统上运行所述应用程序代码,对所述日志文件进行计算,得到计算值;
比较子单元,用于将所述计算值与预设值进行比较,其中,所述预设值为用于验证所述应用程序代码的值;
第一确定子单元,用于当所述比较子单元比较出所述计算值与所述预设值相同时,确定所述应用程序代码正确;
第二确定子单元,用于当所述比较子单元比较出所述计算值与所述预设值不同时,确定所述应用程序代码错误。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
选择单元,用于选择目标字段,所述目标字段为所述日志文件中用于对所述应用程序代码进行测试的字段;
计算单元,用于根据预设计算方式,对所述目标字段进行计算,得到所述预设值。
9.根据权利要求8所述的装置,其特征在于,所述目标字段为多个,
所述第一计算子单元包括:
计算模块,用于在所述本地模拟分布式系统上运行所述应用程序代码,对多个所述目标字段分别进行计算,得到多个所述计算值,其中,多个所述计算值与多个所述目标字段一一对应,
所述计算单元包括:
第二计算子单元,用于根据所述预设计算方式,对多个所述目标字段分别进行计算,得到多个所述预设值,其中,多个所述预设值与多个所述目标字段一一对应,
所述装置还包括:存储单元,用于在所述计算模块计算得到多个所述计算值之后,将多个所述计算值以列式存储格式存储在所述本地模拟分布式系统,
所述比较子单元包括:
查询模块,用于从所述本地模拟分布式系统中查询多个所述计算值;以及
比较模块,用于将查询到的多个所述计算值分别与多个所述预设值一一对应地进行比较。
10.根据权利要求9所述的装置,其特征在于:
所述第一确定子单元包括:
第一确定模块,用于当所述比较模块比较出计算值B1至计算值Bm与预设值C1至预设值Cm均一一对应相同时,确定所述应用程序代码正确,其中,计算值Bi和预设值Ci均与目标字段Ai相对应,i依次取1至m,目标字段A1至目标字段Am为构成多个所述目标字段,所述计算值B1至所述计算值Bm构成多个所述计算值,所述预设值C1至所述预设值Cm构成多个所述预设值,
所述第二确定子单元包括:
第二确定模块,用于当所述比较模块比较出计算值Br与预设值Cr不相同时,确认所述应用程序代码错误,其中,1≤r≤m。
CN201510829034.6A 2015-11-24 2015-11-24 应用程序代码的测试方法和装置 Active CN106776264B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510829034.6A CN106776264B (zh) 2015-11-24 2015-11-24 应用程序代码的测试方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510829034.6A CN106776264B (zh) 2015-11-24 2015-11-24 应用程序代码的测试方法和装置

Publications (2)

Publication Number Publication Date
CN106776264A true CN106776264A (zh) 2017-05-31
CN106776264B CN106776264B (zh) 2020-07-03

Family

ID=58964373

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510829034.6A Active CN106776264B (zh) 2015-11-24 2015-11-24 应用程序代码的测试方法和装置

Country Status (1)

Country Link
CN (1) CN106776264B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107292384A (zh) * 2017-06-08 2017-10-24 北京深瞐科技有限公司 测试仿真装置及系统
CN108038125A (zh) * 2017-11-07 2018-05-15 平安科技(深圳)有限公司 基金系统测试值的自动对比方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101556550A (zh) * 2009-05-22 2009-10-14 北京星网锐捷网络技术有限公司 一种自动化测试日志分析方法和装置
CN103178982A (zh) * 2011-12-23 2013-06-26 阿里巴巴集团控股有限公司 日志分析方法和装置
CN103237082A (zh) * 2013-05-06 2013-08-07 百度在线网络技术(北京)有限公司 云测试方法、系统和云端服务器
CN103886487A (zh) * 2014-03-28 2014-06-25 焦点科技股份有限公司 基于分布式的b2b平台的个性化推荐方法与系统
CN104063305A (zh) * 2013-03-18 2014-09-24 腾讯科技(深圳)有限公司 智能终端软件的压力测试方法、装置和系统
CN104298601A (zh) * 2014-10-24 2015-01-21 浪潮电子信息产业股份有限公司 一种基于Hadoop平台的软件系统测试方法
US9317542B2 (en) * 2011-10-04 2016-04-19 International Business Machines Corporation Declarative specification of data integration workflows for execution on parallel processing platforms

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101556550A (zh) * 2009-05-22 2009-10-14 北京星网锐捷网络技术有限公司 一种自动化测试日志分析方法和装置
US9317542B2 (en) * 2011-10-04 2016-04-19 International Business Machines Corporation Declarative specification of data integration workflows for execution on parallel processing platforms
CN103178982A (zh) * 2011-12-23 2013-06-26 阿里巴巴集团控股有限公司 日志分析方法和装置
CN104063305A (zh) * 2013-03-18 2014-09-24 腾讯科技(深圳)有限公司 智能终端软件的压力测试方法、装置和系统
CN103237082A (zh) * 2013-05-06 2013-08-07 百度在线网络技术(北京)有限公司 云测试方法、系统和云端服务器
CN103886487A (zh) * 2014-03-28 2014-06-25 焦点科技股份有限公司 基于分布式的b2b平台的个性化推荐方法与系统
CN104298601A (zh) * 2014-10-24 2015-01-21 浪潮电子信息产业股份有限公司 一种基于Hadoop平台的软件系统测试方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
沧海一滴: ""java中浮点数的比较(double, float)(转)"", 《博客园》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107292384A (zh) * 2017-06-08 2017-10-24 北京深瞐科技有限公司 测试仿真装置及系统
CN108038125A (zh) * 2017-11-07 2018-05-15 平安科技(深圳)有限公司 基金系统测试值的自动对比方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN106776264B (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
Ramirez et al. Crop‐yield distributions revisited
CN106980623B (zh) 一种数据模型的确定方法及装置
CN110008397B (zh) 一种推荐模型训练方法及装置
CN109522435A (zh) 一种图像检索方法及装置
CN113946986B (zh) 基于加速退化试验的产品平均失效前时间评估方法和装置
CN111475402B (zh) 程序功能的测试方法及相关装置
CN108460068A (zh) 报表导入导出的方法、装置、存储介质及终端
CN117278434A (zh) 流量回放方法、装置、电子设备
CN106776264A (zh) 应用程序代码的测试方法和装置
CN108182531A (zh) 页岩气开发评价方法、装置及终端设备
CN111209061A (zh) 用户信息的填写方法、装置、计算机设备和存储介质
US20220004822A1 (en) Integrating Data Quality Analyses for Modeling Metrics
CN104599092A (zh) 用于监控订单业务的方法及设备
Liu et al. Structured Ordinary Least Squares: A Sufficient Dimension Reduction approach for regressions with partitioned predictors and heterogeneous units
CN105991609B (zh) 一种风险事件确定方法及装置
WO2023093070A1 (zh) 面向智能城市网络资源的相关性分析方法及装置
CN107767010A (zh) 范围值数据统计方法、电子装置及计算机可读存储介质
CN114251075B (zh) 基于多目标参数的储层开采方案确定方法、装置及设备
CN110728118A (zh) 跨数据平台的数据处理方法、装置、设备及存储介质
CN110991473A (zh) 图像样本的特征选择方法、装置、计算机设备及存储介质
CN116319492A (zh) 交换机的测试方法、装置、存储介质及电子设备
CN104851116A (zh) 一种近红外光谱数据压缩方法、装置及系统
CN115425648A (zh) 配电网户变关系辨识方法、装置、设备、介质和程序产品
CN104796478A (zh) 一种资源推荐方法及装置
CN105808549A (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
CB02 Change of applicant information

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant