CN112214407A - 数据校验控制、执行方法及其相应的装置、设备、介质 - Google Patents
数据校验控制、执行方法及其相应的装置、设备、介质 Download PDFInfo
- Publication number
- CN112214407A CN112214407A CN202011080234.3A CN202011080234A CN112214407A CN 112214407 A CN112214407 A CN 112214407A CN 202011080234 A CN202011080234 A CN 202011080234A CN 112214407 A CN112214407 A CN 112214407A
- Authority
- CN
- China
- Prior art keywords
- data
- verification
- running
- program
- server
- 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 232
- 238000013524 data verification Methods 0.000 title claims abstract description 55
- 230000008569 process Effects 0.000 claims abstract description 170
- 238000012795 verification Methods 0.000 claims abstract description 119
- 230000001960 triggered effect Effects 0.000 claims abstract description 20
- 238000012360 testing method Methods 0.000 claims description 151
- 230000015654 memory Effects 0.000 claims description 32
- 230000003993 interaction Effects 0.000 claims description 24
- 238000012544 monitoring process Methods 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 description 19
- 238000011161 development Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 14
- 230000004044 response Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000007943 implant Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011112 process operation Methods 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013486 operation strategy Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000009666 routine test Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 239000003826 tablet Substances 0.000 description 1
- 238000013024 troubleshooting Methods 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/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开一种数据校验控制、执行方法及其相应的装置、设备、介质,所述控制方法包括如下步骤:受测程序被启动后,其进程创建数据缓存池,用于向数据服务器同步该进程运行过程中上传的运行数据;该进程运行过程中,根据其程序中预设的埋点指令采集所述运行数据,将所采集的运行数据上传至所述数据服务器,以供同步至所述数据缓存池;该进程对其运行过程中触发的根据埋点指令采集运行数据的事件进行统计,形成统计数据;该进程获取依据所述统计数据对数据缓存池中的运行数据进行完整性校验而得的校验结果信息并输出。本申请实现对埋点指令采集运行数据的有效性进行自动化校验,有助于提高埋点数据上报的准确性。
Description
技术领域
本申请涉及计算机软件测试领域,尤其涉及一种数据检验控制方法、装置及其相应的电子设备和非易失性存储介质,也涉及一种数据校验执行方法、装置,及其相应的电子设备和非易失性存储介质。
背景技术
开发完成后的终端设备的应用程序(APP),需要经过测试才予以发布,以测试应用程序在终端设备中运行过程中的各种表现,及时发现潜在的各种运行问题,例如弹窗是否正常、业务逻辑是否正确、人机交互功能是否顺畅、是否出现异常等。
最基础的对应用程序进行测试的方式,在编程阶段,可以在代码中设置程序断点,由此,当程序调试运行到该断点处时,便会停止执行,供开发者分析和发现问题,以便及时修正代码。显然,这种方式对于已经完成开发需要测试其业务逻辑的情况是难以胜任的。
进一步的解决方案是在程序中预埋各种用于采集运行数据的代码,相当于在程序运行过程中给出一些负责采集运行数据的指令,至于所采集的运行数据的类型则可以按需调协,例如可以采集一个属性的数据、一个变量的值、一个控件的可见状态等,各式各样,不一而足。当预设了埋点指令的应用程序运行时,便可通过这些埋点指令在后台采集该应用程序的各种运行数据,上传到为分析运行数据而设置的数据服务器,由此,不仅可在软件测试阶段供开发人员做进一步的分析,还可在发布后的运营阶段为运营者提供有价值的信息。
可以想象,适应采集运行数据的需要,应用程序将包含大量的埋点指令,这些埋点指令对于长期演进式地维护应用程序的升级换代是非常关键的,相应的埋点数据对于分析用户行为、跟踪应用状况有着非常重要的作用,有效的应用埋点数据能为优化产品和制定产品的运营策略提供必要的数据支撑,因此,妥善管理这些埋点指令,确保埋点数据的准确上报,对于管理好应用程序的开发是非常重要的。
实际应用中,一方面,由于同一应用程序不断快速升级换代、推陈出新,同一应用程序的埋点指令越来越多,随之带来的便是繁重的人工校验数据上报操作和因功能改动而带来的数据误删或错误上报等问题;另一方面,由于开发***,原来存在于应用程序的旧版本代码中的埋点指令可能在新版本代码中因被误删而不存在或受语句转向改变而不再被执行,这些情况下便无法满足应用程序的测试所需。诸如此类,埋点指令及其数据一旦在软件工程中管理不善,导致埋点数据不能准确上报,将给应用程序的测试和运营潜藏不必要的隐患,难以确保应用程序的开发质量。
因此,迫切需要一个高效的方案来及时发现应用程序在采集埋点数据方面存在的问题。
发明内容
本申请的首要目的在于解决上述问题至少之一而提供一种数据校验控制方法及其相应的装置、电子设备、非易失性存储介质,以便对应用程序埋点指令的运行状况进行校验。
本申请的另一目的在于配合前一目的而相应提供一种数据校验执行方法及其相应的装置、电子设备、非易失性存储介质。
为满足本申请的各个目的,本申请采用如下技术方案:
适应本申请的目的之一而提供的一种数据校验控制方法,其包括如下步骤:
受测程序被启动后,其进程创建数据缓存池,用于向数据服务器同步该进程运行过程中上传的运行数据;
该进程运行过程中,根据其程序中预设的埋点指令采集所述运行数据,将所采集的运行数据上传至所述数据服务器,以供同步至所述数据缓存池;
该进程对其运行过程中触发的根据埋点指令采集运行数据的事件进行统计,形成统计数据;
该进程获取依据所述统计数据对数据缓存池中的运行数据进行完整性校验而得的校验结果信息并输出。
部分实施例中,该进程调用远程接口以控制校验服务器创建所述的数据缓存池,以启动该校验服务器对所述数据服务器所接收的所述运行数据的监听和同步,且该进程调用远程接口向所述校验服务器上传所述的统计数据以控制该校验服务器执行所述的完整性校验后反馈所述的校验结果信息。
进一步的实施例中,该进程调用远程接口以控制校验服务器创建所述的数据缓存池时,向所述校验服务器提交至少一个特征信息,以便校验服务器依据该特征信息向数据服务器同步关联于该特征信息的运行数据。
部分实施例中,该进程在本地创建所述的数据的缓存池以便在本地实施对所述数据服务器所接收的所述运行数据的监听和同步,且该进程在本地利用所述统计数据实施所述的完整性检验获得所述校验结果信息。
较佳的实施例中,本方法包括后置步骤:先于该进程退出内存而清理所述数据缓存池。
部分实施例中,本方法包括如下前置步骤:
获取与受测程序相对应的测试用例,该测试用例包含用于仿真连串交互事件以驱动受测程序按照预设的业务流程运行的指令集;
解析执行所述测试用例,以控制受测程序按照所述业务流程运行。
适应本申请的目的之一而提供的一种数据校验执行方法,其包括如下步骤:
响应运行受测程序的受测设备发出的缓存创建指令,创建数据缓存池,用于向数据服务器同步由受测程序上传的运行数据;
监听该数据服务器所接收的所述运行数据,将其同步至所述数据缓存池;
响应所述受测设备的数据校验指令,利用其中的统计数据对所述数据缓存池中的运行数据实施完整性校验,获得校验结果信息,所述统计数据为受测程序统计其运行过程中触发的根据埋点指令采集运行数据的事件而形成的数据;
向所述受测设备反馈所述的校验结果信息。
较佳的实施例中,所述缓存创建指令中包含特征信息,以便利用该特征信息向数据服务器同步所述程序运行过程中向数据服务器上传的与该特征信息相关联的所述运行数据。
进一步的实施例中,本方法还包括如下后置步骤:
响应于受测设备的缓存清除指令,清理所述数据缓存池实现内存回收。
适应本申请的目的之一而提供的一种数据校验控制装置,其包括:
缓存创建模块,被配置为当受测程序被启动后,由程序进程创建数据缓存池,用于向数据服务器同步该进程运行过程中上传的运行数据;
数据采集模块,被配置为由该进程在其运行过程中,根据其程序中预设的埋点指令采集所述运行数据,将所采集的运行数据上传至所述数据服务器,以供同步至所述数据缓存池;
数据统计模块,被配置为由该进程对其运行过程中触发的根据埋点指令采集运行数据的事件进行统计,形成统计数据;
校验输出模块,被配置为由该进程获取依据所述统计数据对数据缓存池中的运行数据进行完整性校验而得的校验结果信息并输出。
适应本申请的目的之一而提供的一种数据校验执行装置,其包括如下步骤:
创建执行模块,用于响应运行受测程序的受测设备发出的缓存创建指令,创建数据缓存池,用于向数据服务器同步由受测程序上传的运行数据;
监听同步模块,用于监听该数据服务器所接收的所述运行数据,将其同步至所述数据缓存池;
数据校验模块,用于响应所述受测设备的数据校验指令,利用其中的统计数据对所述数据缓存池中的运行数据实施完整性校验,获得校验结果信息,所述统计数据为受测程序统计其运行过程中触发的根据埋点指令采集运行数据的事件而形成的数据;
校验反馈模块,用于向所述受测设备反馈所述的校验结果信息。
适应本申请的目的之一而提供的一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述的数据校验控制方法/数据校验执行方法的步骤。
适应本申请的另一目的而提供的一种非易失性存储介质,其以计算机可读指令的形式存储有依据所述的数据校验控制方法/数据校验执行方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
相对于现有技术,本申请的优势如下:
首先,根据应用程序需要将其预设埋点指令所采集的运行数据上传到官方指定的数据服务器且数据服务器通常需要专用的事实,本申请通过由受测试的程序的进程负责在数据服务器外部创建数据缓存池,由该数据缓存池负责先将数据服务器所接收的运行数据同步到其中,以供后面的校验。进一步,由程序进程负责对其本地触发的根据预设埋点指令上报运行数据的事件进行统计,形成统计数据,最后利用本地生成的统计数据对数据缓存池中的运行数据进行完整性校验,两地数据相互比较,由此可以独立于数据服务器而对数据服务器所接收的运行数据的完整性进行排查,便于开发人员根据校验结构信息进行分析,从而反向推导出预设埋点指令潜藏的诸如通信链路中断或者缺失埋点指令等问题并加以解决,后续可通过修改代码来确保应用程序准确上报各种运行数据,对于测试软件和采集运营所需的数据均具有积极意义。
其次,本申请将解决问题的技术方案主要通过受测试的应用程序自身的编程来实现,包括由应用程序运行时的进程负责创建所述的数据缓存池、形成所述统计数据、控制利用统计数据与数据缓存池中的运行数据进行校验等,整个过程的控制端被编程实现于受测程序中,因此,当受测程序运行时,便可通过其进程实施自校验逻辑,无需第三方程序工具对其进行额外的干预,无需额外的复杂部署,可节省部署成本。
再者,本申请一种实施例中配合本申请的受测程序实施数据缓存同步和执行其中的运行数据与统计数据的具体校验的校验服务器,则为本申请的受测程序提供了一个技术支持服务,能够将服务所需的核心业务流程集成到校验服务器中,便于通过开放标准的远程接口给多种实现了本申请的技术方案的受测程序调用,而协助这些受测程序进行所述的自校验,因此,便于标准化支持所有受测程序的测试工作,受测程序只需调用标准远程接口便可实施本申请的技术方案,无需本地实现繁杂的代码,有助于提升软件工程管理效率,降低受测程序的开发难度。
此外,本申请通过对受测程序实施发布前的测试,将测试过程中产生的各种运行数据提供给开发人员进行分析,有助于对利用受测程序采集其运营过程中产生的各种运营数据(运行数据)提前做出细致的布局,从而能够提前规划受测程序的经济效益,由此而提升本申请的技术方案的经济价值。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为实施本申请的技术方案相关的一种典型的部署架构示意图;
图2为本申请的程序测试控制方法的典型实施例的流程示意图;
图3为本申请的程序测试控制方法的另一实施例的流程示意图;
图4为本申请的程序测试控制方法的再一实施例的前置步骤的流程示意图;
图5为本申请的程序测试执行方法的典型实施例的流程示意图;
图6为本申请的程序测试控制装置的典型实施例的原理框图;
图7为本申请的程序测试执行装置的典型实施例的原理框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunicationsService,个人通信***),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(GlobalPositioning System,全球定位***)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
请参阅图1,本申请相关技术方案实施时所需的硬件基础可参阅图中所示的架构进行部署。本申请所称的数据服务器80及校验服务器82均部署在云端,其中数据服务器80专用于接收各种通过预设埋点指令采集而得的运行数据,校验服务器82可与数据服务器80同步所述运行数据以及接收本申请的受测程序所提供的统计数据,以便实施本申请所称的完整性校验。每一服务器80、82均可以充当应用服务器而进一步连接起其他诸如存储服务器、备份服务器等,以此构成逻辑上相关联的服务机群,来为相关的终端设备例如图中所示的受测设备81提供服务。受测设备可以是智能手机或虚拟了智能手机的个人计算机。服务器与终端设备均可通过公知的网络接入方式接入互联网,彼此之间可建立数据通信链路,以便实现各种数据交换。
本申请的终端设备配备有相关操作***,例如IOS、HMS(鸿蒙)、Android以及其他提供同等功能的操作***,在此类操作***的支持下,服务器与终端设备之间可以通过彼此约定的通信链路进行数据通信,而为这些操作***适应性开发的应用程序也得以在终端设备中正常运行,通过终端设备实现人机交互以及远程交互。
本申请的应用程序,其通称意义是指运行于服务器或终端设备之类的电子设备的应用程序,这些应用程序采用编程的方式实现了本申请的相关技术方案,其程序代码可被以计算机可执行指令的形式保存于计算机能识别的非易失性存储介质中,并被中央处理器调入内存中运行,通过该应用程序在计算机的运行而构造出本申请的相关装置。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
请参阅图2,本申请的一种数据校验控制方法,由终端设备侧的应用程序负责执行体现,一种实施例中,其包括如下步骤:
步骤S11、受测程序被启动后,其进程创建数据缓存池,用于向数据服务器同步该进程运行过程中上传的运行数据:
本申请所称的受测程序,是指作为测试对象的应用程序。受测程序被安装至智能手机之类的终端电子设备中运行后,以进程的形态进行运行,执行程序指令,实现各种功能。此处,这种电子设备,或称终端设备,也可称为“受测设备”。
当受测程序在受测设备中被启动后,其进程便开始运行。开发人员在编写程序时预先在受测程序的源码中植入了用于执行本申请的技术方案的代码,因此,当其进行运行时,便开始执行这一技术方案。
适应本步骤,开发人员预先在进程启动事件中,植入用于创建数据缓存池的缓存创建指令,于是,当进程启动并执行该指令时,在该指令的作用下,便可创建所述的数据缓存池。
所述数据缓存池主要用于向所述的数据服务器同步运行数据,所述运行数据则是受测程序运行过程中,根据预设的埋点指令执行数据采集而获得的。该运行数据被上传至所述的数据服务器后,便可被同步至所述的数据缓存池。为了使数据缓存池、受测程序的进程、数据服务器之间能够针对同一受测程序产生的运行数据进行作业,可以在三者之间传递受测程序已登录的用户ID、受测设备ID之类的特征信息,确保各方针对的数据对象明确无误。因此,受测程序向数据服务器上传的运行数据将与所述特征信息相关联存储,而所述数据缓存池在监听和同步数据时,将以所述特征信息为依据,向所述数据服务器同步数据。
创建所述数据缓存池的具体途径和方式,可以有多种实施方式。本申请典型的实施例中,受测程序本身携带相关功能模块来执行本方法的相关功能,因此,可以通过上述的缓存创建指令实现在受测设备本地创建所述的数据缓存池,并通过所述相关功能模块来为数据缓存池建立对需要缓存的运行数据的监听功能和同步功能。
当完成所述的数据缓存池的创建之后,便可通过预先协议的端口监听所述数据服务器的所述运行数据,及时进行同步。相对于单次发送的消息而言,数据同步具有较高的可靠性,因此,理论上,在整个受测程序的进程运行周期中,数据缓存池有足够的机会获取关于所述特征信息的全量的运行数据。
步骤S12、该进程运行过程中,根据其程序中预设的埋点指令采集所述运行数据,将所采集的运行数据上传至所述数据服务器,以供同步至所述数据缓存池:
受测程序的进程常驻内存的过程中,响应于各种计算机事件而执行不同的计算机方法,根据这种计算机事件发生的先后所组成计算机方法执行流程,视这些计算机事件发生的种类、顺序不同而有不同,因此,受测程序中编写的全量代码所表现的全部指令,能否以及何时被执行,视这些指令是否被某一事件触发而定,这当然也包括所述的埋点指令。
如前所述,埋点指令是编程人员预先在受测程序的计算机方法中植入的代码,可以是单行编程语句,也可以是一个计算机方法体,无论如何,执行时均表现为指令,其通常用于采集受测程序当前运行状态下的各种运行数据,包括但不限于:用户ID、用户浏览数据、程序当前内存占用数据、当前网络环境数据……对于这些运行数据,理论上没有任何限制,只要可以以计算机指令对其进行调用采集即可,即可视为埋点指令适于采集的运行数据。
编程人员因应各种需要而在一个受测程序中预先编写多处埋点指令,在受测程序的进程运行期间,根据所述计算机事件发生与否,部分埋点指令会被执行,部分埋点指令可能不会被执行,当埋点指令被执行时便会向数据服务器上传其所采集的运行数据,以便所述数据服务器将其与受测程序进程提供的特征信息进行关联存储,并最终被所述数据缓存池所同步。
步骤S13、该进程对其运行过程中触发的根据埋点指令采集运行数据的事件进行统计,形成统计数据:
在对受测程序进行测试时,测试人员通常是按照一定的业务流程,触发与该业务流程相对应的一连串的各种计算机事件,来完成程序测试。适应实施自动化测试时,还可以将这些业务流程编制成可以被解析执行的测试用例。关于测试用例的运用,下文将进一步揭示,此处暂且不表。
如果根据业务流程触发的计算机事件相对应的接口代码中含有埋点指令,则这一业务流程将相应明确产生所述的运行数据。需要注意的是,测试人员通常在主观上可以通常开发文档了解事先植入的埋点指令所在,只要受测程序按照明确的业务流程正常运行,那么运行过程中所触及的各种计算机事件对测试人员而言应是可预期的,当业务流程完成后,运行过程中采集的运行数据也应是明确的,相应的,数据缓存池同步得到的,也即数据服务器上实际接收的运行数据应与测试人员主观预期的运行数据实之间,理论上也应是与受测程序运行过程中采集的运行数据相一致的。
问题的关键在于,其一,由于受测程序存在的编程漏洞或者错误,部分本应被执行的埋点指令事实上却未被执行,导致无法采集相应的运行数据,测试人员根据业务流程所理解的一系列应被执行的埋点指令,在事实上存在部分被绕过、被删除的可能,由此而无法采集相应的运行数据;其二,如果受测设备与所述数据服务器之间的通信链路出现故障,例如网络超时等,导致受测程序进程虽然执行了某一埋点指令采集到相应的运行数据,但这些运行数据并不能有效地上传到所述的数据服务器中,从而导致缓存服务器所同步得到的运行数据也不包含此项,因此同样也无法有效采集相应的运行数据。
因此,在本步骤中,受测程序的进程根据其运行过程中实际执行的埋点指令进行统计并形成统计数据以备校验之用。
所述统计数据的形式可以灵活组织表现,只要后续校验时能被解析即可,可以存储为本地文本文件或者其他格式的文件,或者仅将其封装至一个结构体变量中也可。所述统计数据的内容,根据校验精度而定。例如,可以统计出关于实际触发执行的埋点指令的总数,还可给出各个具体埋点指令相应的运行数据等。概而言之,关于统计数据的具体实现,本领域技术人员可以根据实际需要灵活设定。
步骤S14、该进程获取依据所述统计数据对数据缓存池中的运行数据进行完整性校验而得的校验结果信息并输出:
如前所述,当完成所述的测试所用的业务流程之后,便获得所述的统计数据,本申请典型的实施例中,受测程序的进程首先依据所述统计数据对数据缓存池中的运行数据进行完整性校验。
在执行完整性校验时,作为示例,受测程序的进程适应所述统计数据所包含的内容中关于埋点指令的总数一项,而统计所述数据缓存池中的同步得到的运行数据的总份数,当总份数与统计数据中的总数相一致时,便可诊断确认为刚才完成的业务流程所对应的埋点指令均已被正确执行,并已经将其所采集的全部运行数据上传到所述数据服务器。否则,如果所述的总份数小于所述统计数据中给出的总数,则可诊断出存在若干埋点指令未被执行,有部分埋点数据不能正常完整地采集。这一诊断结果便可用于形成所述的校验结果信息进行输出。
同理,如果需要更为精准地对两处的数据进行比较,确定测试人员诊断出具体未成功上报的埋点指令,则受测进程可以进一步利用统计数据中所包含的各个运行数据与数据缓存池中的各个运行数据进行一一对应的比较,确定出差量部分的运行数据,以便确定虽然出现在统计数据中但却未出现在数据缓存池中的运行数据,对应确定其埋点指令。可以理解,这些差量运行数据同理可作为所述的校验结果信息进行输出。
进一步,为了便于测试人员将统计数据与其主观预期应得的运行数据相比较,以便其查找开发过程中被误删的埋点指令,可以将统计数据中包含的所有运行数据均作为所述的校验结果信息输出。
可以理解,当受测程序进程利用所述的统计数据对数据缓存池中的运行数据校验之后,便获得了所述的校验结果信息,于是便可将这些校验结果信息进行输出,输出至显示界面,或者输出到事先指定的服务器,又或者通过某一远程接口将这一校验结果信息输出至特定人员的邮箱或即时通讯工具中。
经过上述各步骤,本申请的数据校验控制方法便完成了对受测程序运行过程中能否有效采集预设埋点的运行数据的校验。在此过程中,由于建立了数据缓存池,而导致受测设备的内存占用。因此,为了完善内存管理,进一步丰富技术方案的实施例中,可以设置一后置步骤,在该后置步骤中,可以先于该进程退出内存而清理所述数据缓存池,具体可在所述进程的退出事件中编写清理此前已经建立的所有数据缓存池的代码,以便在受测程序被执行退出时,在运行完该些代码实现删除数据缓存池后才完成退出内存。
请参阅图3,本申请的一种数据校验控制方法的另一实施例与前一实施例的区别主要体现在本实施例根据图1所示,采用一个校验服务器82来协助受测程序监听和同步数据服务器所接收的运行数据,以及实施完整性校验。因此,以下的描述将省去与前一实施例相同部分的赘述。具体而言,该实施例包括如下步骤:
步骤S11’、受测程序被启动后,其进程调用远程接口以控制校验服务器创建数据缓存池,以启动该校验服务器对数据服务器所接收的所述运行数据的监听和同步,所述数据缓存池用于向数据服务器同步该进程运行过程中上传的运行数据:
受测设备中运行的受测程序,无需单独编写在本地创建和维护数据缓存池以及其相关的代码,只需编写简单的接口调用代码。当其进程运行时,通过调用所述校验服务器开放的远程接口,便可向校验服务器发送数据缓存池的缓存创建指令。所述数据缓存池通过其远程接口接收到该创建指令后,便自行创建所述的数据缓存池,并且启动对所述数据服务器所接收的运行数据的监听,并及时将数据服务器中的关于运行数据的变动同步到数据缓存池中。
可以理解,为了维持各方通信的一致性,所述受测程序需要将其运行数据与其特征信息关联上传给所述数据服务器,以便实现运行数据与特征信息之间的关联存储,而且,受测程序进程同理也需要在调用校验服务器的远程接口时提供所述的特征信息,以便校验服务器据此向数据服务器同步与所述特征信息相关联的运行数据。
步骤S12’、该进程运行过程中,根据其程序中预设的埋点指令采集所述运行数据,将所采集的运行数据上传至所述数据服务器,以供同步至所述数据缓存池:
由于本步骤的交互关系主要发生在受测设备与数据服务器之间,因此,工作原理与前一实施例的步骤S12相同。所不同的是,本步骤中上传至数据服务器的运行数据,将被位于所述校验服务器的数据缓存池所同步,而非受测设备中的数据缓存池所同步,本领域技术人员对此应当知晓。
步骤S13’、该进程对其运行过程中触发的根据埋点指令采集运行数据的事件进行统计,形成统计数据:
同理,本步骤与前一实施例的步骤S13一致,均是发生在受测设备中,由受测程序进程独力执行的,恕不赘述。关于所述的统计数据的形式和内容,也同于前一实施例,可灵活实现。
步骤S14’、该进程调用远程接口向所述校验服务器上传所述的统计数据,以控制该校验服务器执行所述的完整性校验后反馈所述的校验结果信息供该进程获取并输出:
不同于前一实施例,在本步骤中,前一步骤所形成的统计数据不再进行本地处理,而是通过所述校验服务器开放的远程接口,向校验服务器发送数据校验指令,由受测程序进程将其上传至校验服务器中,从而驱动校验服务器根据统计数据对数据缓存池中的运行数据进行完整性校验。
所述校验服务器接收到所述的统计数据后,按照前一实施例中在受测设备处校验完全相同的方式,利用统计数据中的总数与数据缓存池中的运行数据总份数进行比较,甚至进行运行数据的逐份比对等,完成相关的完整性校验过程,获得所述的校验结果信息,反馈给受测设备。
受测设备上运行的受测程序进程接收到该校验结果信息后,便按照前一实施例相同的方式,将其进行输出即可。
与前一实施例同理,如果受测设备进一步通过远程接口向校验服务器发出缓存清除指令,校验服务器便可响应于该指令而清除此前创建的所述数据缓存池,实现内存回收。
本实施例通过将数据缓存池的创建、监听、同步、校验、回收等功能独立于受测程序而运行于校验服务器中,使其成为校验服务器的一个标准化开放服务,开发人员可以通过远程接口调用此一服务来实现受测程序的轻量代码开发,避免为数据校验重复开发相关代码,从而可以提升程序开发效率。
本申请的数据校验控制方法的再一实施例中,主要是因应受测程序自动化测试的需要,而在前述任意一种实施例的基础上,如图4所示,为其增设如下前置步骤:
步骤S101、获取与受测程序相对应的测试用例,该测试用例包含用于仿真连串交互事件以驱动受测程序按照预设的业务流程运行的指令集:
受测程序由于频繁的版本更迭,每次修改一些代码均需要进行相关测试,每次测试所需的相关业务流程,在更新变化不大的情况下,多有重复,因此,可以将这些测试所用的业务流程编写成可供解析执行的指令集,将这些指令集封装成测试用例,以代码文件的形式提供给受测设备解析执行,通过受测设备中支持解析执行测试用例的进程对受测程序的Hook监控机制,来实现自动化测试,以便自动操控受测程序实施埋点数据校验。
所述的测试用例,可以采用多种计算机语言来编写,只要受测设备处的相应进程可以解析执行即可,例如采用python语言进行编写,一种实施例中,采用Appium技术框架中在终端设备侧的进程便可用于解释执行这样的测试用例。每个测试用例,通过编写代码构成指令集的形式,构成脚本。作为其基本功能,这些指令集的主要任务是负责仿真一连串的交互事件,以使得计算机***能够识别这些交互事件,从而触发受测程序相应的功能模块对相应的交互事件做出进一步的响应,这些功能模块中如果包含埋点指令,便可实施埋点数据的采集。可以理解,测试用例将繁复的人为操作转换成自动执行的操作命令,大大地减少了测试人员的重复性操作,提高了测试效率。
Appium是一个开源测试自动化框架,可用于原生、混合和移动Web应用程序测试,其使用WebDriver协议驱动iOS,Android和Windows应用程序。Appium可以跨平台同时支持Android、iOS,支持多种语言:java、python、php、Ruby等等。Appium提供服务器侧的Server组件的客户端侧的Clients组件(IOS中为WebDriverAgent,Android中为UiAutomator),适于为本申请关于测试用例的实施,在受测设备及其控制端设备之间部署以便提供与测试用例的应用相关的基础技术支持。因本领域技术人员对此也已知晓,且无碍本申请的实施,恕不详述。
可以采取多种方式对交互事件实施仿真,一种实施方式是向***广播事件消息,例如在Android***中广播一个触控事件相关的消息,将导致其被相受测程序进程所识别并触发该进程中相应的代码的执行;另一种方式中,由于当需要仿真某一交互事件时,实际上是要执行响应于该交互事件的方法(函数),因此,可以通过直接监控受测的目标程序的进程的执行,在需要仿真某一交互事件时,直接调用响应于该交互事件的方法(函数)即可。不同的操作***和开发工具可能允许不同的技术手段用于实现这一仿真手段,甚至可能不局限于以上给出的两种方式,本领域技术人员可以根据此处的揭示灵活适用该些由操作***或操作工具提供的技术手段,实现仿真的目的即可。
在编写测试用例时,编程人员一般需要按照一定的业务流程来编写,例如为了测试应用程序的各个界面组件之间的切换是否正常遵守一定的设计逻辑,可以按照相应的操作步骤和界面组件活动之间的变化关系来编制常规测试业务流程;再如,为了处理测试过程中出现的异常,可以按照异常处理时排查故障所需的逻辑来编制异常处理业务流程。
所述常规测试业务流程,举例而言,应用程序正常运行时,当用户在登录界面组件中触控“提交”按键时,理论上会产生一个按键触控事件,从而导致应用程序执行用户身份验证,在用户身份验证成功后进入程序主界面,在验证失败后则弹窗提示,用户取消弹窗后便回到登录界面重新输入其用户验证信息重试。如果需要编写针对这一过程的测试用例,则可遵照此处所揭示的过程,为测试用例编写相应的指令集,实现当监控到出现所述登录界面时,便仿真一个表示作用于“提交”按键的触控而产生的第一交互事件,继而检测界面组件的变化,当界面切换到程序主界面时,便可继续仿真与主界面相适应的交互事件进行下一步测试;当界面切换为所述的弹窗时,则可继续仿真关闭该弹窗相对应的第二交互事件。可见,测试用例便是依据这种业务流程而以指令集的形式仿真出一连串的交互事件,来对受测程序实施测试的。在这种情况下,一个测试用例通常包含多个交互事件,这些交互事件之间的组织关系,存在时间上的先后关系,也可能存在分支关系,视测试时所需的业务流程具体情况而定,以受测设备可解析执行的计算机语句编写而成。可以理解,常规测试业务流程中,至少存在一个执行分支,其中的多个交互事件被应用的时间顺序关系符合所述受测程序在运行时所表现的界面组件之间的调度顺序关系,也即,所述交互事件按照目标程序正常运行时界面组件正常切换顺序而部署。
所述的异常处理业务流程,举例而言,有时,在对受测程序进行常规测试的过程中,由于编程考虑不周产生的逻辑错乱或其他漏洞等原因,可能会产生异常,一些异常往往导致测试流程无法按照预期顺利完成。这种情况下便需要在测试用例中加以考虑,使得测试用例中所编写的指令集具备执行异常处理相关的业务流程,从而在受测程序出现异常时,仍可确保整个测试流程的顺利进行。前述示例的登录界面中,如果无法为其提供合法的用户登录信息,则可能导致无法进入受测程序的主界面,从而无法开展后续的常规测试业务流程。这种情况对于新架设服务所提供受测应用程序是常见的,因为这种新架设服务可能尚未建立有效的用户账户。针对这种情况,便需要设法跳过所述的登录界面,进入受测程序的主界面,此时,便需要测试用例的异常处理业务流程能够仿真出已经成功登录的交互事件,以使受测程序能够切换到其主界面。此外,另一场景中,受测程序的数据采集界面需要获取用户输入的合规信息,但测试过程中无法提供有效合规的信息,这种情况下也会导致受测程序抛出异常,此时,异常处理业务流程便可捕捉该异常,然后重新以新的数据提供新的数据进行尝试,直到这些数据被视为合规信息,便可完成异常处理,继续常规测试业务流程。可以看出,所述异常处理业务流程中,由于出现异常,本该成为活跃状态的界面组件,可能由于异常的抛出或者弹窗的出现,而被后台转为非活跃状态,置于界面组件栈的下层,这种情况下,需要将该界面组件从非活跃状态切换回活跃状态,因此,可以触发一个所述的交互事件,通过关闭当前活跃的界面组件或者直接作用于正处于非活跃状态的该界面组件上,使该非活跃的界面组件从非活动状态变为活跃状态。
由以上关于测试用例的说明可以理解,测试用例本质上是一种由指令集构成的程序文本,其需适应不同的测试业务流程进行个性化开发。另一方面,对于频繁迭代的应用程序而言,为其旧版本开发的测试用例,如果相关部分的界面切换业务流程未产生明显变化,通常也适用于对其新版本进行测试,因此,可以通过在服务器对测试用例进行存储管理,来避免测试用例的重复开发,从而提升软件工程管理效率。
为了对海量的受测的目标应用程序的多份测试用例进行存储管理,可建立一数据库,用该数据库维护受测程序的唯一性特征与其测试用例之间的映射关系,一个测试用例与其相应的受测程序的唯一性特征信息共同形成该数据库的一条数据记录,以此,后续便可利用某一待测试的应用程序的唯一性特征,从该数据库中查询获取与该应用程序相关联的一个或多个测试用例用于后续对该应用程序进行测试。一般而言,应用程序的包名即为其唯一性特征,可作为所述的唯一性特征信息用于与测试用例关联存储。所述数据库可以存储于为本申请的技术方案的实施而部署的存储介质中,也可存储到云端部署的其他服务器中,只要可供本申请所调用即可,以便依据受测程序的包名获取到相应的测试用例即可。由此可见,本申请不仅有助于实现对应用程序的自动化测试,而且适于提升软件工程的管理能力,对于负责开发大量的应用程序的开发团队或组织而言,通过本申请的技术方案对测试用例进行管理,可以大大提升整个组织应对其旗下大量软件产品的测试需求的能力,进一步大大节省其技术开发成本。
步骤S102、解析执行所述测试用例,以控制受测程序按照所述业务流程运行:
为了确保测试用例的指令集在受测设备被解析执行时可以按照测试用例所表征的业务流程对受测程序执行相关的测试,可以在测试用例中嵌入程序勾子相关的代码,即在其中应用Hook技术,以便在测试用例运行期间,通过Hook相关函数及时识别受测程序的具体运行过程,从而方可以此为基础仿真触发相关交互事件,处理相关异常,从而推动整个测试过程。关于Hook技术的应用,为本领域技术人员所知晓,恕不详述。
可以知晓,每种操作***中,为支持程序开发测试,均可将程序运行过程中的各种信息封装为可以被获取的对象,以便开发者通过这些对象获取程序运行的各种状态和数据,从而支持包括Hook技术在内的各种程序控制技术。
为了使所述测试用例更好地被解析执行,可以自定义一个类,利用该类对受测设备操作***中为运行其中的应用程序提供的运行过程相关的状态和数据进行扩展封装,在此基础上提供一个实例对象,以便更为方便地通过该实例对象引用相关状态和数据,使测试用例在运行过程中调用受测程序的各种状态和数据变得更为高效。这个类可以是在实施本申请时根据实际需要由开发人员自行实现的。
作为一种特例,由于所述Appium技术框架本身便扩展了WebDriver的API,基本满足本申请的测试用例调用所需,因此,在本申请解析执行测试用例时,只要Appium提供的WebDriver实例对象可以满足测试用例所需而提供相关状态和数据,便可省去为此自行开发的麻烦。
可以理解,当受测设备解析执行该测试用例的指令集时,受测设备上的相关技术支持已经预先架设完备,因而不会影响本申请的创造精神的体现和发挥。
当本步骤被执行时,可将用户提供的与受测程序相匹配的测试用例,或者依据所述受测程序的包名从所述数据库中调用其相关测试用例,导入受测设备中,在所述受测设备完成该测试用例的接收后,自动地,或者响应于外部控制指令,开始解析并执行该测试用例,在所述测试用例的指令集的作用下,应用程序受测运行。
受测设备中的负责实施测试的相应进程按照指令集所包含的常规测试业务流程先发触发各种交互事件,控制和引导受测程序完成各个界面组件的切换,如遇埋点指令则可采集相关埋点数据上传到所述数据服务器。如果中间出现异常,也可按照指令集所包含的异常处理业务流程进行相应的容灾处理,最终完成整个测试用例的执行。以所述Appium技术框架为例,这一过程可由其Clients端进程负责完成,只要事先因应本申请实施的需要完成相关基础配置,使其适于配合实现本申请的技术方案即可。
可以理解,适应前述关于异常处理的特例,当受测程序的运行触发异常处理业务流程时,根据所述测试用例的指令集所包含对异常处理业务流程的描述,产生至少一个所述的交互事件,使所述受测程序的一个界面组件从非活跃状态切换为活跃状态。由此具备这种异常处理的能力,即使受测程序中存在某些开发漏洞或者异常业务逻辑,也可在其测试过程中被所述异常处理业务流程所兼容,从而确保整个测试过程不至于中断或出错,大大提高测试效率。
本实施例通过为本申请引入关于利用测试用例执行对受测程序的测试过程实施自动控制的机制,可以进一步提交受测程序的测试效率,确保关于埋点指令采集运行数据的校验能够得到高效的执行,尽量避免人为的出错。
本申请的一种数据校验执行方法,因应前述的一个实施例中的校验服务器而提出,供所述校验服务器实现配合受测设备运行的远程标准化服务,因此,以下涉及前文已揭示细节部分,将予以省略以避免赘述。
如图5所示,所述数据校验执行方法在其典型实施例中,包括如下步骤:
步骤S21、响应运行受测程序的受测设备发出的缓存创建指令,创建数据缓存池,用于向数据服务器同步由受测程序上传的运行数据:
如前所述,受测设备在受测程序进程的作用下,调用远程接口向校验服务器发出缓存创建指令,校验服务器响应于所述缓存创建指令,从中获得受测程序提供的所述特征信息,然后关联于该特征信息创建相应的数据缓存池,以便该数据缓存池专门服务于所述受测设备中的所述受测程序的测试过程。数据缓存池如前所述用于向所述的数据服务器同步由受测上传的由埋点指令采集的运行数据。
校验服务器的这种服务能力,可以开放给多个受测设备,因此,适于同时为多个受测程序的数据校验提供相同的服务。
步骤S22、监听该数据服务器所接收的所述运行数据,将其同步至所述数据缓存池:
当校验服务器创建了所述的数据缓存池之后,便开始在预协议的端口监听所述数据服务器所接收的由埋点指令采集的运行数据,具体是与所述特征信息相关联存储的运行数据。也即,校验服务器向数据服务器请求关联于所述特征信息的运行数据的同步,数据服务器以特征信息为依据,将关联于该特征信息的运行数据传输给所述校验服务器,存储于校验服务器的关联的数据缓存池中,由此完成数据同步。
步骤S23、响应所述受测设备的数据校验指令,利用其中的统计数据对所述数据缓存池中的运行数据实施完整性校验,获得校验结果信息,所述统计数据为受测程序统计其运行过程中触发的根据埋点指令采集运行数据的事件而形成的数据:
在本步骤中,所述受测设备在受测程序进程的作用下,向校验服务器发起数据校验指令,同时提交受测程序生成的所述的统计数据,校验服务器从数据校验指令中获得统计数据之后,便如前所述对数据缓存池中同步过来的运行数据进行完整性校验,最终形成相应的校验结果信息。
关于所述统计数据的形式和内容,可参阅前述各实施例揭示的各种方式实施即可,相应的,依据统计数据实施完整性校验的原理,主要依据统计数据的形式和内容而定,也同于前述各实施例所揭示,此处从略。
步骤S24、向所述受测设备反馈所述的校验结果信息:
当经过在前的各个步骤获得所述的校验结果信息之后,校验服务器便可输出所述的校验结果信息,这一校验结果信息首先是发送给受测设备的受测程序进程的,但如果存在事先配置的云端存储地址,也可将其发送至这些存储地址所指向的服务器或终端设备处。
进一步改进的实施例中,为了实现内存回收,本申请的方法还可包括一后置步骤,该步骤响应于受测设备的缓存清除指令,清理所述数据缓存池实现内存回收。由此,受测设备需在受测程序进程的作用下,调用远程接口向校验服务器发出所述的缓存清除指令,校验服务器接收该指令后,响应于该指令而将关联于受测程序提供的特征信息的数据缓存池从内存中删除,即可实现内存回收。
以上关于数据校验执行方法的实施例,清楚地揭示了为埋点数据校验提供服务的校验服务器所实施的技术方案,可以理解,由校验服务器强实施埋点指令相关的运行数据的采集校验,无需对负责存储埋点运行数据的数据服务器进行额外部署,不破坏原有的业务逻辑,却能提供更为强大的远程服务能力,并发地服务于海量的应用程序测试活动。
进一步,可以通过将上述各实施例所揭示的方法中的各个步骤进行功能化,构造出本申请的一种数据校验控制装置,按照这一思路,请参阅图6,其中的一个典型实施例中,该装置包括:
缓存创建模块11,被配置为当受测程序被启动后,由程序进程创建数据缓存池,用于向数据服务器同步该进程运行过程中上传的运行数据;
数据采集模块12,被配置为由该进程在其运行过程中,根据其程序中预设的埋点指令采集所述运行数据,将所采集的运行数据上传至所述数据服务器,以供同步至所述数据缓存池;
数据统计模块13,被配置为由该进程对其运行过程中触发的根据埋点指令采集运行数据的事件进行统计,形成统计数据;
校验输出模块14,被配置为由该进程获取依据所述统计数据对数据缓存池中的运行数据进行完整性校验而得的校验结果信息并输出。
进一步,可以通过将上述各实施例所揭示的方法中的各个步骤进行功能化,构造出本申请的一种数据校验执行装置,按照这一思路,请参阅图7,其中的一个典型实施例中,该装置包括:
创建执行模块21,用于响应运行受测程序的受测设备发出的缓存创建指令,创建数据缓存池,用于向数据服务器同步由受测程序上传的运行数据;
监听同步模块22,用于监听该数据服务器所接收的所述运行数据,将其同步至所述数据缓存池;
数据校验模块23,用于响应所述受测设备的数据校验指令,利用其中的统计数据对所述数据缓存池中的运行数据实施完整性校验,获得校验结果信息,所述统计数据为受测程序统计其运行过程中触发的根据埋点指令采集运行数据的事件而形成的数据;
校验反馈模块24,用于向所述受测设备反馈所述的校验结果信息。
进一步,为便于本申请的执行,本申请提供一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如前所述的各实施例中所述数据校验控制方法/数据校验执行方法的步骤。
可以看出,存储器适宜采用非易失性存储介质,通过将前述的方法实现为计算机程序,安装到手机或计算机之类电子设备中,相关程序代码和数据便被存储到电子设备的非易失性存储介质中,进一步通过电子设备的中央处理器运行该程序,将其从非易性存储介质中调入内存中运行,便可实现本申请所期望的目的。因此,可以理解,本申请的一个实施例中,还可提供一种非易失性存储介质,其中存储有依据所述的数据校验控制方法/数据校验执行方法各个实施例所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
综上所述,本申请实现了对应用程序中预设的埋点指令采集运行数据的有效性进行自动化校验,有助于提高受测应用程序的自动化测试效率,有助于提高埋点数据上报的准确性。
本技术领域技术人员可以理解,本申请包括涉及用于执行本申请中所述操作、方法中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其存储器之内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-OnlyMemory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(ErasableProgrammable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(ElectricallyErasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本申请公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (11)
1.一种数据校验控制方法,其特征在于,其包括如下步骤:
受测程序被启动后,其进程创建数据缓存池,用于向数据服务器同步该进程运行过程中上传的运行数据;
该进程运行过程中,根据其程序中预设的埋点指令采集所述运行数据,将所采集的运行数据上传至所述数据服务器,以供同步至所述数据缓存池;
该进程对其运行过程中触发的根据埋点指令采集运行数据的事件进行统计,形成统计数据;
该进程获取依据所述统计数据对数据缓存池中的运行数据进行完整性校验而得的校验结果信息并输出。
2.根据权利要求1所述的方法,其特征在于:该进程调用远程接口以控制校验服务器创建所述的数据缓存池,以启动该校验服务器对所述数据服务器所接收的所述运行数据的监听和同步,且该进程调用远程接口向所述校验服务器上传所述的统计数据以控制该校验服务器执行所述的完整性校验后反馈所述的校验结果信息。
3.根据权利要求2所述的方法,其特征在于:该进程调用远程接口以控制校验服务器创建所述的数据缓存池时,向所述校验服务器提交至少一个特征信息,以便校验服务器依据该特征信息向数据服务器同步关联于该特征信息的运行数据。
4.根据权利要求1所述的方法,其特征在于,该进程在本地创建所述的数据缓存池以便在本地实施对所述数据服务器所接收的所述运行数据的监听和同步,且该进程在本地利用所述统计数据实施所述的完整性检验获得所述校验结果信息。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,本方法包括如下前置步骤:
获取与受测程序相对应的测试用例,该测试用例包含用于仿真连串交互事件以驱动受测程序按照预设的业务流程运行的指令集;
解析执行所述测试用例,以控制受测程序按照所述业务流程运行。
6.一种数据校验执行方法,其特征在于,其包括如下步骤:
响应运行受测程序的受测设备发出的缓存创建指令,创建数据缓存池,用于向数据服务器同步由受测程序上传的运行数据;
监听该数据服务器所接收的所述运行数据,将其同步至所述数据缓存池;
响应所述受测设备的数据校验指令,利用其中的统计数据对所述数据缓存池中的运行数据实施完整性校验,获得校验结果信息,所述统计数据为受测程序统计其运行过程中触发的根据埋点指令采集运行数据的事件而形成的数据;
向所述受测设备反馈所述的校验结果信息。
7.根据权利要求6所述的方法,其特征在于,所述缓存创建指令中包含特征信息,以便利用该特征信息向数据服务器同步所述程序运行过程中向数据服务器上传的与该特征信息相关联的所述运行数据。
8.一种数据校验控制装置,其特征在于,其包括:
缓存创建模块,被配置为当受测程序被启动后,由程序进程创建数据缓存池,用于向数据服务器同步该进程运行过程中上传的运行数据;
数据采集模块,被配置为由该进程在其运行过程中,根据其程序中预设的埋点指令采集所述运行数据,将所采集的运行数据上传至所述数据服务器,以供同步至所述数据缓存池;
数据统计模块,被配置为由该进程对其运行过程中触发的根据埋点指令采集运行数据的事件进行统计,形成统计数据;
校验输出模块,被配置为由该进程获取依据所述统计数据对数据缓存池中的运行数据进行完整性校验而得的校验结果信息并输出。
9.一种数据校验执行装置,其特征在于,其包括如下步骤:
创建执行模块,用于响应运行受测程序的受测设备发出的缓存创建指令,创建数据缓存池,用于向数据服务器同步由受测程序上传的运行数据;
监听同步模块,用于监听该数据服务器所接收的所述运行数据,将其同步至所述数据缓存池;
数据校验模块,用于响应所述受测设备的数据校验指令,利用其中的统计数据对所述数据缓存池中的运行数据实施完整性校验,获得校验结果信息,所述统计数据为受测程序统计其运行过程中触发的根据埋点指令采集运行数据的事件而形成的数据;
校验反馈模块,用于向所述受测设备反馈所述的校验结果信息。
10.一种电子设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至5中任意一项所述的数据校验控制方法的步骤,或执行如权利要求6至7中任意一项所述的数据校验执行方法的步骤。
11.一种非易失性存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至5中任意一项所述的数据校验控制方法,或依据权利要求6至7中任意一项所述的数据校验执行方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011080234.3A CN112214407A (zh) | 2020-10-10 | 2020-10-10 | 数据校验控制、执行方法及其相应的装置、设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011080234.3A CN112214407A (zh) | 2020-10-10 | 2020-10-10 | 数据校验控制、执行方法及其相应的装置、设备、介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112214407A true CN112214407A (zh) | 2021-01-12 |
Family
ID=74053158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011080234.3A Pending CN112214407A (zh) | 2020-10-10 | 2020-10-10 | 数据校验控制、执行方法及其相应的装置、设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214407A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506747A (zh) * | 2021-02-03 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 一种业务进程监控方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3084078A1 (en) * | 2018-03-09 | 2019-09-12 | Alibaba Group Holding Limited | Consensus verification method, apparatus, and device |
CN110362480A (zh) * | 2019-06-19 | 2019-10-22 | 平安普惠企业管理有限公司 | 客户端埋点测试方法、装置、设备及存储介质 |
CN110908879A (zh) * | 2019-10-16 | 2020-03-24 | 平安普惠企业管理有限公司 | 埋点数据的上报方法、装置、终端和存储介质 |
CN111367814A (zh) * | 2020-03-17 | 2020-07-03 | 深圳市前海随手数据服务有限公司 | 一种埋点测试方法、装置、终端设备及存储介质 |
CN111506489A (zh) * | 2019-01-30 | 2020-08-07 | 阿里巴巴集团控股有限公司 | 测试方法、***、设备、服务器及存储介质 |
-
2020
- 2020-10-10 CN CN202011080234.3A patent/CN112214407A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3084078A1 (en) * | 2018-03-09 | 2019-09-12 | Alibaba Group Holding Limited | Consensus verification method, apparatus, and device |
CN111506489A (zh) * | 2019-01-30 | 2020-08-07 | 阿里巴巴集团控股有限公司 | 测试方法、***、设备、服务器及存储介质 |
CN110362480A (zh) * | 2019-06-19 | 2019-10-22 | 平安普惠企业管理有限公司 | 客户端埋点测试方法、装置、设备及存储介质 |
CN110908879A (zh) * | 2019-10-16 | 2020-03-24 | 平安普惠企业管理有限公司 | 埋点数据的上报方法、装置、终端和存储介质 |
CN111367814A (zh) * | 2020-03-17 | 2020-07-03 | 深圳市前海随手数据服务有限公司 | 一种埋点测试方法、装置、终端设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506747A (zh) * | 2021-02-03 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 一种业务进程监控方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109302522B (zh) | 测试方法、装置以及计算机***和介质 | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
CN106547687A (zh) | 应用测试方法、装置及*** | |
KR101949115B1 (ko) | 디바이스 드라이버 검출 에러들의 자가 진단 및 자동 진단 데이터 수집 | |
CN112199284A (zh) | 程序自动化测试方法及其相应的装置、设备、介质 | |
CN107451060A (zh) | 一种跨移动端自动化测试框架*** | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN113014445B (zh) | 用于服务器的运维方法、装置、平台及电子设备 | |
CN110851471A (zh) | 分布式日志数据处理方法、装置以及*** | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
EP4246332A1 (en) | System and method for serverless application testing | |
CN113094251B (zh) | 嵌入式***测试方法、装置、计算机设备和存储介质 | |
US11928033B2 (en) | Incident-responsive, computing system snapshot generation | |
US20230297496A1 (en) | System and method for serverless application testing | |
US10970159B1 (en) | Automated system maintenance capabilities for a computing system | |
CN110347565B (zh) | 一种应用程序的异常分析方法及装置、电子设备 | |
CN112199283A (zh) | 程序测试控制、执行方法及其相应的装置、设备、介质 | |
CN113672502A (zh) | 程序多***测试方法及其相应的装置、设备、介质 | |
CN112214407A (zh) | 数据校验控制、执行方法及其相应的装置、设备、介质 | |
KR101792864B1 (ko) | 애플리케이션 검증 시스템 및 방법 | |
CN111930625A (zh) | 基于云服务平台的日志获取方法、装置及*** | |
CN111381995A (zh) | 用于还原用户操作的方法及装置、计算机 | |
CN116302738A (zh) | 一种测试芯片的方法、***、设备和存储介质 | |
CN113986263A (zh) | 代码自动化测试方法、装置、电子设备、存储介质 | |
CN110134558A (zh) | 一种服务器的检测方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210113 Address after: 511442 3108, 79 Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province Applicant after: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd. Address before: 29th floor, building B-1, Wanda Plaza, Nancun Town, Panyu District, Guangzhou City, Guangdong Province Applicant before: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |