CN111552648A - 用于应用的自动验证方法和系统 - Google Patents
用于应用的自动验证方法和系统 Download PDFInfo
- Publication number
- CN111552648A CN111552648A CN202010382118.0A CN202010382118A CN111552648A CN 111552648 A CN111552648 A CN 111552648A CN 202010382118 A CN202010382118 A CN 202010382118A CN 111552648 A CN111552648 A CN 111552648A
- Authority
- CN
- China
- Prior art keywords
- application
- version
- log
- traffic
- data
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000012795 verification Methods 0.000 title claims abstract description 46
- 230000008569 process Effects 0.000 claims abstract description 5
- 230000000977 initiatory effect Effects 0.000 claims description 18
- 230000008520 organization Effects 0.000 claims description 9
- 238000001914 filtration Methods 0.000 claims description 5
- 230000003362 replicative effect Effects 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000010076 replication Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 238000010200 validation analysis Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000013522 software testing Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000013102 re-test Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Abstract
本公开涉及用于应用的自动验证方法和系统。所述方法包括:将针对所述应用的流量输入到所述应用的第一版本以供执行;复制所述流量并将其输入到所述应用的第二版本以供执行,其中所述第二版本是所述第一版本的经更新版本,并且其中在所述应用的第二版本的执行需要与所述应用外部的数据和/或服务进行读和/或写操作的情况下,通过中间件来模拟所述读和/或写操作以便不影响所述应用外部的数据和/或服务器;将所述应用的第一版本和第二版本的输出参数分别记入第一日志和第二日志,其中所述输出参数至少包括所述应用的执行过程中的一个或多个读和/或写操作的返回结果;以及解析对比所述第一日志和所述第二日志的数据,以查找任何不一致的输出参数。
Description
技术领域
本公开涉及用于应用的自动验证方法和系统。
背景技术
软件测试是软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重。在软件的渐进和快速迭代开发中,新版本的连续发布使软件测试进行的更加频繁。因此,高效且正确的测试和验证方法是很有价值的。
一般而言,在修改了软件的旧代码后,需要重新进行测试以验证修改没有引入新的错误或导致其他代码产生错误。这一验证的自动化将大幅降低系统验证、维护升级等阶段的成本,提高软件的验证效率。
发明内容
为此,本公开提供了一种用于应用的自动验证方法和系统。本公开的方法和系统能够在不影响原流量的情况下,异步地调用应用的经更新版本并异步地将该流量的输入参数和应用的原版本及应用的经更新版本的输出参数记入日志。并且,本公开的方法和系统还允许通过编写UDF函数来比对大型json(即,应用的原版本和应用的经更新版本的日志)是否一致,通过日志核对任务执行平台核来周期性地触发脚本比对,报出不一致的请求。
根据本公开的第一方面,提供了一种用于应用的自动验证方法,包括:将针对所述应用的流量输入到所述应用的第一版本以供执行;复制所述流量并将其输入到所述应用的第二版本以供执行,其中所述第二版本是所述第一版本的经更新版本,并且其中在所述应用的第二版本的执行需要与所述应用外部的数据和/或服务进行读和/或写操作的情况下,通过中间件来模拟所述读和/或写操作以便不影响所述应用外部的数据和/或服务器;将所述应用的第一版本和第二版本的输出参数分别记入第一日志和第二日志,其中所述输出参数至少包括所述应用的执行过程中的一个或多个读和/或写操作的返回结果;以及解析对比所述第一日志和所述第二日志的数据,以查找任何不一致的输出参数。
根据一实施例,所述应用包括入口应用程序以及一个或多个下游应用程序,其中所述流量是经由所述入口应用程序来接收的,并且将所述流量输入到所述应用的第一版本是经由所述入口应用程序调用所述应用的第一版本来进行的。
根据另一实施例,复制所述流量并将所述流量输入到所述应用的第二版本包括通过在所述入口应用程序的代码中发起异步线程来调用所述应用的第二版本。
根据又一实施例,所述方法还包括捕获调用所述应用的第二版本中出现的异常。
根据又一实施例,所述方法还包括将所述流量的输入参数转换成所述应用的第二版本的输入参数并捕获所述转换中出现的异常。
根据又一实施例,所述转换包括根据所述应用的第二版本的输入参数定义来复制除所述流量之外的其他所需输入参数。
根据又一实施例,在所述转换出现异常的情况下,放弃所述调用。
根据又一实施例,所述方法还包括在发起异步线程调用所述应用的第二版本之前,通过灰度命中来控制是否发起该异步线程调用。
根据又一实施例,所述灰度命中包括根据用户标识符的白名单、机构加用户标识符分表位、每预定数目个流量之一、和/或随机选择来确定是否发起异步线程调用。
根据又一实施例,所述方法还包括将所述第一日志和所述第二日志持久存储到数据库。
根据又一实施例,所述第一日志和所述第二日志中的数据还包括来自所述流量的输入参数,并且所述数据是通过指定分隔符来分开的,以便于获取相应的输入参数和输出参数。
根据又一实施例,所述第一日志和所述第二日志中的输出参数是json格式的字符串。
根据又一实施例,解析对比所述第一日志和所述第二日志的数据包括根据用户定义的输出参数列表来过滤所述第一日志和所述第二日志。
根据又一实施例,所述流量是来自所述应用的用户的真实流量,并且其中所述真实流量是所述应用的实时流量和/或历史流量纪录。
根据本公开的第二方面,提供了一种用于应用的自动验证系统,包括:用于将针对所述应用的流量输入到所述应用的第一版本以供执行的装置;用于复制所述流量并将其输入到所述应用的第二版本以供执行的装置,其中所述应用的第二版本是所述应用的第一版本的经更新版本,并且其中在所述应用的第二版本的执行需要与所述应用外部的数据和/或服务进行读和/或写操作的情况下,通过中间件来模拟所述读和/或写操作以便不影响所述应用外部的数据和/或服务器;用于将所述应用的第一版本和所述应用的第二版本的输出参数分别记入第一日志和第二日志的装置,其中所述输出参数至少包括所述应用的执行过程中的一个或多个读和/或写操作的返回结果;以及用于解析对比所述第一日志和所述第二日志的数据,以查找任何不一致的输出参数的装置。
根据一实施例,所述应用包括入口应用程序以及一个或多个下游应用程序,其中所述流量是经由所述入口应用程序来接收的,并且用于将所述流量输入到所述应用的第一版本的装置通过所述入口应用程序调用所述应用的第一版本来将所述流量输入到所述应用的第一版本。
根据另一实施例,所述用于复制所述流量并将其输入到应用的第二版本的装置是通过在所述入口应用程序的代码中发起异步线程以调用所述应用的第二版本来将经复制的流量输入到所述应用的第二版本的。
根据又一实施例,用所述应用的第二版本中出现的异常被捕获。
根据又一实施例,所述流量的输入参数被转换成所述应用的第二版本的输入参数并且所述转换中出现的异常被捕获。
根据又一实施例,所述转换包括根据所述应用的第二版本的输入参数定义来复制除所述流量之外的其他所需输入参数。
根据又一实施例,在所述转换出现异常的情况下,放弃所述调用。
根据又一实施例,在发起异步线程调用所述应用的第二版本之前,通过灰度命中来控制是否发起该异步线程调用。
根据又一实施例,所述灰度命中包括根据用户标识符的白名单、机构加用户标识符分表位、每预定数目个流量之一、和/或随机选择是否发起异步线程调用。
根据又一实施例,所述第一日志和所述第二日志被持久存储到数据库。
根据又一实施例,所述第一日志和所述第二日志中的数据还包括来自所述流量的输入参数,并且所述数据是通过指定分隔符来分开的,以便于获取相应的输入参数和输出参数。
根据又一实施例,所述第一日志和所述第二日志中的输出参数是json格式的字符串。
根据又一实施例,用于解析对比所述第一日志和所述第二日志的数据,以查找任何不一致的输出参数的装置还根据用户定义的输出参数列表来过滤所述第一日志和所述第二日志。
根据又一实施例,所述流量是来自所述应用的用户的真实流量,并且其中所述真实流量是所述应用的实时流量和/或历史流量纪录。
根据本公开的第三方面,提供了一种用于应用的自动验证系统,包括:入口应用程序,所述入口应用程序被配置成接收针对所述应用的流量,基于所述流量来调用相应的应用的第一版本以供执行,并且复制所述流量并据此调用应用的第二版本以供执行,其中所述应用的第二版本是所述应用的第一版本的经更新版本,并且其中在所述应用的第二版本的执行需要与所述应用外部的数据和/或服务进行读和/或写操作的情况下,在所述应用的第二版本的执行过程中通过中间件来模拟所述读和/或写操作以便不影响所述应用外部的数据和/或服务器,以及所述应用的第一版本和所述应用的第二版本的输出参数分别被记入第一日志和第二日志,其中所述输出参数至少包括所述应用的执行过程中的一个或多个读和/或写操作的返回结果;数据同步平台,所述数据同步平台被配置成存储所述第一日志和所述第二日志;以及日志核对任务执行平台,其被配置成从所述数据同步平台获取所述第一日志和所述第二日志,以及解析对比所述第一日志和所述第二日志的数据,以查找任何不一致的输出参数。
根据一实施例,复制所述流量并据此调用所述应用的第二版本包括通过在所述入口应用程序的代码中发起异步线程来调用所述应用的第二版本。
根据另一实施例,所述入口应用程序还被配置成捕获调用所述应用的第二版本时出现的异常。
根据又一实施例,所述入口应用程序还被配置成将所述流量的输入参数转换成所述应用的第二版本的输入参数并捕获所述转换中出现的异常。
根据又一实施例,所述转换包括根据所述应用的第二版本的输入参数定义来复制除所述流量之外的其他所需输入参数。
根据又一实施例,在所述转换出现异常的情况下,放弃所述调用。
根据又一实施例,所述入口应用程序还被配置成在发起异步线程调用所述应用的第二版本之前,通过灰度命中来控制是否发起该异步线程调用。
根据又一实施例,所述灰度命中包括根据用户标识符的白名单、机构加用户标识符分表位、每预定数目个流量之一、和/或随机选择是否发起异步线程调用。
根据又一实施例,所述第一日志和所述第二日志中的数据还包括来自所述流量的输入参数,并且所述数据是通过指定分隔符来分开的,以便于获取相应的输入参数和输出参数。
根据又一实施例,所述第一日志和所述第二日志中的输出参数是json格式的字符串。
根据又一实施例,解析对比所述第一日志和所述第二日志的数据包括根据用户定义的输出参数列表来过滤所述第一日志和所述第二日志。
根据又一实施例,所述流量是来自所述应用的用户的真实流量,并且其中所述真实流量是所述应用的实时流量和/或历史流量纪录。
根据本公开的第四方面,提供了一种包括处理器和存储器的用于应用的自动验证系统,所述存储器存储有计算机可执行指令,所述计算机可执行指令能由所述处理器执行来实现根据本公开的第一方面所述的方法。
根据本公开的第五方面,提供了一种其上存储有计算机可执行指令的计算机可读介质,所述计算机可执行指令能由计算机执行以实现根据本公开的第一方面所述的方法。
各方面一般包括如基本上在本文参照附图所描述并且如通过附图所解说的方法、装备、系统、计算机程序产品和处理系统。
前述内容已较宽泛地勾勒出根据本公开的示例的特征和技术优势以使下面的详细描述可以被更好地理解。附加的特征和优势将在此后描述。所公开的概念和具体示例可容易地被用作修改或设计用于实施与本公开相同的目的的其他结构的基础。此类等效构造并不背离所附权利要求书的范围。本文所公开的概念的特性在其组织和操作方法两方面以及相关联的优势将因结合附图来考虑以下描述而被更好地理解。每一附图是出于解说和描述目的来提供的,且并不定义对权利要求的限定。
附图说明
为了能详细理解本公开的以上陈述的特征所用的方式,可参照各方面来对以上简要概述的内容进行更具体的描述,其中一些方面在附图中解说。然而应该注意,附图仅解说了本公开的某些典型方面,故不应被认为限定其范围,因为本描述可允许有其他等同有效的方面。不同附图中的相同附图标记可标识相同或相似的元素。
图1是根据本公开的一实施例的示例性用于应用的自动验证系统的示意图;
图2是根据本公开的一实施例的示例性用于应用的自动验证方法的流程图;
图3是根据本公开的一实施例的以贷款应用为例的灰度命中的示例表达式;
图4是根据本公开的一实施例的示例性用于应用的自动验证系统的又一示意图;
图5是根据本公开的一实施例的示例性用于应用的自动验证系统的示意性框图;以及
图6是解说根据本公开的各方面的又一示例性用于应用的自动验证系统的示意性框图。
具体实施方式
以下结合附图阐述的详细描述旨在作为各种配置的描述,而无意表示可实践本文中所描述的概念的仅有的配置。本详细描述包括具体细节以提供对各种概念的透彻理解。然而,对于本领域技术人员将显而易见的是,没有这些具体细节也可实践这些概念。
下面参考图1,其示出了根据本公开的一实施例的示例性用于应用的自动验证系统100的示意图。如图1所示,系统100可至少包括用于提供应用的第一版本的设备101、用于提供应用的第二版本的设备105以及用于进行验证的验证平台109(诸如以下结合图4所述的日志核对任务执行平台405),其中应用的第二版本是应用的第一版本的经更新版本。本领域技术人员可以明白,尽管图1示出了由单个物理服务器表示的用于提供应用的第一版本的设备101、用于提供应用的第二版本的设备105以及验证平台109,系统100可包括用于提供应用的第一版本、用于提供应用的第二版本以及用于进行验证的任何数目和种类的设备(如省略号102、106、110所示)。另外,本领域技术人员可以明白,尽管图1以物理服务器的形式示出了用于提供应用的第一版本的设备101、用于提供应用的第二版本的设备105以及验证平台109,但可以使用任何合适的设备,例如移动设备、台式个人计算机、虚拟机,等等。例如,在一实施例中,用于提供应用的第一版本的设备101、用于提供应用的第二版本的设备105以及验证平台109可以是在云中运行的虚拟机。并且,尽管用于提供应用的第一版本的设备101、用于提供应用的第二版本的设备105以及验证平台109在图1中被分开示出,它们也可位于一处。
在根据本公开的一实施例中,流量可以是用户编写的测试流量或者是来自应用的用户的真实流量。在一示例中,这一真实流量是应用的实时流量和/或历史流量纪录。例如,结合图1,用于提供应用的第一版本的设备101接收流量。在一示例中,这一流量是来自用户的线上真实流量,由此用于提供应用的第一版本的设备101基于该流量来为这些用户提供相应的应用。在系统100中,这些线上真实流量被复制并被送入用于提供应用的第二版本的设备105以用于验证应用的第二版本。在一实施例中,这一复制是按比例进行的,而非是复制全部线上真实流量。在该实施例中,这一比例可以通过灰度命中、随机方法等手段来达成。当然,本领域技术人员可以明白,复制全部线上真实流量也是可行的。
本领域技术人员可以明白,术语“线上真实流量”是指应用的第一版本在运行时所接收到的来自各种用户的服务请求,诸如查询、订阅、购买、转账等等。根据本公开的各实施例,这些线上真实流量可以是实时的线上真实流量,也可以是所存储的线上真实流量的历史数据。
如可看到的,应用的第一版本和应用的第二版本所产生的日志数据(例如,输入参数、输出参数等等)可被送到验证平台109,以便由验证平台109对日志数据进行比对,来发现可能出现的不一致性,从而验证应用的第二版本是否能正常工作。
下面结合图1-2更详细地描述本公开的用于应用的自动验证方法和系统。参考图2,其示出了根据本公开的一实施例的示例性用于应用的自动验证方法200的流程图。
如图2所示,在框210,方法200可包括将针对应用的流量输入到所述应用的第一版本以供执行。在一示例中,所述流量是来自所述应用的用户的真实流量,并且其中所述真实流量是所述应用的实时流量和/或历史流量纪录。例如,方法200可将来自用户的真实流量输入到应用的第一版本,以便为用户提供服务。如此,用户能够及时得到所需服务,而不会受到应用的第二版本的验证的影响。
在一实施例中,所述应用包括入口应用程序以及在入口应用程序下游的一个或多个下游应用程序。在该实施例中,所述流量是经由入口应用程序来接收的,并且将所述流量输入到所述应用的第一版本是经由所述入口应用程序调用所述应用的第一版本来进行的。例如,相应应用的入口应用程序可以接收用户交互,从而获得来自用户的流量。本领域技术人员可以明白,本公开中所述的“入口应用程序”是可以接收来自用户的各种交互的任何合适机制,例如网站、网页、对话框等等。在该实施例中,在入口应用程序接收到来自用户的流量之后,其可以相应地调用应用的第一版本,以用于由应用的第一版本来执行后续处理。
在框220,方法200还可包括复制所述流量并将其输入到所述应用的第二版本以供执行。在一实施例中,应用的第二版本是应用的第一版本的经更新版本。例如,在软件开发过程中,新版本在发布之前需要进行测试验证,以便能够平滑地替换原软件版本。以贷款应用为例,用户通常需要输入用户标识符(例如,身份证件等信息)、授信机构等等,以申请贷款。用户在入口应用处输入的这些信息(即,流量)可被复制,并随后可被输入到贷款应用的经更新版本以便验证贷款应用的这一新版本。结合图1,在一示例中,应用的第一版本可以是贷款应用,而应用的第二版本可以是经更新的贷款应用。在该示例中,用户在应用的第一版本的入口应用程序处输入贷款申请,并且这一申请可被复制并送入应用的第二版本。
在另一优选实施例中,在所述应用的第二版本的执行需要与所述应用外部的数据和/或服务进行读和/或写操作的情况下,所述方法200可包括通过中间件来模拟所述读和/或写操作以便不影响所述应用外部的数据和/或服务器。
例如,在大型应用中,一般涉及对于该应用外部的数据库和/或服务器的读写操作。合乎需要的是,在应用的经更新版本的验证过程中,不会对这些外部数据库或服务器进行实际的读写操作,以使业务数据变脏。为此,方法200可在执行针对外部数据库或者调用后台的服务(例如,通过外部服务器)时通过中间件进行模拟,这样应用的第二版本将不会真正地访问外部数据库和/或外部服务器,也不会真正地发起对后台服务的调用,因此不会影响业务数据和这些数据库及服务器。由此,在该实施例中,复制所述流量还可包括复制在所述应用的第一版本的执行过程中的快照数据并将其输入到所述应用的第二版本,所述快照数据至少包括对所述应用外部的数据和/或服务器的访问输入参数和返回结果。这些访问输入参数和返回结果可由中间件使用来避免实际访问外部的数据库和/或服务器。例如,结合以上贷款申请的示例,方法200不会在应用的经更新版本的验证过程中实际提交贷款申请订单,也不会在应用的数据库中产生实际的订单处理结果。在本公开的一实施例中,复制流量并将流量输入到应用的第二版本是通过在入口应用的代码中发起异步线程以调用应用的第二版本来进行的。在又一实施例中,方法200还可包括在发起上述异步线程调用应用的第二版本之前,通过灰度命中来控制是否发起该异步线程调用。
例如,在本公开的一实施例中,可以设置用户白名单。如此,可以仅复制来自用户白名单中的用户的流量来用于自动验证。在这一示例中,在应用的第一版本接收到来自用户的输入(即,流量)之后,可以标识该用户的标识符,并将其与用户白名单中的各个用户标识符相比较,以确定其是否在用户白名单中。如果是,则复制该流量并调用应用的第二版本来进行后续验证;否则,则放弃复制而仅由应用的第一版本执行对该流量的后续处理。
在本公开的又一实施例中,可以选择每预定数目个流量之一来进行复制来用于自动验证。例如,可以每两个、三个或任何其他数目的流量中选择一个流量来进行复制。在本公开的又一实施例中,可以使用任何其他合适的随机方法来选择流量来进行复制,例如抽签、摇号等等。在本公开的又一实施例中,可以根据与输入流量相关联的机构加用户标识符分表位来选择流量进行复制。本领域技术人员可以明白,可以采取任何合适的方法来选择要复制的流量,例如以上各种方法的任意组合。
例如,图3给出了一个以贷款应用为例的灰度命中的示例表达式300。本领域技术人员可以明白,这仅仅是一个示例,其可以应用于任何其他合适的应用,例如咨询应用、订阅应用,等等。
从图3中可以看到,该灰度命中的示例表达式300使得授信机构为ALILOANCQ的用户标识符的倒数二三位为00或01,或用户标识符为2088202957162125或2088202956224611的用户的流量会被复制并被用于调用和验证应用的第二版本(即,经更新版本)。
结合图1和图3,在一示例中,应用的第一版本101可以在接收到用户申请之后,确定该用户的授信机构是否是ALILOANCQ且用户标识符的倒数二三位为00或01或者用户标识符是否是2088202957162125或2088202956224611。如果该用户的授信机构不是ALILOANCQ且用户标识符也不是2088202957162125或2088202956224611、或者授信机构是ALILOANC但用户标识符的倒数二三位不是00或01,则这一用户申请不被复制来用于验证应用的第二版本。反之,这一用户申请可被复制并被用于调用应用的第二版本来进行后续验证。
在本公开的又一实施例中,方法200还可包括捕获在调用应用的第二版本时出现的异常。例如,在确定来自用户的流量要被复制之后,可能需要将该流量的输入参数转换成应用的第二版本所需的输入参数并捕获这一转换过程中出现的异常。
在一个实施例中,应用的第二版本需要比应用的第一版本更多或者不同的输入参数,例如,这可由应用的第二版本的输入参数定义来指定。在该实施例中,为使应用的第二版本能够被正常调用,方法200还需要复制除所述流量之外的其他所需输入参数,以便顺利地调用应用的第二版本。例如,继续上述贷款应用,如果经更新的应用的第二版本需要确定授信机构来作为一个输入参数(例如,应用的第一版本不需要这一输入参数),则方法200可另外获取相应贷款申请的授信机构,并将其与贷款申请一起来用于调用应用的第二版本。
在一示例中,在输入参数转换出现异常的情况下,方法200可包括放弃调用应用的第二版本。进一步在该示例中,方法200还可包括发出报警信息以提醒程序员或其他相关人员。本领域技术人员可以明白,这一报警信息可以通过任何合适的方式来发出,例如弹框、电子邮件、错误日志记录、即时消息,等等。
尽管图1和图2描述了在应用的第一版本接收到流量之后采取相应的复制操作,但这仅仅是示例,这一复制操作也可以按任何其他合适的方式来进行。在本公开的一替换实施例中,应用的第一版本可以将接收到的流量记入日志。从而,在该替换实施例中,可以通过搜索应用的第一版本这一日志来获取输入参数,并使用这一输入参数来调用应用的第二版本。
继续参考图2,在框230,方法200可包括将所述应用的第一版本和第二版本的输出参数分别记入第一日志和第二日志。例如,结合图1,应用的第一版本可以将其针对相应流量的输出参数记入第一日志,并且应用的第二版本可以将其针对该相应流量的输出参数记入第二日志。
在一优选实施例中,所述输出参数至少包括所述应用的执行过程中的一个或多个读和/或写操作的返回结果,以用于验证所述应用的第二版本。在该实施例中,对于读操作而言,方法200可包括比对在相同流量下应用的第一版本和应用的待测的第二版本的返回结果的差异。如上所述,当应用的第二版本执行读操作(例如,针对应用外部的数据的任何读操作)时,方法200也可任选地包括对这些读操作进行模拟而非实际作出读取操作,从而保证不影响外部数据和/或服务器等的状态。在进一步的实施例中,对于写操作而言,除了验证返回结果之外,方法200还可任选地验证该写操作所写入的数据是否正确。由此,输出参数还可包括与写操作相关联的数据。
在本公开的一实施例中,方法200还可包括将第一日志和第二日志持久存储到数据库。例如,可以将第一日志和第二日志回流到数据同步平台,以供存储和/或后续比对。
在框240,方法200可包括解析对比第一日志和第二日志的数据,以查找任何不一致的输入和/或输出参数。例如,结合图1,验证平台109可以咨询数据同步平台来获取相应的第一日志和第二日志,并随后解析对比该第一日志和第二日志的数据,以查找任何不一致的输出参数。
在本公开的一实施例中,第一日志和第二日志中的数据还包括来自流量的输入参数。另外,日志中的数据是通过指定分隔符来分开的,以便于获取相应的输入参数和输出参数。
在本公开的又一实施例中,第一日志和第二日志中的输出参数是json格式的字符串。在这一实施例中,对比第一日志和第二日志的数据可包括排除日志中不需要比对的键、值。在这一实施例中,在日志中的数据可首先被预处理以供比对。例如,日志中的键和值的顺序可能不一致,并且类型也可能不一致。在该实施例中,比对可包括遍历日志中的各数据是否是json对象、json数组、json元素,遍历整个数组,判断最小元素是否相等,等等。随后,可以将具有不一致的流量打印输出,并排除相同类型的不一致。
在又一实施例中,用户可对想要比对的输出参数作出定义,例如通过定义输出参数列表等形式。在这一实施例中,方法200可包括根据用户定义的输出参数列表来过滤第一日志和第二日志,并随后比对经过滤的第一日志和第二日志。在又一实施例中,方法200可包括根据用户定义的输出参数列表来输出第一日志和第二日志,从而使得第一日志和第二日志仅包括需要比对的输出参数。
下面参考图4,其示出了根据本公开的一实施例的示例性用于应用的自动验证系统400的又一示意图。
如图4所述,系统400可包括入口应用程序401、数据同步平台403以及日志核对任务执行平台405(例如,图1所述的验证平台109)。本领域技术人员可以明白,尽管在图4中入口应用程序401、数据同步平台403以及日志核对任务执行平台405被分开示出,它们也可以组合在一处。例如,数据同步平台403和离线日志核对任务执行平台405可被集成在一起。在一实施例中,日志核对任务执行平台405是离线的日志核对任务执行平台。在另一实施例中,日志核对任务执行平台405可以是在线平台。
在一实施例中,入口应用程序401可被配置成接收针对所述应用的流量。如图4所示,流量进入到入口应用程序401。在以上贷款应用的示例中,这一流量一般可包括用户的贷款申请。随后,入口应用程序401可被配置成基于该流量来调用相应的应用的第一版本(例如,贷款应用),并且随后将调用所产生的输出参数记入第一日志(如图所示)。
入口应用程序401还可被配置成复制这一流量并据此调用应用的第二版本。在这一实施例中,应用的第二版本是应用的第一版本的经更新版本。在以上贷款应用的示例中,应用的第二版本可以是提供了比应用的第一版本更多业务的经更新版本。
在另一优选实施例中,在所述应用的第二版本的执行需要与所述应用外部的数据和/或服务进行读和/或写操作的情况下,在所述应用的第二版本的执行过程中可通过中间件来模拟所述读和/或写操作以便不影响所述应用外部的数据和/或服务器。
例如,在大型应用中,一般涉及对于该应用外部的数据库和/或服务器的读写操作。合乎需要的是,在应用的经更新版本的验证过程中,不会对这些外部数据库或服务器进行实际的读写操作,以使业务数据变脏。为此,方法200可在执行针对外部数据库或者调用后台的服务(例如,通过外部服务器)时通过中间件进行模拟,这样应用的第二版本将不会真正地访问外部数据库和/或外部服务器,也不会真正地发起对后台服务的调用,因此不会影响业务数据和这些数据库及服务器。由此,在该实施例中,复制所述流量还可包括复制在所述应用的第一版本的执行过程中的快照数据并将其输入到所述应用的第二版本,所述快照数据至少包括对所述应用外部的数据和/或服务器的访问输入参数和返回结果。这些访问输入参数和返回结果可由中间件使用来避免实际访问外部的数据库和/或服务器。例如,结合以上贷款申请的示例,不会在应用的经更新版本的验证过程中实际提交贷款申请订单,也不会在应用的数据库中产生实际的订单处理结果。
在一实施例中,复制流量并据此调用应用的第二版本包括通过在入口应用的代码中发起异步线程来调用该应用的第二版本,并且入口应用程序401还被配置成捕获调用该应用的第二版本时出现的异常。在这一实施例中,入口应用程序401还可被配置成在调用应用的第二版本之前将流量的输入参数转换成应用的第二版本的输入参数并捕获这一转换中出现的异常。这样,在所述转换出现异常的情况下,入口应用程序401可放弃调用应用的第二版本并报警。
在又一实施例中,入口应用程序401还被配置成在发起异步线程调用应用的第二版本之前,通过灰度命中来控制是否发起该异步线程调用。例如,灰度命中可包括根据用户标识符的白名单、机构加用户标识符分表位、每预定数目个流量之一、和/或随机选择是否发起异步线程调用。
例如,在本公开的一实施例中,可以设置用户白名单。如此,可以仅复制来自用户白名单中的用户的流量来用于自动验证。在这一示例中,在应用的第一版本接收到来自用户的输入(即,流量)之后,可以标识该用户的标识符,并将其与用户白名单中的各个用户标识符相比较,以确定其是否在用户白名单中。如果是,则复制该流量并调用应用的第二版本来进行后续验证;否则,则放弃复制而仅由应用的第一版本执行对该流量的后续处理。
在本公开的又一实施例中,可以选择每预定数目个流量之一来进行复制来用于自动验证。例如,可以每两个、三个或任何其他数目的流量中选择一个流量来进行复制。在本公开的又一实施例中,可以使用任何其他合适的随机方法来选择流量来进行复制,例如抽签、摇号等等。在本公开的又一实施例中,可以根据与输入流量相关联的机构加用户标识符分表位来选择流量进行复制。本领域技术人员可以明白,可以采取任何合适的方法来选择要复制的流量,例如以上各种方法的任意组合。
在成功调用应用的第二版本后,入口应用程序401可以将调用应用的第二版本所产生的输出参数记入第二日志。在一优选实施例中,所述输出参数至少包括所述应用的执行过程中的一个或多个读和/或写操作的返回结果,以用于验证所述应用的第二版本。在该实施例中,对于读操作而言,可比对在相同流量下应用的第一版本和应用的待测的第二版本的返回结果的差异。如上所述,当应用的第二版本执行读操作(例如,针对应用外部的数据的任何读操作)时,也可任选地对这些读操作进行模拟而非实际作出读取操作,从而保证不影响外部数据和/或服务器等的状态。在进一步的实施例中,对于写操作而言,除了验证返回结果之外,还可任选地验证该写操作所写入的数据是否正确。由此,输出参数还可包括与写操作相关联的数据。
在一实施例中,第一日志和第二日志两者都被传送到数据同步平台403,如图4所示。数据同步平台403可被配置成存储该第一日志和该第二日志以供后续使用。
参考图4,日志核对任务执行平台405可被配置成从数据同步平台403获取第一日志和第二日志,并解析对比所述第一日志和所述第二日志的数据,以查找任何不一致的输出参数。随后,针对所找出的任何不一致性,日志核对任务执行平台405可以发出报警信息,例如通过电子邮件、弹窗、即时消息,等等。
在本公开的一实施例中,第一日志和第二日志中的数据还包括来自流量的输入参数。另外,日志中的数据是通过指定分隔符来分开的,以便于获取相应的输入参数和输出参数。
在本公开的又一实施例中,第一日志和第二日志中的输出参数是json格式的字符串。在这一实施例中,对比第一日志和第二日志的数据可包括排除日志中不需要比对的键、值。在这一实施例中,在日志中的数据可首先被预处理以供比对。例如,日志中的键和值的顺序可能不一致,并且类型也可能不一致。在该实施例中,比对可包括遍历日志中的各数据是否是json对象、json数组、json元素,遍历整个数组,判断最小元素是否相等,等等。随后,可以将具有不一致的流量打印输出,并排除相同类型的不一致。
图5是解说根据本公开的各方面的示例性用于应用的自动验证系统500的示意性框图。如图所示,用于应用的自动验证系统500包括处理器505和存储器510。存储器510存储有计算机可执行指令,这些指令可由处理器505执行来实现以上结合图1-4描述的方法和流程。
图6是解说根据本公开的各方面的又一示例性用于应用的自动验证系统600的示意性框图。如图所示,用于应用的自动验证系统600可包括用于将针对所述应用的流量输入到应用的第一版本以供执行的装置605;用于复制所述流量并将其输入到应用的第二版本以供执行的装置610,其中所述应用的第二版本是所述应用的第一版本的经更新版本;用于将所述应用的第一版本和所述应用的第二版本的输出参数分别记入第一日志和第二日志的装置615;以及用于解析对比所述第一日志和所述第二日志的数据,以查找任何不一致的输出参数的装置620。
在根据本公开的一实施例中,所述流量是经由入口应用来接收的,并且用于将所述流量输入到应用的第一版本的装置通过所述入口应用调用所述应用的第一版本来将所述流量输入到所述应用的第一版本。在这一实施例中,所述用于复制所述流量并将其输入到应用的第二版本的装置610是通过在所述入口应用的代码中发起异步线程以调用所述应用的第二版本来将经复制的流量输入到所述应用的第二版本的。在该实施例中,所述调用中出现的异常被捕获。
在一实施例中,所述流量的输入参数被转换成所述应用的第二版本的输入参数并且所述转换中出现的异常被捕获。在该实施例中,所述转换包括根据所述应用的第二版本的输入参数定义来复制除所述流量之外的其他所需输入参数。在所述转换出现异常的情况下,放弃所述调用。
在又一实施例中,在发起异步线程调用所述应用的第二版本之前,通过灰度命中来控制是否发起该异步线程调用。在该实施例中,所述灰度命中包括根据用户标识符的白名单、机构加用户标识符分表位、每预定数目个流量之一、和/或随机选择是否发起异步线程调用。
在又一实施例中,所述第一日志和所述第二日志被持久存储到数据库。所述第一日志和所述第二日志中的数据还包括来自所述流量的输入参数,并且所述数据是通过指定分隔符来分开的,以便于获取相应的输入参数和输出参数。所述第一日志和所述第二日志中的输出参数是json格式的字符串。
在又一实施例中,用于解析对比所述第一日志和所述第二日志的数据,以查找任何不一致的输出参数的装置620还根据用户定义的输出参数列表来过滤所述第一日志和所述第二日志。
需要明白的是,在本公开中,“真实流量”、“线上真实流量”、“输入信息”、“用户输入”、“用户请求”、和/或“用户申请”等等术语是可互换地使用的。
如上所述,本公开的用于应用的自动验证方法和系统实现了在入口应用的下游从应用的第一版本变成应用的第二版本这两个系统的接口响应(例如,输出参数)对比,接入成本低并且适用于短期快速接口。
本公开的方法和系统采用了将线上对应用的第一版本的调用流量复制到应用的第二版本来取代人为编写测试例的工作,节约了人力成本,而且灵活地控制线上真实流量的采集和关闭,可以按比例采集到任何线上的操作,克服了人工编写测试例不全的缺陷。另外,本公开的方法和系统采用了异步地对比接口响应,并且采用了json格式,从而可以复用用户自定义函数(即,UDF)来对比任何两个大json文件,提高了比对效率。
以上具体实施方式包括对附图的引用,附图形成具体实施方式的部分。附图通过说明来示出可实践的特定实施例。这些实施例在本文中也称为“示例”。此类示例可以包括除所示或所述的那些元件以外的元件。然而,还构想了包括所示或所述元件的示例。此外,还构想出的是使用所示或所述的那些元件的任何组合或排列的示例,或参照本文中示出或描述的特定示例(或其一个或多个方面),或参照本文中示出或描述的其他示例(或其一个或多个方面)。
在所附权利要求书中,术语“包括”和“包含”是开放式的,也就是说,在权利要求中除此类术语之后列举的那些元件之外的元件的系统、设备、制品或过程仍被视为落在那项权利要求的范围内。此外,在所附权利要求书中,术语“第一”、“第二”和“第三”等仅被用作标记,并且不旨在表明对它们的对象的数字顺序。
另外,本说明书中所解说的各操作的次序是示例性的。在替换实施例中,各操作可以按与附图所示的不同次序执行,且各操作可以合并成单个操作或拆分成更多操作。
以上描述旨在是说明性的,而非限制性的。例如,可结合其他实施例来使用以上描述的示例(或者其一个或多个方面)。可诸如由本领域普通技术人员在审阅以上描述之后来使用其他实施例。摘要允许读者快速地确定本技术公开的性质。提交该摘要,并且理解该摘要将不用于解释或限制权利要求的范围或含义。此外,在以上具体实施方式中,各种特征可以共同成组以使本公开流畅。然而,权利要求可以不陈述本文中公开的每一特征,因为实施例可以表征所述特征的子集。此外,实施例可以包括比特定示例中公开的特征更少的特征。因此,所附权利要求书由此被结合到具体实施方式中,一项权利要求作为单独的实施例而独立存在。本文中公开的实施例的范围应当参照所附权利要求书以及此类权利要求所赋予权利的等价方案的完整范围来确定。
Claims (33)
1.一种用于应用的自动验证方法,包括:
将针对所述应用的流量输入到所述应用的第一版本以供执行;
复制所述流量并将其输入到所述应用的第二版本以供执行,其中所述第二版本是所述第一版本的经更新版本,并且其中在所述应用的第二版本的执行需要与所述应用外部的数据和/或服务进行读和/或写操作的情况下,通过中间件来模拟所述读和/或写操作以便不影响所述应用外部的数据和/或服务器;
将所述所述应用的第一版本和第二版本的输出参数分别记入第一日志和第二日志,其中所述输出参数至少包括所述应用的执行过程中的一个或多个读和/或写操作的返回结果;以及
解析对比所述第一日志和所述第二日志的数据,以查找任何不一致的输出参数。
2.如权利要求1所述的方法,其特征在于,所述应用包括入口应用程序以及一个或多个下游应用程序,其中所述流量是经由所述入口应用程序来接收的,并且将所述流量输入到所述应用的第一版本是经由所述入口应用程序调用所述应用的第一版本来进行的。
3.如权利要求2所述的方法,其特征在于,复制所述流量并将所述流量输入到所述应用的第二版本包括通过在所述入口应用程序的代码中发起异步线程来调用所述应用的第二版本。
4.如权利要求3所述的方法,其特征在于,还包括将所述流量的输入参数转换成所述应用的第二版本的输入参数,其中所述转换包括根据所述应用的第二版本的输入参数定义来复制除所述流量之外的其他所需输入参数。
5.如权利要求3所述的方法,其特征在于,还包括在发起异步线程调用所述应用的第二版本之前,通过灰度命中来控制是否发起该异步线程调用。
6.如权利要求5所述的方法,其特征在于,所述灰度命中包括根据用户标识符的白名单、机构加用户标识符分表位、每预定数目个流量之一、和/或随机选择来确定是否发起异步线程调用。
7.如权利要求1所述的方法,其特征在于,还包括将所述第一日志和所述第二日志持久存储到数据库。
8.如权利要求1所述的方法,其特征在于,所述第一日志和所述第二日志中的数据还包括来自所述流量的输入参数,并且所述数据是通过指定分隔符来分开的,以便于获取相应的输入参数和输出参数。
9.如权利要求1所述的方法,其特征在于,所述第一日志和所述第二日志中的输出参数是json格式的字符串。
10.如权利要求1所述的方法,其特征在于,解析对比所述第一日志和所述第二日志的数据包括根据用户定义的输出参数列表来过滤所述第一日志和所述第二日志。
11.如权利要求1所述的方法,其特征在于,所述流量是来自所述应用的用户的真实流量,并且其中所述真实流量是所述应用的实时流量和/或历史流量纪录。
12.一种用于应用的自动验证系统,包括:
用于将针对所述应用的流量输入到所述应用的第一版本以供执行的装置;
用于复制所述流量并将其输入到所述应用的第二版本以供执行的装置,其中所述应用的第二版本是所述应用的第一版本的经更新版本,并且其中在所述应用的第二版本的执行需要与所述应用外部的数据和/或服务进行读和/或写操作的情况下,通过中间件来模拟所述读和/或写操作以便不影响所述应用外部的数据和/或服务器;
用于将所述应用的第一版本和所述应用的第二版本的输出参数分别记入第一日志和第二日志的装置,其中所述输出参数至少包括所述应用的执行过程中的一个或多个读和/或写操作的返回结果;以及
用于解析对比所述第一日志和所述第二日志的数据,以查找任何不一致的输出参数的装置。
13.如权利要求12所述的系统,其特征在于,所述应用包括入口应用程序以及一个或多个下游应用程序,其中所述流量是经由所述入口应用程序来接收的,并且用于将所述流量输入到所述应用的第一版本的装置通过所述入口应用程序调用所述应用的第一版本来将所述流量输入到所述应用的第一版本。
14.如权利要求13所述的系统,其特征在于,所述用于复制所述流量并将其输入到应用的第二版本的装置是通过在所述入口应用程序的代码中发起异步线程以调用所述应用的第二版本来将经复制的流量输入到所述应用的第二版本的。
15.如权利要求14所述的系统,其特征在于,还包括所述流量的输入参数被转换成所述应用的第二版本的输入参数,其中所述转换包括根据所述应用的第二版本的输入参数定义来复制除所述流量之外的其他所需输入参数。
16.如权利要求14所述的系统,其特征在于,在发起异步线程调用所述应用的第二版本之前,通过灰度命中来控制是否发起该异步线程调用。
17.如权利要求16所述的系统,其特征在于,所述灰度命中包括根据用户标识符的白名单、机构加用户标识符分表位、每预定数目个流量之一、和/或随机选择是否发起异步线程调用。
18.如权利要求12所述的系统,其特征在于,所述第一日志和所述第二日志被持久存储到数据库。
19.如权利要求12所述的系统,其特征在于,所述第一日志和所述第二日志中的数据还包括来自所述流量的输入参数,并且所述数据是通过指定分隔符来分开的,以便于获取相应的输入参数和输出参数。
20.如权利要求12所述的系统,其特征在于,所述第一日志和所述第二日志中的输出参数是json格式的字符串。
21.如权利要求12所述的系统,其特征在于,用于解析对比所述第一日志和所述第二日志的数据,以查找任何不一致的输出参数的装置还根据用户定义的输出参数列表来过滤所述第一日志和所述第二日志。
22.如权利要求12所述的系统,其特征在于,所述流量是来自所述应用的用户的真实流量,并且其中所述真实流量是所述应用的实时流量和/或历史流量纪录。
23.一种用于应用的自动验证系统,包括:
入口应用程序,所述入口应用程序被配置成接收针对所述应用的流量,基于所述流量来调用相应的应用的第一版本以供执行,并且复制所述流量并据此调用应用的第二版本以供执行,其中所述应用的第二版本是所述应用的第一版本的经更新版本,并且其中在所述应用的第二版本的执行需要与所述应用外部的数据和/或服务进行读和/或写操作的情况下,在所述应用的第二版本的执行过程中通过中间件来模拟所述读和/或写操作以便不影响所述应用外部的数据和/或服务器,以及所述应用的第一版本和所述应用的第二版本的输出参数分别被记入第一日志和第二日志,其中所述输出参数至少包括所述应用的执行过程中的一个或多个读和/或写操作的返回结果;
数据同步平台,所述数据同步平台被配置成存储所述第一日志和所述第二日志;以及
日志核对任务执行平台,其被配置成从所述数据同步平台获取所述第一日志和所述第二日志,以及解析对比所述第一日志和所述第二日志的数据,以查找任何不一致的输出参数。
24.如权利要求23所述的系统,其特征在于,复制所述流量并据此调用所述应用的第二版本包括通过在所述入口应用程序的代码中发起异步线程来调用所述应用的第二版本。
25.如权利要求24所述的系统,其特征在于,所述入口应用程序还被配置成将所述流量的输入参数转换成所述应用的第二版本的输入参数,其中所述转换包括根据所述应用的第二版本的输入参数定义来复制除所述流量之外的其他所需输入参数。
26.如权利要求24所述的系统,其特征在于,所述入口应用程序还被配置成在发起异步线程调用所述应用的第二版本之前,通过灰度命中来控制是否发起该异步线程调用。
27.如权利要求26所述的系统,其特征在于,所述灰度命中包括根据用户标识符的白名单、机构加用户标识符分表位、每预定数目个流量之一、和/或随机选择是否发起异步线程调用。
28.如权利要求23所述的系统,其特征在于,所述第一日志和所述第二日志中的数据还包括来自所述流量的输入参数,并且所述数据是通过指定分隔符来分开的,以便于获取相应的输入参数和输出参数。
29.如权利要求23所述的系统,其特征在于,所述第一日志和所述第二日志中的输出参数是json格式的字符串。
30.如权利要求23所述的系统,其特征在于,解析对比所述第一日志和所述第二日志的数据包括根据用户定义的输出参数列表来过滤所述第一日志和所述第二日志。
31.如权利要求23所述的系统,其特征在于,所述流量是来自所述应用的用户的真实流量,并且其中所述真实流量是所述应用的实时流量和/或历史流量纪录。
32.一种包括处理器和存储器的用于应用的自动验证系统,所述存储器存储有计算机可执行指令,所述计算机可执行指令能由所述处理器执行来实现如权利要求1-11中的任一项所述的方法。
33.一种其上存储有计算机可执行指令的计算机可读介质,所述计算机可执行指令能由计算机执行以实现如权利要求1-11中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010382118.0A CN111552648A (zh) | 2020-05-08 | 2020-05-08 | 用于应用的自动验证方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010382118.0A CN111552648A (zh) | 2020-05-08 | 2020-05-08 | 用于应用的自动验证方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111552648A true CN111552648A (zh) | 2020-08-18 |
Family
ID=72004470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010382118.0A Pending CN111552648A (zh) | 2020-05-08 | 2020-05-08 | 用于应用的自动验证方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552648A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11762648B2 (en) | 2021-03-17 | 2023-09-19 | Toyota Motor Engineering & Manufacturing North America, Inc. | Systems and methods of coordinating application versions among connected vehicles |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951399A (zh) * | 2015-06-19 | 2015-09-30 | 北京齐尔布莱特科技有限公司 | 一种软件测试系统和方法 |
CN106484610A (zh) * | 2015-09-02 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 一种Beta测试方法和装置 |
CN108829581A (zh) * | 2018-05-22 | 2018-11-16 | 平安科技(深圳)有限公司 | 应用程序测试方法、装置、计算机设备及存储介质 |
CN110704290A (zh) * | 2019-09-27 | 2020-01-17 | 百度在线网络技术(北京)有限公司 | 日志分析方法及装置 |
-
2020
- 2020-05-08 CN CN202010382118.0A patent/CN111552648A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951399A (zh) * | 2015-06-19 | 2015-09-30 | 北京齐尔布莱特科技有限公司 | 一种软件测试系统和方法 |
CN106484610A (zh) * | 2015-09-02 | 2017-03-08 | 阿里巴巴集团控股有限公司 | 一种Beta测试方法和装置 |
CN108829581A (zh) * | 2018-05-22 | 2018-11-16 | 平安科技(深圳)有限公司 | 应用程序测试方法、装置、计算机设备及存储介质 |
CN110704290A (zh) * | 2019-09-27 | 2020-01-17 | 百度在线网络技术(北京)有限公司 | 日志分析方法及装置 |
Non-Patent Citations (2)
Title |
---|
曾宪武: "《大数据技术》", 30 November 2019, 西安:西安电子科技大学出版社 * |
李梓萌: "《Python数据分析从入门到精通》", 31 March 2020 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11762648B2 (en) | 2021-03-17 | 2023-09-19 | Toyota Motor Engineering & Manufacturing North America, Inc. | Systems and methods of coordinating application versions among connected vehicles |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309071B (zh) | 测试代码的生成方法及模块、测试方法及系统 | |
US9483387B1 (en) | Tree comparison functionality for services | |
US20140237293A1 (en) | Application monitoring through continuous record and replay | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
CN107526676B (zh) | 一种跨系统测试方法及装置 | |
CN101135989A (zh) | 一种Web应用系统的自动化测试的方法和装置 | |
CN110727580A (zh) | 响应数据生成、全流程接口数据处理方法及相关设备 | |
CN113127347B (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
WO2021133603A1 (en) | Unit testing of components of dataflow graphs | |
CN111522728A (zh) | 自动化测试用例的生成方法、电子设备及可读存储介质 | |
CN103077108A (zh) | 一种对浏览器崩溃进行预警的方法和系统 | |
CN112540924A (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
CN113051155A (zh) | 一种自动化测试平台的控制系统和控制方法 | |
CN114595201A (zh) | 一种接口访问日志采集记录查询方法、设备及存储介质 | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN112433948A (zh) | 一种基于网络数据分析的仿真测试系统及方法 | |
CN100520732C (zh) | 性能测试脚本生成方法 | |
CN108460068A (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
US20190114246A1 (en) | Method for replicating production behaviours in a development environment | |
CN114880240A (zh) | 一种物联网设备自动化测试系统、方法、存储介质及设备 | |
CN112199277A (zh) | 一种基于浏览器的缺陷复现方法、装置、设备及存储介质 | |
CN115114064A (zh) | 一种微服务故障分析方法、系统、设备及存储介质 | |
CN103440460A (zh) | 一种应用系统变更验证方法及验证系统 | |
CN111552648A (zh) | 用于应用的自动验证方法和系统 | |
CN117370217A (zh) | 一种基于python的接口测试结果自动生成方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200818 |
|
RJ01 | Rejection of invention patent application after publication |