CN112199283A - 程序测试控制、执行方法及其相应的装置、设备、介质 - Google Patents
程序测试控制、执行方法及其相应的装置、设备、介质 Download PDFInfo
- Publication number
- CN112199283A CN112199283A CN202011079355.6A CN202011079355A CN112199283A CN 112199283 A CN112199283 A CN 112199283A CN 202011079355 A CN202011079355 A CN 202011079355A CN 112199283 A CN112199283 A CN 112199283A
- Authority
- CN
- China
- Prior art keywords
- program
- communication link
- target
- test
- test case
- 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 167
- 238000012360 testing method Methods 0.000 claims abstract description 191
- 230000006854 communication Effects 0.000 claims abstract description 138
- 238000004891 communication Methods 0.000 claims abstract description 134
- 238000009434 installation Methods 0.000 claims abstract description 93
- 230000003993 interaction Effects 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims description 86
- 230000015654 memory Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 15
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 238000011161 development Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000004088 simulation Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 239000012085 test solution Substances 0.000 description 1
- 238000012546 transfer 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/368—Test management for test version control, e.g. updating test cases to a new software version
-
- 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/3664—Environments for testing or debugging software
-
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开一种程序测试控制、执行方法及其相应的装置、设备、介质,所述控制方法包括如下步骤:获取目标程序的安装包;启用第一通信链路向目标设备传输所述安装包,驱动该安装包在目标设备中完成安装;启用第二通信链路向目标设备传输与所述目标程序相对应的测试用例,驱动目标程序在所述测试用例所包含的用于仿真连串交互事件的指令集的控制下受测运行。本申请实现了应用程序自动化测试解决方案,有助于提高受测应用程序的自动化测试效率。
Description
技术领域
本申请涉及计算机软件测试领域,尤其涉及一种程序测试控制方法、装置及其相应的电子设备和非易失性存储介质,也涉及一种程序测试执行方法、装置,及其相应的电子设备和非易失性存储介质。
背景技术
开发完成后的终端设备的应用程序(APP),需要经过测试才予以发布,以测试应用程序在终端设备中运行过程中的各种表现,及时发现潜在的各种运行问题,例如弹窗是否正常、业务逻辑是否正确、人机交互功能是否顺畅、是否出现异常等。
终端设备侧的应用程序的测试需求,由于存在触控交互和屏幕尺寸差异等环境因素,对应用程序的交互体验更为看重,因此有不同于传统的台式计算机设备上的软件测试之处,更为重视人机交互方面的触控响应测试。终端设备侧的应用程序的另一个问题是版本更迭频繁,有时候一周或数天便发布一个新版本,新版本中涉及的代码修改方方面面,这些修改有时候也是牵一发而动全身,因此,程序测试团队常要面对大量的测试工作。考虑到人机交互本身存在随意化,程序测试通常是依赖于人工进行的。尽管人工测试可以最大化的还原用户使用习惯而实施一些触控交互测试,然而人工进行测试的效率可想而知。因此,每次新版本发布时,考虑到时效性和人工效率低下等因素,往往未经全面测试便仓促发布,常导致产生新的问题,影响使用体验。
此外,实践中,每一开发团队可能负责多个应用程序的分工开发,出于软件工程管理的视角,如果针对每一应用程序的频繁更新便追加大量的测试人员对各个版本进行运行测试和问题排查,显然是不科学的。
现有技术中存在各式各样的辅助实施软件运行测试的平台和工具,这些工具普遍只注重测试工程的个别环节或个别方面,难以有机整合,无法为高效测试应用程序提供统一框架,因此难以满足大量频繁开发情况下的应用程序测试需求。
针对以上业内普遍面临的问题,亟待提供一些有效的解决方案。
发明内容
本申请的首要目的在于解决上述问题至少之一而提供一种程序测试控制方法及其相应的装置、电子设备、非易失性存储介质,以便实现控制应用程序在设备侧完成自动化测试。
本申请的另一目的在于适应前一目的而提供一种程序测试执行方法及其相应的装置、电子设备、非易失性存储介质,以便所述的自动化测试在设备侧完成执行。
为满足本申请的各个目的,本申请采用如下技术方案:
适应本申请的目的之一而提供的一种程序测试控制方法,其包括如下步骤:
获取目标程序的安装包;
启用第一通信链路向目标设备传输所述安装包,驱动该安装包在目标设备中完成安装;
启用第二通信链路向目标设备传输与所述目标程序相对应的测试用例,驱动目标程序在所述测试用例所包含的用于仿真连串交互事件的指令集的控制下受测运行。
进一步的实施例中,本方法在启用第二通信链路之前包括如下步骤:通过第一通信链路控制目标设备完成第二通信链路的配置。
进一步的实施例中,本方法在通过第一通信链路控制目标设备完成第二通信链路的配置的步骤之前,通过第一通信链路控制目标设备运行用于支持第二通信链路工作的进程。
进一步的实施例中,本方法在通过第一通信链路控制目标设备运行用于支持第二通信链路工作的进程的步骤之前,通过第一通信链路向目标设备传输该进程相对应的程序安装文件,驱动该程序安装文件在目标设备中完成安装。
较佳的实施例中,获取目标程序的安装包的步骤中,向远程服务器获取目标程序的最新版本的所述安装包。
进一步的实施例中,启用第二通信链路向目标设备传输与所述目标程序相适配的测试用例的步骤中,利用该安装包的唯一性特征,从本地数据库查询确定与该安装包相对应的测试用例。
部分实施例中,所述测试用例的指令集包含对常规测试业务流程的描述,该业务流程中,多个交互事件被应用的时间顺序关系符合所述目标程序在运行时所表现的界面组件之间的调度顺序关系。
部分实施例中,所述测试用例的指令集包含对异常处理业务流程的描述,该业务流程中,至少有一个所述的交互事件使所述目标程序的一个界面组件从非活跃状态切换为活跃状态。
进一步的实施例中,本方法包括如下后置步骤:
格式化目标设备反馈的测试用例运行结果数据,输出相应的结果信息。
适应本申请的目的之一而提供的一种程序测试执行方法,其包括如下步骤:
通过第一通信链路从服务器接收目标程序的安装包,完成该目标程序的本地安装;
通过第二通信链路从服务器接收所述安装包相对应的测试用例;
解析执行该测试用例中的指令集,以通过所述指令集的执行,仿真连串交互事件作用于目标程序而完成运行测试。
进一步的实施例中,本方法包括如下步骤:
启动用于支持所述第二通信链路工作的进程,完成所述第二通信链路的配置。
进一步的实施例中,本方法在启动用于支持所述第二通信链路工作的进程之前,通过所述第一通信链路接收该进程对应的程序安装文件,完成该程序安装文件的本地安装。
进一步的实施例中,本方法还包括后置步骤:
所述目标程序的进程按其预先埋点向云端服务器上传测试数据。
部分实施例中,实施该目标程序的运行测试的步骤中,当目标程序的运行触发异常处理业务流程时,根据所述测试用例的指令集所包含对异常处理业务流程的描述,产生至少一个所述的交互事件,使所述目标程序的一个界面组件从非活跃状态切换为活跃状态。
适应本申请的目的之一而提供的一种程序测试控制装置,其包括:
程序获取模块,用于获取目标程序的安装包;
安装控制模块,用于启用第一通信链路向目标设备传输所述安装包,驱动该安装包在目标设备中完成安装;
测试控制模块,用于启用第二通信链路向目标设备传输与所述目标程序相对应的测试用例,驱动目标程序在所述测试用例所包含的用于仿真连串交互事件的指令集的控制下受测运行。
适应本申请的目的之一而提供的一种程序测试执行装置,其包括:
程序接收模块,用于通过第一通信链路从服务器接收目标程序的安装包,完成该目标程序的本地安装;
用例接收模块,用于通过第二通信链路从服务器接收所述安装包相对应的测试用例;
程序测试模块,用于解析执行该测试用例中的指令集,以通过所述指令集的执行,仿真连串交互事件作用于目标程序而完成运行测试。
适应本申请的目的之一而提供的一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述的程序测试控制方法/程序测试执行方法的步骤。
适应本申请的另一目的而提供的一种非易失性存储介质,其以计算机可读指令的形式存储有依据所述的程序测试控制方法/程序测试执行方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
相对于现有技术,本申请的优势如下:
首先,通过本申请的各个步骤的自动执行,先获取目标程序的安装包,然后通过第一通信链路将安装包传输到目标设备完成安装,继而通过第二通信链路将与该安装包所实现的目标程序相对应的测试用例传输到目标设备实现运行,由测试用例所编写的指令集控制目标程序在目标设备上的运行测试,提供了自动化测试应用程序的技术框架,可免去人工环节,可以大大提高应用程序在终端设备实际环境中运行情况下的测试效率。
其次,本申请的测试用例可预先编写并集中管理以便与目标程序适配调用,测试用例中包含指令集,因此可以仿真各种各样的交互事件,当测试用例被发送到目标设备执行之后,测试用例可通过向目标程序的进程传递各种交互事件而对目标程序实施各种界面控制,从而实现对用户操控目标程序的模拟仿真,这种情况下,所有人工操作均可被一份测试用例包含,连同人工操作流程也可以在测试用例中预先规划,同一份测试用例理论上也可以适用于同一应用程序的多个升级幅度不大的不同版本,对于应用程序新版本出现的一些变动,也仅需通过适应性修改测试用例的部分内容便可快速适应,因此可以理解,本申请尤其适用于处理大量的应用程序需要集中、频繁测试的情况,在这种情况下,本申请所取得的效率将更为明显地得到提升。
此外,本申请将控制安装包在目标设备的安装以及控制测试用例在目标设备的调用运行分别交由不同的通信链路负责,前者方便使用操作系统固有的适配调试工具来实现,一个安装包被传输后便不再需要用到第一通信链路;后者可以集中优势由开发者定义和丰富其功能,在整个测试过程中可以随时通过第二通信链路进行服务器与目标设备之间的通信交互,因此,整体上有利于节省实施本申请所需的开发成本,可以优化接口调用而优化服务器和目标设备的内存占用和网络开销。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为实施本申请的技术方案相关的一种典型的部署架构示意图;
图2为本申请的程序测试控制方法的典型实施例的流程示意图;
图3为本申请的程序测试控制方法的另一实施例的流程示意图;
图4为本申请的程序测试执行方法的典型实施例的流程示意图;
图5为本申请的程序测试控制装置的典型实施例的原理框图;
图6为本申请的程序测试执行装置的典型实施例的原理框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
请参阅图1,本申请相关技术方案实施时所需的硬件基础可按图中所示的架构进行部署。本申请所称的服务器80可以作为一个前端的应用服务器,负责进一步连接起相关数据服务器,以此构成逻辑上相关联的服务机群,来为相关的终端设备例如图中所示的智能手机81和个人计算机提供服务。所述的智能手机和个人计算机均可通过公知的网络接入方式与服务器80建立数据通信链路。本申请服务器所实现的功能,可以优选Tomcat实现,但本领域技术人员应当知晓,Tomcat只是一种部署工具,便于采用J2EE开发,仅供参考,本领域技术人员可以灵活选用不同工具实现同等部署,并不影响本申请的技术方案的实现。
本申请的终端设备配备有相关操作系统,例如IOS、HMS(鸿蒙)、Android以及其他提供同等功能的操作系统,在此类操作系统的支持下,服务器与终端设备之间可以通过彼此约定的通信链路进行数据通信,而为这些操作系统适应性开发的应用程序也得以在终端设备中正常运行,通过终端设备实现人机交互以及远程交互。
当然,本申请的架构中涉及的服务器和终端设备均可接入公网,与其他通信对象进行各种各样的数据通信和交互。
本申请的应用程序,其通称意义是指运行于服务器或终端设备之类的电子设备的应用程序,这些应用程序采用编程的方式实现了本申请的相关技术方案,其程序代码可被以计算机可执行指令的形式保存于计算机能识别的非易失性存储介质中,并被中央处理器调入内存中运行,通过该应用程序在计算机的运行而构造出本申请的相关装置。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
请参阅图2,本申请的一种程序测试控制方法,由服务器侧的应用程序负责执行体现,在其典型实施例中,其包括如下步骤:
步骤S11、获取目标程序的安装包:
所述目标程序为本申请的被测试的应用程序,适于运行于智能手机、平板电脑之类的电子设备中,被用于测试所述目标程序的电子设备便是本申请所称的目标设备。作为一个特例,如果通过个人计算机虚拟了相当于智能手机、平板电脑之类的应用环境,从而使该应用环境适于支持所述目标程序的运行,则这种情况下该个人计算机也可被视为本申请所称的目标设备。
适应目标设备所运行的操作系统的不同,目标程序的安装包的相应形式也不同,例如Android系统中的后缀为APK的安装包与IOS操作系统的后缀为IPA的安装包的表现形式自然不同,本领域技术人员对此应当知晓。
实践中,开发人员完成一个应用程序的开发后,会将该应用程序的最新版本发布到各种应用商店建构或者由开发团队内建的应用分发系统中,所述应用分发系统通常会对各种应用程序的不同时期形成的多个版本进行有序的组织和管理,本申请便可以从这些应用分发系统中获取该应用程序的至少一个版本的安装包,一般而言,本申请获取的安装包是该应用程序的最新版本的安装包。
本申请用于对目标程序进行测试的安装包,通常是该目标程序的最新开发版本对应的安装包,该安装包既可以是从所述应用颁发系统相关的服务器中获取,也可以是预先存储在本地服务器中的,其获取来源并不影响本申请的正常实施。
一个适应从应用分发系统中获取所述的安装包的实施例中,用户可以访问应用程序列表,确定目标程序,向远程服务器发出下载指令,从而向远程服务器获取目标程序的最新版本的安装包,完成该安装包的下载。
步骤S12、启用第一通信链路向目标设备传输所述安装包,驱动该安装包在目标设备中完成安装:
负责运行实现了本方法的应用程序所运行的服务器,可以由一部台式机充任,当其运行实现了本方法的应用程序之后,便可与目标设备进行通信。首先,需要启用第一通信链路与目标设备进行传输安装包的通信。
所述的第一通信链路,可以适应目标设备所运行的操作系统而借助相应的系统调试工具来建议,例如对于Android操作系统而言,其为服务器提供adb调试工具来建立该服务器与目标设备之间的所述第一通信链路;对于IOS操作系统而言,其同理为服务器提供ideviceinstaller工具来实现同等功能。
adb(Android Debug Bridge)是一个通用命令行工具,其允许充当服务器的计算机与模拟器实例或连接的Android设备进行通信,可为这些Android设备的管理和操作提供便利,如安装和调试目标设备上的应用程序等。关于利用adb命令与Android设备进行通信的具体操作方式,属于本领域技术人员熟知的技术内容,故此处恕不赘述。
同理,ideviceinstaller是一个命令行工具,主要运行于充当服务器的计算机,用于管理iOS设备上应用程序的安装与卸载。由于该工具是由操作系统配备的开放工具,因此,本领域技术人员对其应用均已知晓,故亦恕不赘述。
此外,其他不同的操作系统,一般也会提供类似的命令行工具,以便为充当服务器的计算机提供可操控运行该操作系统的终端设备的手段。
在通信媒介上,目前多采用数据线将所述的服务器与所述的目标设备直连的方式来实现,其中Android的adb也可支持无线连接甚至支持远程连接,无论如何,服务器与目标设备通过彼此约定的某个端口之间形成的通信链路,来畅通双方的数据通信。
适应目标设备采用不同操作系统的情况,在本步骤中便可采用相应的调试工具,启用预先相应建立的所述第一通信链路,通过该通信链路向目标设备传输所述目标程序的安装包。
当确认所述安装包已经被目标设备成功接收之后,可以进一步调用安装命令,驱动目标设备执行所述安装包在其本机的安装,甚至控制其运行。
应当理解,本步骤可以通过编程实现为自动化执行的程序代码,以便一旦目标设备成功接入并被识别后,即可响应于用户指令自动执行本步骤。当然,变通的实施例中,在本步骤执行之前,也可以为用户提供手动配置环节,以便用户自行输入各种关于目标设备的配置信息,然后依据这些配置信息建立和启用所述的第一通信链路,完成本步骤的执行。对此类变通,本领域技术人员应当理解。
步骤S13、启用第二通信链路向目标设备传输与所述目标程序相对应的测试用例,驱动目标程序在所述测试用例所包含的用于仿真连串交互事件的指令集的控制下受测运行:
所述的第二通信链路,不同于所述第一通信链路,是为了实现控制目标设备对所述目标程序进行测试而建立的。
在服务器和目标设备之中分别运行自定义开发的可以相互通信的通信进程,两个通信进程通过约定的同一端口建立起所述的第二通信链路,通过第二通信链路实现彼此之间的数据通信。其中,服务器侧的通信进程可以向目标设备的进程推送预先编写的测试用例,对目标设备发送多种指令;而目标设备侧的通信进程则可以接收并解析执行所述的测试用例,响应所述的指令,反馈测试用例执行结果相关信息等。
为了更高效地实现服务器与目标设备之间的第二通信链路,可以采用本领域所熟知的Appium开源软件来辅助实施。
Appium是一个开源测试自动化框架,可用于原生、混合和移动Web应用程序测试,其使用WebDriver协议驱动iOS,Android和Windows应用程序。Appium可以跨平台同时支持Android、iOS,支持多种语言:java、python、php、Ruby等等。Appium提供服务器侧的Server组件的客户端侧的Clients组件(IOS中为WebDriverAgent,Android中为UiAutomator),因此,适于分别在服务器和目标设备处运行相应的进程而支持建立起所述的第二通信链路。
需要注意的是,尽管Appium本身能为自动化测试提供技术支持,但此处所称的自动化并非本申请的方法的各个步骤所体现的自动化过程。根据Appium的开源文档,其用于测试时需要进行复杂的多种配置,因此,原本并不具备解决本申请所揭示的现有技术中存在的问题的能力。而且,Appium在本申请中仅作为一种实例可采用的部件被引用说明,因此,不宜以此处的揭示为依据限缩本申请应涵盖的保护范围。
所述的测试用例,可以采用多种计算机语言来编写,只要目标设备处的相应进程可以解析执行即可,例如采用python语言进行编写,前述示例中的Appium框架中在终端设备侧的进程也可用于解释执行这样的测试用例。每个测试用例,通过编写代码构成指令集,可以代码文件的形式存在,构成脚本。作为其基本功能,这些指令集的主要任务是负责仿真一连串的交互事件,以使得计算机系统能够识别这些交互事件,从而触发相应的功能模块对相应的交互事件做出进一步的响应。可以理解,测试用例将繁复的人为操作转换成自动执行的操作命令,大大地减少了测试人员的重复性操作,提高了测试效率。
可以采取多种方式对交互事件实施仿真,一种实施方式是向系统广播事件消息,例如在Android系统中广播一个触控事件相关的消息,将导致其被相应的进程所识别并触发该进程中相应的代码的执行;另一种方式中,由于当需要仿真某一交互事件时,实际上是要执行响应于该交互事件的方法(函数),因此,可以通过直接监控受测的目标程序的进程的执行,在需要仿真某一交互事件时,直接调用响应于该交互事件的方法(函数)即可。不同的操作系统和开发工具可能允许不同的技术手段用于实现这一仿真手段,甚至可能不局限于以上给出的两种方式,本领域技术人员可以根据此处的揭示灵活适用该些由操作系统或操作工具提供的技术手段,实现仿真的目的即可。
在编写测试用例时,编程人员一般需要按照一定的业务流程来编写,例如为了测试应用程序的各个界面组件之间的切换是否正常遵守一定的设计逻辑,可以按照相应的操作步骤和界面组件活动之间的变化关系来编制常规测试业务流程;再如,为了处理测试过程中出现的异常,可以按照异常处理时排查故障所需的逻辑来编制异常处理业务流程。
所述常规测试业务流程,举例而言,应用程序正常运行时,当用户在登录界面组件中触控“提交”按键时,理论上会产生一个按键触控事件,从而导致应用程序执行用户身份验证,在用户身份验证成功后进入程序主界面,在验证失败后则弹窗提示,用户取消弹窗后便回到登录界面重新输入其用户验证信息重试。如果需要编写针对这一过程的测试用例,则可遵照此处所揭示的过程,为测试用例编写相应的指令集,实现当监控到出现所述登录界面时,便仿真一个表示作用于“提交”按键的触控而产生的第一交互事件,继而检测界面组件的变化,当界面切换到程序主界面时,便可继续仿真与主界面相适应的交互事件进行下一步测试;当界面切换为所述的弹窗时,则可继续仿真关闭该弹窗相对应的第二交互事件。可见,测试用例便是依据这种业务流程而以指令集的形式仿真出一连串的交互事件,来对受测程序实施测试的。在这种情况下,一个测试用例通常包含多个交互事件,这些交互事件之间的组织关系,存在时间上的先后关系,也可能存在分支关系,视测试时所需的业务流程具体情况而定,以目标设备可解析执行的计算机语句编写而成。可以理解,常规测试业务流程中,至少存在一个执行分支,其中的多个交互事件被应用的时间顺序关系符合所述目标程序在运行时所表现的界面组件之间的调度顺序关系,也即,所述交互事件按照目标程序正常运行时界面组件正常切换顺序而部署。
所述的异常处理业务流程,举例而言,有时,在对目标程序进行常规测试的过程中,由于编程考虑不周产生的逻辑错乱或其他漏洞等原因,可能会产生异常,一些异常往往导致测试流程无法按照预期顺利完成。这种情况下便需要在测试用例中加以考虑,使得测试用例中所编写的指令集具备执行异常处理相关的业务流程,从而在受测程序出现异常时,仍可确保整个测试流程的顺利进行。前述示例的登录界面中,如果无法为其提供合法的用户登录信息,则可能导致无法进入受测程序的主界面,从而无法开展后续的常规测试业务流程。这种情况对于新架设服务所提供受测应用程序是常见的,因为这种新架设服务可能尚未建立有效的用户账户。针对这种情况,便需要设法跳过所述的登录界面,进入受测程序的主界面,此时,便需要测试用例的异常处理业务流程能够仿真出已经成功登录的交互事件,以使受测程序能够切换到其主界面。此外,另一场景中,受测程序的数据采集界面需要获取用户输入的合规信息,但测试过程中无法提供有效合规的信息,这种情况下也会导致受测程序抛出异常,此时,异常处理业务流程便可捕捉该异常,然后重新以新的数据提供新的数据进行尝试,直到这些数据被视为合规信息,便可完成异常处理,继续常规测试业务流程。可以看出,所述异常处理业务流程中,由于出现异常,本该成为活跃状态的界面组件,可能由于异常的抛出或者弹窗的出现,而被后台转为非活跃状态,置于界面组件栈的下层,这种情况下,需要将该界面组件从非活跃状态切换回活跃状态,因此,可以触发一个所述的交互事件,通过关闭当前活跃的界面组件或者直接作用于正处于非活跃状态的该界面组件上,使该非活跃的界面组件从非活动状态变为活跃状态。
由以上关于测试用例的说明可以理解,测试用例本质上是一种由指令集构成的程序文本,其需适应不同的测试业务流程进行个性化开发。另一方面,对于频繁迭代的应用程序而言,为其旧版本开发的测试用例,如果相关部分的界面切换业务流程未产生明显变化,通常也适用于对其新版本进行测试,因此,可以通过在服务器对测试用例进行存储管理,来避免测试用例的重复开发,从而提升软件工程管理效率。
为了对多种目标程序的多份测试用例进行存储管理,可建立一数据库,用该数据库维护目标程序的唯一性特征与其测试用例之间的映射关系,一个测试用例与其相应的目标程序的唯一性特征信息共同形成该数据库的一条数据记录,以此,后续便可利用某一待测试的应用程序的唯一性特征,从该数据库中查询获取与该应用程序相关联的一个或多个测试用例用于后续对该应用程序进行测试。一般而言,应用程序的包名即为其唯一性特征,可作为所述的唯一性特征信息用于与测试用例关联存储。所述数据库可以存储于本申请的所述服务器中,也可存储到云端部署的其他服务器中,只要可供本申请所调用即可。由此可见,本申请不仅有助于实现对应用程序的自动化测试,而且适于提升软件工程的管理能力,对于负责开发大量的应用程序的开发团队或组织而言,通过本申请的技术方案对测试用例进行管理,可以大大提升整个组织应对其旗下大量软件产品的测试需求的能力,进一步大大节省其技术开发成本。
为了确保测试用例的指令集在目标设备被解析执行时可以对目标程序执行相关的测试,可以在测试用例中嵌入程序勾子相关的代码,即在其中应用Hook技术,以便在测试用例运行期间,通过Hook相关函数及时识别目标程序的具体运行过程,从而方可以此为基础仿真触发相关交互事件,处理相关异常,从而推动整个测试过程。关于Hook技术的应用,为本领域技术人员所知晓,恕不详述。
可以知晓,每种操作系统中,为支持程序开发测试,均可将程序运行过程中的各种信息封装为可以被获取的对象,以便开发者通过这些对象获取程序运行的各种状态和数据,从而支持包括Hook技术在内的各种程序控制技术。
为了使所述测试用例更好地运行,可以自定义一个类,利用该类对目标设备操作系统中为运行其中的应用程序提供的运行过程相关的状态和数据进行扩展封装,在此基础上提供一个实例对象,以便更为方便地通过该实例对象引用相关状态和数据,使测试用例在运行过程中调用目标程序的各种状态和数据变得更为高效。这个类可以是在实施本申请时根据实际需要由开发人员自行实现的。
作为一种特例,由于所述Appium技术框架本身便扩展了WebDriver的API,基本满足本申请的测试用例调用所需,因此,在本申请解析执行测试用例时,只要Appium提供的WebDriver实例对象可以满足测试用例所需而提供相关状态和数据,便可省去为此自行开发的麻烦。
可以理解,当将测试用例传输至目标设备并驱动目标设备解析执行该测试用例的指令集时,目标设备上的相关技术支持已经预先架设完备,因而不会影响本申请的创造精神的体现和发挥。
当本步骤被执行时,可将用户提供的与目标程序相匹配的测试用例,或者依据所述目标程序的包名从所述数据库中调用其相关测试用例,将这些测试用例通过所述的第二通信链路传输给目标设备。在所述目标设备完成该测试用例的接收后,自动地,或者响应于服务器通过第二通信链路下达的指令,使目标设备受驱动而开始解析并执行该测试用例,在所述测试用例的指令集的作用下,目标程序受测运行。目标设备中的负责实施测试的相应进程按照指令集所包含的常规测试业务流程先发触发各种交互事件,控制和引导目标程序完成各个界面组件的切换,如果中间出现异常,也可按照指令集所包含的异常处理业务流程进行相应的容灾处理,最终完成整个测试用例的执行。以所述Appium技术框架为例,这一过程可由其Clients端进程负责完成,只要事先因应本申请实施的需要完成相关基础配置,使其适于配合实现本申请的技术方案即可。
通过以上本申请关于其程序测试控制方法的各种实施例的揭示可知,在该方法的控制下,最终可以在目标设备中实现对目标程序的运行测试,这一测试过程可以在目标设备侧被人工观察并记录其结果,从而获得测试输出。
考虑到进一步提升自动化集成度的需要,如图3所示的另一实施例中,本申请为该方法集成一后置步骤S14:格式化目标设备反馈的测试用例运行结果数据,输出相应的结果信息。
在测试过程中形成的相关数据,可以灵活定义,此处给出示例,主要包括每一个测试用例执行后生成的日志数据、甚至录屏数据等。当然,这些数据可以由目标设备侧的相关进程上传到云端服务器,而仅向本申请的用于运行本方法的服务器返回相关存储地址,再由该服务器响应于用户访问为客户从所述存储地址获取详情信息即可。可以理解,服务器获得这些结果信息后,可以通过邮件、企业微信机器人等公知通信工具提供的接口发送给相关用户。
同理,为了进一步提升自动化程度,尽量降低人工干预成分,另一实施例中,本方法在启用所述第二通信链路之前,通过第一通信链路控制目标设备完成第二通信链路的配置。
为了实现目标设备与服务器之间的第二通信链路,可以规范彼此之间的配置,服务器侧由于处于服务开放状态而通常不需要额外配置,但作为客户端的目标设备处,则需适应服务器侧的配置的协议而依据一定的配置信息进行配置,才能与服务器建立所述的第二通信链路。这些配置信息一般会包括用于监听数据的通信端口,可能也包括证书设置信息、网络环境信息、信任机制等等,实质上是一种协议通信机制,视服务器所开放的服务的规范而定,本领域技术人员根据此处的揭示应足以理解。具体到前述关于Appium技术框架的应用示例,其在目标设备处,通过配置,将可通过其提供的FBWebServer进程,依据配置信息中指定的8100端口对第二通信链路实施监听,由此与预备器建立基于第二通信链路的通信。
考虑到不同机型、不同操作系统,以及不同操作系统版本等,可能导致目标设备所安装的用于支持第二通信链路工作的进程的不同而需要不同的配置信息,多种这样的配置信息最好能进行的有序的组织和访问,因而,本申请的服务器可以提供一个数据库用于存储目标设备的机型信息与其相对应的第二通信链路配置信息之间的对应关系数据,以便本申请的服务器通过所述第一通信链路获取目标设备的机型信息之后,利用该机型信息所包含的目标设备中正在运行的操作系统的版本信息,为其在该数据库中查询确定相对应的配置信息,再通过第一通信链路将该配置信息传输至目标设备处,驱动目标设备利用该配置信息完成所述第二通信链路的配置和建立,以确保该服务器后续可通过第二通信链路顺利自动执行本申请的后续步骤,避免人力干预。
为了控制目标设备能够实施关于第二通信链路的配置,进一步的实施例中,本方法在通过第一通信链路控制目标设备完成第二通信链路的配置的步骤之前,通过第一通信链路控制目标设备运行用于支持第二通信链路工作的进程,例如所述由开发人员为本申请实施的需要自定义开发的目标设备侧的进程,或所述Appium技术框架所提供的Clients侧进程,先行确保该进程在目标设备中运行之后,后续目标设备便可以将其接收到配置信息传递给该进程,由其完成第二通信链路的具体配置和建立。
如果目标设备不存在所述支持第二通信链路工作的进程的应用程序时,则在进一步的实施例中,本方法在通过第一通信链路控制目标设备运行用于支持第二通信链路工作的进程的步骤之前,通过第一通信链路向目标设备传输该进程相对应的程序安装文件,驱动该程序安装文件在目标设备中完成安装。以此确保目标设备可以先行利用该程序安装文件实现支持第二通信链路工作的进程对应的应用程序的安装,然后将其启动,再接收所述配置信息由其完成配置,最后配合服务器建立起所述的第二通信链路。
本申请的一种程序测试执行方法,由配合本申请的程序测试控制方法实施的目标设备进行实施,以便配合完成所述目标程序的测试,其工作原理已通过前述关于服务器侧的实现加以披露,为更明晰其详情过程,此处进一步说明。
请参阅图4,本申请的一种程序测试执行方法,在其典型的实施例中,包括如下步骤:
步骤S21、通过第一通信链路从服务器接收目标程序的安装包,完成该目标程序的本地安装:
如前所述,目标设备与服务器之间已经通过有线或无线的方式建立起底层连接,在此基础上,便可在所述服务器的控制下,在双方之间建立所述的第一通信链路。
配合前述服务器的运行,本申请的目标设备以无线或有线的方式与所述服务器建立所述第一通信链路之后,在其操作系统所提供的调试工具的指令的控制下,便可接收服务器传输的所述目标程序的安装包并完成该安装包在本地的安装、启动。
步骤S22、通过第二通信链路从服务器接收所述安装包相对应的测试用例:
在目标设备已经启动用于支持第二通信链路工作的进程并完成关于第二通信链路的配置的基础上,便可从服务器接收其经由第二通信链路传输过来的用于测试所述目标程序的运行的测试用例,将由该进程解析执行。
在本步骤之前,为了提高自动化程度,目标设备可以接收所述服务器通过第一通信链路发送的控制指令,而先行启动支持所述第二通信链路工作的进程,接收通过第一通信链路推送的关于第二通信链路的配置信息,交由该进程完成所述第二通信链路的配置,以确保第二通信链路能够正常工作。
如果所述支持第二通信链路工作的进程对应的应用程序未安装,目标设备还可以通过第一通信链路先行接收相应的程序安装文件,受控在本地实现其安装后,将其启动再执行前述的其他后置工作。
步骤S23、解析执行该测试用例中的指令集,以通过所述指令集的执行,仿真连串交互事件作用于目标程序而完成运行测试:
如前所述,目标设备接收与目标程序相匹配的测试用例后,便由相关进程对其进行解析,执行其中所包含的指令集,从而完成所述常规测试业务流程和/或异常处理业务流程,在执行过程中,通过其指令集仿真出的连串交互事件,将其作用于所述目标程序,而完成运行测试。
如前所述,目标设备的用于解析执行测试用例的相关进程可以用勾子技术来实施对目标程序的运行测试,捕捉其中产生的异常,最终形成相关测试运行结果数据,作为结果信息上报给所述服务器。为获取相关结果数据,目标设备可以将测试过程中产生的数据形成日志文件,还可以对测试过程进行录屏形成录屏文件,这些以文件封装的测试数据可以先行上传到云端服务器,而在向本申请的服务器反馈结果信息时,则将该些文件在云端服务器的存储地址作为结果信息反馈即可。
可以理解,适应前述关于异常处理的特例,当目标程序的运行触发异常处理业务流程时,根据所述测试用例的指令集所包含对异常处理业务流程的描述,产生至少一个所述的交互事件,使所述目标程序的一个界面组件从非活跃状态切换为活跃状态。由此具备这种异常处理的能力,即使目标程序中存在某些开发漏洞或者异常业务逻辑,也可在其测试过程中被所述异常处理业务流程所兼容,从而确保整个测试过程不至于中断或出错,大大提高测试效率。
为了更全面的采集受测试的目标程序的运行过程中数据,目标程序的开发人员还可以在目标程序的源代码中预先埋点,是编程调试中的常用手段,由程序员按需设置以便获取程序运行中间状态数据,这些数据也是程序员按需指定的,因此,所谓埋点,即向程序源码中植入用于采集某种数据的代码,当该代码被运行时,便可向指定的云端服务器上传此处采集的测试数据,以便用于进一步的分析。由此,通过目标程序在目标设备中的受测运行,不仅可以获取界面测试相关结果,还可获取其相关内容数据,两者通常可以互相印证,有利于开发人员通过综合分析确定目标程序存在的各种隐患,从而提升目标程序的纠错效率。
本申请的服务器可以进一步利用目标程序的埋点所形成的各种数据,对这些数据实施有效的组织管理,以便提供给开发人员参考。
进一步,可以通过将上述各实施例所揭示的方法中的各个步骤进行功能化,构造出本申请的一种程序测试控制装置,按照这一思路,请参阅图5,其中的一个典型实施例中,该装置包括:
程序获取模块11,用于获取目标程序的安装包;
安装控制模块12,用于启用第一通信链路向目标设备传输所述安装包,驱动该安装包在目标设备中完成安装;
测试控制模块13,用于启用第二通信链路向目标设备传输与所述目标程序相对应的测试用例,驱动目标程序在所述测试用例所包含的用于仿真连串交互事件的指令集的控制下受测运行。
进一步,可以通过将上述各实施例所揭示的方法中的各个步骤进行功能化,构造出本申请的一种程序测试执行装置,按照这一思路,请参阅图6,其中的一个典型实施例中,该装置包括:
程序接收模块21,用于通过第一通信链路从服务器接收目标程序的安装包,完成该目标程序的本地安装;
用例接收模块22,用于通过第二通信链路从服务器接收所述安装包相对应的测试用例;
程序测试模块23,用于解析执行该测试用例中的指令集,以通过所述指令集的执行,仿真连串交互事件作用于目标程序而完成运行测试。
进一步,为便于本申请的执行,本申请提供一种电子设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如前所述的各实施例中所述程序测试控制方法/程序测试执行方法的步骤。
可以看出,存储器适宜采用非易失性存储介质,通过将前述的方法实现为计算机程序,安装到手机或计算机之类电子设备中,相关程序代码和数据便被存储到电子设备的非易失性存储介质中,进一步通过电子设备的中央处理器运行该程序,将其从非易性存储介质中调入内存中运行,便可实现本申请所期望的目的。因此,可以理解,本申请的一个实施例中,还可提供一种非易失性存储介质,其中存储有依据所述的程序测试控制方法/程序测试执行方法各个实施例所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
综上所述,本申请实现了应用程序自动化测试解决方案,有助于提高受测应用程序的自动化测试效率。
本技术领域技术人员可以理解,本申请包括涉及用于执行本申请中所述操作、方法中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其存储器之内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(ErasableProgrammable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(ElectricallyErasable Programmable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本申请公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (15)
1.一种程序测试控制方法,其特征在于,包括如下步骤:
获取目标程序的安装包;
启用第一通信链路向目标设备传输所述安装包,驱动该安装包在目标设备中完成安装;
启用第二通信链路向目标设备传输与所述目标程序相对应的测试用例,驱动目标程序在所述测试用例所包含的用于仿真连串交互事件的指令集的控制下受测运行。
2.根据权利要求1所述的方法,其特征在于,其在启用第二通信链路之前包括如下步骤:通过第一通信链路控制目标设备完成第二通信链路的配置。
3.根据权利要求2所述的方法,其特征在于,其在通过第一通信链路控制目标设备完成第二通信链路的配置的步骤之前,通过第一通信链路控制目标设备运行用于支持第二通信链路工作的进程。
4.根据权利要求3所述的方法,其特征在于,其在通过第一通信链路控制目标设备运行用于支持第二通信链路工作的进程的步骤之前,通过第一通信链路向目标设备传输该进程相对应的程序安装文件,驱动该程序安装文件在目标设备中完成安装。
5.根据权利要求1至4中任意一项所述的方法,其特征在于,启用第二通信链路向目标设备传输与所述目标程序相适配的测试用例的步骤中,利用该安装包的唯一性特征,从本地数据库查询确定与该安装包相对应的测试用例。
6.根据权利要求1至4中任意一项所述的方法,其特征在于,所述测试用例的指令集包含对常规测试业务流程的描述,该业务流程中,多个交互事件被应用的时间顺序关系符合所述目标程序在运行时所表现的界面组件之间的调度顺序关系。
7.根据权利要求1至4中任意一项所述的方法,其特征在于,所述测试用例的指令集包含对异常处理业务流程的描述,该业务流程中,至少有一个所述的交互事件使所述目标程序的一个界面组件从非活跃状态切换为活跃状态。
8.一种程序测试执行方法,其特征在于,包括如下步骤:
通过第一通信链路从服务器接收目标程序的安装包,完成该目标程序的本地安装;
通过第二通信链路从服务器接收所述安装包相对应的测试用例;
解析执行该测试用例中的指令集,以通过所述指令集的执行,仿真连串交互事件作用于目标程序而完成运行测试。
9.根据权利要求8所述的方法,其特征在于,其包括如下步骤:
启动用于支持所述第二通信链路工作的进程,完成所述第二通信链路的配置。
10.根据权利要求9所述的方法,其特征在于,启动用于支持所述第二通信链路工作的进程之前,通过所述第一通信链路接收该进程对应的程序安装文件,完成该程序安装文件的本地安装。
11.根据权利要求8至10中任意一项所述的方法,其特征在于,实施该目标程序的运行测试的步骤中,当目标程序的运行触发异常处理业务流程时,根据所述测试用例的指令集所包含对异常处理业务流程的描述,产生至少一个所述的交互事件,使所述目标程序的一个界面组件从非活跃状态切换为活跃状态。
12.一种程序测试控制装置,其特征在于,其包括:
程序获取模块,用于获取目标程序的安装包;
安装控制模块,用于启用第一通信链路向目标设备传输所述安装包,驱动该安装包在目标设备中完成安装;
测试控制模块,用于启用第二通信链路向目标设备传输与所述目标程序相对应的测试用例,驱动目标程序在所述测试用例所包含的用于仿真连串交互事件的指令集的控制下受测运行。
13.一种程序测试执行装置,其特征在于,其包括:
程序接收模块,用于通过第一通信链路从服务器接收目标程序的安装包,完成该目标程序的本地安装;
用例接收模块,用于通过第二通信链路从服务器接收所述安装包相对应的测试用例;
程序测试模块,用于解析执行该测试用例中的指令集,以通过所述指令集的执行,仿真连串交互事件作用于目标程序而完成运行测试。
14.一种电子设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至7中任意一项所述的程序测试控制方法的步骤,或执行如权利要求8至11中任意一项所述的程序测试执行方法的步骤。
15.一种非易失性存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至7中任意一项所述的程序测试控制方法,或依据权利要求8至11中任意一项所述的程序测试执行方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011079355.6A CN112199283A (zh) | 2020-10-10 | 2020-10-10 | 程序测试控制、执行方法及其相应的装置、设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011079355.6A CN112199283A (zh) | 2020-10-10 | 2020-10-10 | 程序测试控制、执行方法及其相应的装置、设备、介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112199283A true CN112199283A (zh) | 2021-01-08 |
Family
ID=74012717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011079355.6A Pending CN112199283A (zh) | 2020-10-10 | 2020-10-10 | 程序测试控制、执行方法及其相应的装置、设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112199283A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988575A (zh) * | 2021-02-10 | 2021-06-18 | 北京声智科技有限公司 | 一种对多设备系统的自动测试方法、装置及测试设备 |
CN113626321A (zh) * | 2021-07-29 | 2021-11-09 | 北京达佳互联信息技术有限公司 | 桥接测试方法、装置、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090122665A (ko) * | 2008-05-26 | 2009-12-01 | 대진대학교 산학협력단 | 테스트 라이브러리를 이용하는 휴대폰 어플리케이션 검증시스템 및 그 방법 |
CN103123605A (zh) * | 2013-02-07 | 2013-05-29 | 百度在线网络技术(北京)有限公司 | 一种Android平台自动化集成测试方法和装置 |
CN106506766A (zh) * | 2016-11-21 | 2017-03-15 | 努比亚技术有限公司 | 移动终端及自动化测试方法 |
CN107465572A (zh) * | 2017-08-02 | 2017-12-12 | 华数传媒网络有限公司 | 智能终端测试方法、装置及系统 |
CN109240934A (zh) * | 2018-09-29 | 2019-01-18 | 中国平安人寿保险股份有限公司 | 应用程序性能测试方法、装置、及计算机可读存储介质 |
CN110781085A (zh) * | 2019-10-23 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 一种游戏自动化测试方法、装置、终端和计算机存储介质 |
-
2020
- 2020-10-10 CN CN202011079355.6A patent/CN112199283A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090122665A (ko) * | 2008-05-26 | 2009-12-01 | 대진대학교 산학협력단 | 테스트 라이브러리를 이용하는 휴대폰 어플리케이션 검증시스템 및 그 방법 |
CN103123605A (zh) * | 2013-02-07 | 2013-05-29 | 百度在线网络技术(北京)有限公司 | 一种Android平台自动化集成测试方法和装置 |
CN106506766A (zh) * | 2016-11-21 | 2017-03-15 | 努比亚技术有限公司 | 移动终端及自动化测试方法 |
CN107465572A (zh) * | 2017-08-02 | 2017-12-12 | 华数传媒网络有限公司 | 智能终端测试方法、装置及系统 |
CN109240934A (zh) * | 2018-09-29 | 2019-01-18 | 中国平安人寿保险股份有限公司 | 应用程序性能测试方法、装置、及计算机可读存储介质 |
CN110781085A (zh) * | 2019-10-23 | 2020-02-11 | 腾讯科技(深圳)有限公司 | 一种游戏自动化测试方法、装置、终端和计算机存储介质 |
Non-Patent Citations (1)
Title |
---|
林小捷;陆璐;: "一个支持持续集成的移动应用功能测试框架", 计算机与数字工程, no. 03, 20 March 2015 (2015-03-20) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988575A (zh) * | 2021-02-10 | 2021-06-18 | 北京声智科技有限公司 | 一种对多设备系统的自动测试方法、装置及测试设备 |
CN113626321A (zh) * | 2021-07-29 | 2021-11-09 | 北京达佳互联信息技术有限公司 | 桥接测试方法、装置、系统及存储介质 |
CN113626321B (zh) * | 2021-07-29 | 2024-03-19 | 北京达佳互联信息技术有限公司 | 桥接测试方法、装置、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110633209B (zh) | 一种车载安卓多媒体导航仪自动化测试方法及系统 | |
US20220147367A1 (en) | Method and System for Automation Tool Set for Server Maintenance Actions | |
CN112306887B (zh) | 程序测试分发方法及其相应的装置、设备、介质 | |
US10067863B1 (en) | Feature targeting of test automation lab machines | |
US20110179398A1 (en) | Systems and methods for per-action compiling in contact handling systems | |
US10817819B2 (en) | Workflow compilation | |
US20110178946A1 (en) | Systems and methods for redundancy using snapshots and check pointing in contact handling systems | |
CN112199284A (zh) | 程序自动化测试方法及其相应的装置、设备、介质 | |
CN111124919A (zh) | 一种用户界面的测试方法、装置、设备及存储介质 | |
CN104424095A (zh) | 一种移动终端的自动化测试方法和系统 | |
CN110362490B (zh) | 融合iOS与Android移动应用的自动化测试方法及系统 | |
US20110179304A1 (en) | Systems and methods for multi-tenancy in contact handling systems | |
CN106708715A (zh) | 自动化测试方法及装置 | |
US11086696B2 (en) | Parallel cloned workflow execution | |
CN110928625A (zh) | 应用程序的运行控制方法、装置、电子设备及存储介质 | |
CN112306884B (zh) | 程序测试控制、执行方法及其相应的装置、设备、介质 | |
CN111459539A (zh) | 基于镜像分层的持续集成流水线运行方法及装置 | |
CN112199283A (zh) | 程序测试控制、执行方法及其相应的装置、设备、介质 | |
CN113672502A (zh) | 程序多系统测试方法及其相应的装置、设备、介质 | |
CN109598427B (zh) | 机器人的管理方法、装置及电子设备 | |
CN115658529A (zh) | 用户页面的自动化测试方法以及相关设备 | |
CN109634734A (zh) | 自动编译发布方法、装置及计算机可读存储介质 | |
Wang et al. | Research on mobile application automation testing technology based on appium | |
CN111930625B (zh) | 基于云服务平台的日志获取方法、装置及系统 | |
CN111444109B (zh) | 一种移动端ui自动化测试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210111 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. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |