CN108628735A - 应用的自动化测试方法和系统 - Google Patents

应用的自动化测试方法和系统 Download PDF

Info

Publication number
CN108628735A
CN108628735A CN201710173463.1A CN201710173463A CN108628735A CN 108628735 A CN108628735 A CN 108628735A CN 201710173463 A CN201710173463 A CN 201710173463A CN 108628735 A CN108628735 A CN 108628735A
Authority
CN
China
Prior art keywords
test
application
terminal
continuous integrating
client
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
CN201710173463.1A
Other languages
English (en)
Other versions
CN108628735B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710173463.1A priority Critical patent/CN108628735B/zh
Publication of CN108628735A publication Critical patent/CN108628735A/zh
Application granted granted Critical
Publication of CN108628735B publication Critical patent/CN108628735B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Abstract

本公开揭示了一种应用的自动化测试方法和系统。所述方法包括:客户端被持续集成平台触发启动,持续集成平台通过集成功能模块的被测应用源码信息和测试源码信息完成应用安装包的编译;启动的客户端向连接的终端部署测试环境;在测试环境启动应用的测试,应用已被所述持续集成平台通过应用安装包安装至终端;监控终端中应用的测试过程,获得测试结果;向持续集成平台返回测试结果。至此,便在客户端的作用下完成了应用的自动化测试,客户端在此应用的自动化测试中承担了复杂而且独立的工作,而不再需要持续集成平台承担,进而面对集成众多功能的应用,能够实现其所集成的功能,避免出现某些功能实现不稳定基至无法实现的状况。

Description

应用的自动化测试方法和系统
技术领域
本公开涉及计算机应用技术领域,特别涉及一种应用的自动化测试方法和系统。
背景技术
随着互联网的快速发展,运行于各种终端的应用也在飞速发展。一方面,应用的种类和数量越来越多,另一方面,对于单个应用,应用中集成的功能也越来越丰富,进而使得应用的功能日趋强大。
应用功能强大的同时,内部也集成了越来越多的功能模块,即SDK,进而复杂度,具体而言,此应用的源码复杂度也越来越高,手工测试已无法完全支持应用的测试业务。
基于此,持续集成(CI)的自动化测试被引入。通过持续集成平台来实现应用的自动化测试。持续集成平台有着数量庞大的插件,以满足不同的测试需求。通过所拥有的插件,持续集成平台可以自动的编译版本、触发自动化测试和自动生成报告等。
但是,随着应用中功能的持续增加,持续集成平台对其进行的自动化测试中,所需要实现的测试环节众多,测试环境也更为复杂,因此,持续集成平台越来越力不从心。
由此可知,面对集成了越来越多功能的应用,持续集成平台在应用自动化测试的实现中,出现了某些功能实现不稳定甚至无法实现的局限性。
发明内容
为了解决相关技术中持续集成平台对集成众多功能的应用进行自动化测试时,某些功能实现不稳定甚至无法实现的技术问题,本公开提供了一种应用的自动化测试方法和系统。
一种应用的自动化测试方法,所述方法包括:
客户端被持续集成平台触发启动,所述持续集成平台通过集成功能模块的被测应用源码信息和测试源码信息完成应用安装包的编译;
启动的所述客户端向连接的终端部署测试环境;
在所述测试环境启动应用的测试,所述应用集成了功能模块并且已被所述持续集成平台通过所述应用安装包安装至所述客户端连接的终端;
监控所述终端中应用的测试过程,获得所述应用在所述终端的测试结果;
向所述持续集成平台返回所述应用在所述终端的测试结果。
一种应用的自动化测试系统,所述系统包括持续集成平台、客户端和终端,所述客户端实现所述持续集成平台和终端之间的交互;
所述客户端包括:
启动模块,用于被所述持续集成平台触发启动所述客户端,所述持续集成平台通过集成功能模块的被测应用源码信息和测试源码信息完成应用安装包的编译;
环境部署模块,用于向连接的终端部署测试环境;
测试启动模块,用于在所述测试环境启动应用的测试,所述应用集成了功能模块并且已被所述持续集成平台通过应用安装包安装至所述客户端连接的终端;
监控模块,用于监控所述终端中应用的测试过程,获得所述应用在所述终端的测试结果;
结果返回模块,用于向所述持续集成平台返回所述应用在所述终端的测试结果。
本公开的实施例提供的技术方案可以包括以下有益效果:
为执行应用的自动化测试过程,客户端被持续集成平台触发启动,持续集成平台通过集成功能模块的被测应用源码信息和测试源码信息完成应用安装包的编译,被持续集成平台启动的客户端向连接的终端部署测试环境,在测试环境中启动应用的测试,此应用集成了功能模块并且已被持续集成平台通过应用安装包安装至客户端连接的终端,监控终端中应用的测试过程,获得应用在终端的测试结果,至此,便在客户端的作用下完成了应用的自动化测试,客户端向持续集成平台返回应用在终端的测试结果,客户端在此应用的自动化测试中承担了复杂而且独立的工作,而不再需要持续集成平台承担,进而面对集成众多功能的应用,能够实现其所集成的功能,避免出现某些功能实现不稳定基至无法实现的状况,提高了应用进行自动化测试的可靠性和稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1是根据本公开所涉及的实施环境的示意图;
图2是根据一示例性实施例示出的一种装置的框图
图3是根据一示例性实施例示出的一种应用的自动化测试方法的流程图;
图4是根据另一示例性实施例示出的一种应用的自动化测试方法的流程图;
图5是根据图3对应实施例示出的对在测试环境中启动应用的测试步骤的细节进行描述的流程图;
图6是根据图3对应实施例示出的对向持续集成平台返回应用在终端的测试结果步骤的细节进行描述的流程图;
图7是根据一示例性实施例示出的实现SDK持续中自动化测试的系统架构图;
图8是根据图7对应实施例示出的持续集成的SDK中自动没化测试的实现示意图;
图9是根据一示例性实施例示出的一种应用的自动化测试系统的框图;
图10是根据图9对应实施例示出的对持续集成平台的细节进行描述的框图;
图11是根据图9对应实施例示出的对环境部署模块的细节进行描述的框图;
图12是根据图9对应实施例示出的对结果返回模块的细节进行描述的框图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据本公开所涉及的实现环境的示意图。该实施环境包括:测试操控端110以及与测试操控端110连接的终端130。
测试操控端110,用于实现应用在终端130的自动化测试。测试操控端110中,部署了持续集成平台。
终端130,包括多个终端,即图1所示的终端1、终端2、终端3、……和终端N。在测试操控端110的作用下,将在各终端分别实现应用所集成的各个功能的自动化测试。
图2是根据一示例性实施例示出的一种装置200的框图。装置200可以是用以实现测试操控端110。
参见图2,该装置200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)222(例如,一个或一个以上处理器)和存储器232,一个或一个以上存储应用程序242或数据244的存储介质230(例如一个或一个以上海量存储设备)。其中,存储器232和存储介质230可以是短暂存储或持久存储。存储在存储介质230的程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对装置200中的一系列指令操作。更进一步地,中央处理器222可以设置为与存储介质230通信,在装置200上执行存储介质230中的一系列指令操作。装置200还可以包括一个或一个以上电源226,一个或一个以上有线或无线网络接口250,一个或一个以上输入输出接口258,和/或,一个或一个以上操作系统241,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。下述图2、图3以及图4所示实施例中执行的步骤可以基于该图2所示的装置结构。
图3是根据一示例性实施例示出的一种应用的自动化测试方法的流程图。该应用的自动化测试方法,如图3所示,可以包括以下步骤。
在步骤310中,客户端被持续集成平台触发启动,持续集成平台通过集成功能模块的被测应用源码信息和测试源码信息完成应用安装包的编译。
其中,客户端用于与持续集成平台相配合,以实现应用中各种功能,进而完成各种功能的测试。客户端与持续集成平台相交互,以接受持续集成平台的控制。
持续集成平台,用于实现应用中功能的持续集成,该集成包括自动化的编译、发布和测试。在一个示例性实施例中,持续集成平台,在基于Java所实现的应用开发下,可以是Jenkins,即基于Java开发的一持续集成工具。
应用中各种功能的集成,实质是各种功能模块,比如,SDK(Software DevelopmentKit,软件开发工具包)的集成,功能模块用于实现应用中的功能。进一步的,在应用的开发中,集成的每一功能模块均有其对应的源码信息,此源码信息,在应用的自动化测试中,即为被测应用源码信息。
被测应用源码信息,即应用的自动化测试中涉及的测试代码。与此被测应用源码信息完成应用安装包编译的测试源码信息,则是对此被测应用源码信息进行测试的测试用例,即测试代码,可视为自动化测试用例。
通过集成了功能模块的被测应用源码信息和测试源码信息生成应用安装包,该应用安装包对应于当前需进行测试的应用。
如前所述的,持续集成平台实现应用的编译、发布和测试,因此,测试源码信息和被测应用源码信息的编译,也将由持续集成平台实现。
持续集成平台在完成了测试源码信息和被测应用源码信息的编译并生成应用安装包之后,便与客户端通信,启动客户端。
在步骤330中,启动的客户端向连接的终端部署测试环境。
其中,被持续集成平台启动的客户端,开始与终端交互,让终端为应用的测试作好准备,部署好测试环境,以便于保证终端中应用测试的执行。
如果终端无法满足应用测试所需要的测试环境,则客户端启动相关的预置命令,通过预置命令的执行改造终端,直至终端部署好测试环境。
在此应当说明的是,客户端所连接的终端,其数量为一个或者多个。在一个示例性实施例的具体实现中,客户端连接了多个终端,以使多个终端并发执行应用的测试。
客户端所连接的多个终端,通过终端中唯一的识别码来区分定位每一终端,实现客户端与终端交互的准确性。各终端之间是相互隔离,不受干扰的,终端只与客户端通讯,因此,能够实现多个终端的并发测试。
客户端与终端之间的连接,可以是WiFi连接、USB(Universal Serial Bus,通用串行总线)数据线连接、NFC(Near Field Communication,近场通信)连接和蓝牙连接等方式中的任意一种。
在一个示例性实施例中,客户端将自动选取稳定的连接方式进行自身与终端的连接。
具体的,客户端对各种连接方式,都有优先级排序,以根据此优先级排序选择优先级最高的连接方式连接。比如,USB数据线连接是最为稳定的,因此,其优先级最高。
进一步的,客户端也将根据此优先级排序,如果自身与终端之间的连接方式,除了当前所使用的连接方式之外,还存在着其它可能的连接方式,则可以进行连接方式的切换,保证客户端与终端之间采用的连接方式是相对最优的。
例如,如果是通过分享的热点与终端,由于热点的网络速度不稳定,并且随着客户端与终端在距离上越来越接近,则可以切换为蓝牙连接。如果有USB数据线连接,则优选选择USB数据线连接。
在步骤350中,在测试环境中启动应用的测试,应用集成了功能模块并且已被持续集成平台通过应用安装包安装至客户端连接的终端。
其中,首先应当说明的是,持续集成平台,作为测试中基础框架,客户端对于持续集成平台而言,类似于一个API接口函数,接收持续集成平台的输入,然后返回输出,而客户端内部的操作,持续集成平台并不关注也不参与。
持续集成平台通过命令使得应用安装包通过客户端与终端的交互而下发至终端,并在终端执行即可在此终端中安装应用。此时,客端可以在客户端部署的测试环境中启动应用的测试。
对于连接了多个终端并实现多个终端中测试环境部署的客户端而言,通过测试的启动,将发起应用在多个终端的并发测试。
在步骤370中,监控终端中应用的测试过程,获得应用在终端的测试结果。
其中,客户端对自身连接的终端,监控其中的测试状态,同时相应获得测试情况,即应用在终端中的测试结果。
测试中的监控包括终端的状态和测试中任务执行情况的监控,并屏蔽测试中的异常,比如,测试过程中来电话或者接收短信消息。
客户端对终端中应用测试过程的监控,一方面,监控测试过程是否出现异常,如果测试过程中出现了异常,例如,终端发生重启、缺电和无信号等异常,此时,客户端会自动化复位终端并监控等待终端的测试环境部署完成后,再次启动测试,以确保终端中测试过程的完成。
另一方面,将监控终端中测试过程的完成,此时,客户端将获得应用在终端中的测试结果。
在一个示例性实施例中,终端中应用的测试过程,包括了多种测试的实现,例如,在Monkey(系统中的一命令行工具)、功能、压力、抵达率等方面测试的实现,进而是获得相关的性能数据,即应用在终端中的测试结果。
在步骤390中,向持续集成平台返回应用在终端的测试结果。
其中,客户端在通过前述步骤获得测试结果之后,即可向持续集成平台返回此测试结果,由此对于应用的测试而言,仍然是在持续集成平台所实现的框架下实现的,客户端仅作为持续集成平台的辅助工作,客户端与终端的交互对于持续集成平台是透明的。
在一个示例性实施例中,测试结果,即为客户端从终端获得的测试日志。具体的,测试日志包括终端系统本身的日志和测试用例预置的结果信息。
在此示例性实施例的具体实现中,客户端从终端获得的测试结果,为测试日志的形式,此时,将对这些测试日志进行解析,以得到最终版的测试结果并反馈给持续集成平台。
此时,测试执行人员即可通过持续集成平台查看应用在终端的测试情况。
通过如上所述的过程,为持续集成平台为集成了众多功能的应用的测试引入了客户端,客户端在一个示例性实施例中,可以是一PC应用程序,具有强大的逻辑模块,并且为此客户端实现了其所执行的应用测试过程,在客户端的作用下,使得持续集成平台对于集成了众多功能的应用的测试,不再由于众多功能所造成的测试环节众多等原因而无法实现应用中某些功能的测试,保证了应用测试的可靠性。
图4是根据另一示例性实施例示出的一种应用的自动化测试方法的流程图。该应用的自动化测试方法,如图4所示,在步骤310之前,还可以包括以下步骤。
在步骤410中,分别进行测试源码信息和被测应用源码信息的拉取。
其中,所指的测试源码信息和被测应用源码信息的拉取,是由持续集成平台执行的。但是,对于所分别进行的测试源码信息和被测应用源码信息的拉取,在一个示例性实施例中,是顺次执行的,即,持续集成平台将在自身初次运行时,进行两次源码拉取。例如,首先拉取测试源码信息,然后再拉取被测应用源码信息。
可以理解的,测试源码信息和被测应用源码信息,在被开发或持续构建之后,会被分别存储至指定位置。例如SVN(Subversion,版本控制)服务器。因此,在随后所进行的测试中,需要持续集成平台分别拉取测试源码信息和被测源码信息。
在步骤430中,通过测试源码信息和被测应用源码信息编译生成应用安装包。
其中,在通过前述步骤,持续集成平台主动完成了源码的拉取之后,将被测应用源码信息编译生成库文件,比如jar包;然后将此库文件作为连接库嵌入到测试源码信息中。
此时持续集成平台会自动进行源码检测,并调用预先配置的静态代码扫描器进行源码的静态扫描,输出相应的扫描结果。
如果扫描结果指示未通过静态扫描,则直接反馈扫描结果并终止,直至拉取新版本的被测应用源码并通过此静态扫描,方可编译生成应用安装包。
在编译生成应用安装包之后,便在一定的位置存放此应用安装包,以拱图3对应实施例以此为输入来通过客户端实现相应应用的测试。
通过如上所述的过程,为持续集成平台和客户端的配合提供了具体实现,持续集成平台,作为应用测试实现的基础框架,是应用的自动化测试中的控制端,因此应用自动化测试中涉及的所有操作,有的是持续集成平台主动执行的,其它则是在持续集成平台的控制下由客户端执行的,因此,持续集成平台并不需要与引入的客户端相适配的做出改变,而只需要客户端为持续集成平台完成其无法实现或者实现不稳定的操作即可,由此,增强了持续集成平台实现应用自动化测试的性能。
图5是根据图3对应实施例示出的对步骤330的细节进行描述的流程图。该步骤330,如图5所示,可以包括以下步骤。
在步骤331中,启动的客户端接收持续集成平台下发的应用测试指令。
其中,通过图3对应实施例中的步骤310,持续集成平台在编译得到应用安装包之后,启动客户端,并指示客户端开始与终端交互。
具体的,启动的客户端将会接收到持续集成平台下发的应用测试指令,应用测试指令用于指示客户端将为持续集成平台当前所需要进行的应用自动化测试执行涉及的一系列操作。
在步骤333中,根据应用测试指令客户端阻塞持续集成平台中的流程,并控制自身连接的终端部署测试环境。
其中,在应用的自动化测试中,客户端相当于持续集成平台和终端二者之间的中间层,因此,接收到应用测试指令的客户端,一方面,将阻塞持续集成平台中的流程,使持续集成平台等待客户端向其返回测试结果;另一方面,客户端也向终端部署测试环境。
图6是根据图3对应实施例示出的对步骤390的细节进行描述的流程图。该步骤390,如图6所示,可以包括以下步骤。
在步骤391中,唤配持续集成平台。
其中,图5对应实施例中,客户端启动之后便阻塞了持续集成平台中的流程,以使得持续集成平台不执行任何操作等待客户端返回测试结果。与之相对应的,客户端在通过对所连接终端中应用测试过程的监控,获得应用在终端的测试结果之后,但可唤醒持续集成平台,即唤醒持续领导平台中等待的流程。
在步骤393中,向唤醒的持续集成平台返回应用在终端的测试结果。
其中,客户端将获取到的应用在终端的测试结果返回给被唤配置的持续集成平台,使持续集成平台完成应用的自动化测试获得测试结果。
通过如上所述的过程,为客户端和持续集成平台二者之间的配合提供了具体实现,进而使得通过客户端和持续集成平台实现的应用自动化测试能够有序进行,提高了应用自动化测试的稳定性。
在另一个示例性实施例中,步骤350之前,该应用的自动化测试方法,还包括以下步骤。
生成持续集成平台获得应用安装包的远程安装命令,通过远程安装命令执行应用安装包,使相应的应用被安装至部署了测试环境的终端。
其中,远程安装命令,用于实现应用安装包在客户端所连接终端的远程安装。在持续集成平台获得应用安装包,并且客户端在终端完成测试环境的部署之后,持续集成平台为自身获得的应用安装包生成远程安装命令,以通过远程安装命令使得终端中应用安装包被运行,并实现终端中应用的安装。
具体的,持续集成平台将生成并向客户端下发远程安装命令,此时,客户端将向自身的终端下发此远程安装命令和应用安装包,使得部署了测试环境的终端安装所需要测试的应用。
通过本公开所实现的应用自动化测试,能够使得不断集成SDK的应用能够顺利实现测试,由于所集成的SDK过多所带来复杂测试不再由于持续集成平台的限制而难以完成,因此,极大的增强了自动化测试的性能。
本公开所实现的客户端,与持续集成平台,相当于两个几乎独立的应用,都具有独立逻辑,也即,客户端具有自己的独立逻辑和服务,可以自动化部署测试环境和监控复杂的终端。具体的,客户端内部可以启动多个进程线程,每个线程可以监控一个socket,每个socket可以与一个终端稳定通讯,因此,在客户端的作用下,便实现了应用在多个终端的并发测试。
对于持续集成平台而言,其可以是原有的持续集成工具,客户端是作为伪插件而存在,并以伪插件的形式运行。对于执行此应用自动化测试的人员而言,客户端是透明的,即客户端的存在,并不会对执行此应用自动化测试的人员产生影响,进而在增强自动化测试性能的同时,保证了执行此应用自动化测试的人员进行测试的简易性。
具体的,客户端以伪插件的形式嵌入到持续集成平台,客户端具有独立的逻辑和生命周期,所以能够承担复杂而且独立的工作。
以开发中SDK的持续集成为例,结合具体应用场景,对SDK持续集成中涉及的自动化测试进行阐述。图7是根据一示例性实施例示出的实现SDK持续中自动化测试的系统架构图。
如图7所示,对于持续集成的SDK,其测试将是在SVN服务器510、web服务器530、Jenkins服务器550、客户端570以及多个终端590所构成的系统架构下实现的。
具体的,SVN服务器510,用于实现版本迭代,每一次版本迭代的开发过程,都是SDK集成的过程,因此,将由SVN服务器510得到开发的被测应用源码信息。
并且对于测试源码信息,是预先开发,并存储于SVN服务器510。
Jenkins服务器550和客户端570,则构成了Jenkins。其中,Jenkins服务器550,则是持续集成平台这一应用程序所在的载体,而客户端570,则是嵌入持续集成平台的另一应用程序,并且客户端570与多个终端590连接。
应用的自动化测试中,Jenkins服务器550,将首先从SVN服务器拉取测试源码信息,然后再拉取被测应用源码信息。
在此,测试源码信息,是已经开发好带API接口中的测试用例,用于实现应用和SDK的接口中自动化。被测应用测试源码信息,需要持续构建并重点关注的代码,其是进行SDK集成所得到,当完成修改版本的研发之后,即被存储到SVN服务器510中。
也就是说,对于SVN服务器,将用于实现三大功能,即:(1)功能更新包的获得;(2)方法测试包的获得;(3)测试源码信息的获得。
Jenkins服务器550在拉以得到测试源码信息和被测应用源码信息之后,将被测应用源码信息编译成jar包,将jar包作为链接库嵌入到已存在的测试源码信息。
Jenkins服务器550对此进行代码的静态扫描,并在静态扫描通过之后,方可执行后续的过程。
静态扫描通过之后,Jenkins服务器550继续进行编译,以生成一应用安装包,此应用安装包对应的应用,将实现持续集成的SDK的自动化测试。
编译成功所获得的应用安装包,被Jenkins服务器550存放至一指定位置,具体的,如图7所示,Jenkins服务器被存放至web服务器530中的一指定位置。
web服务器开辟了一个存储区,专门用来存放应用安装包。在后续的过程中,Jenkins服务器550会在此存储区查找所需要的应用安装包,并通过命令远程安装到终端。
至此,Jenkins服务器550将启动客户端570。启动的客户端570便向连接的终端部署测试环境,部署好测试环境的终端590,即可在Jenkins服务器550的作用下通过命令实现应用的远程安装。
客户端570将在终端590的测试环境中启动应用的测试,并对此进行监控,由此,即可进行多个终端590的并发测试。
例如,图8是根据图7对应实施例示出的持续集成的SDK中自动没化测试的实现示意图。
在客户端570的控制下,终端1、终端2、……、终端N均执行各种测试项,例如,Monkey测试、功能测试和压力测试等。
在完成测试之后,向客户端570上报测试结果,每一终端590向客户端570上报对应的测试结果,此时,如图8中的步骤5所示,客户端570向Jenkins服务器550返回测试结果。
Jenkins服务器550对此进行报告展示和/或邮件通知。对于测试开发人员,也可直接由客户端570查看到基于测试结果生成的报告或邮件,在此不进行限定。
下述为本公开装置实施例,可以用于执行本公开上述应用的自动化测试方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开应用的自动化测试方法实施例
图9是根据一示例性实施例示出的一种应用的自动化测试系统的框图。该系统包括持续集成平台610、客户端630和终端650。客户端630实现持续集成平台610和终端650之间的交互。
客户端630包括:启动模块631、环境部署模块633、测试启动模块635、监控模块637和结果返回模块639。
启动模块631,用于被持续集成平台触发启动客户端,持续集成平台通过集成功能模块的被测应用源码信息和测试源码信息完成应用安装包的编译。
环境部署模块633,用于向连接的终端部署测试环境。
测试启动模块635,用于在测试环境启动应用的测试,应用集成了功能模块并且已被持续集成平台通过应用安装包安装至客户端连接的终端。
监控模块637,用于监控终端中应用的测试过程,获得应用在终端的测试结果。
结果返回模块639,用于向持续集成平台返回应用在终端的测试结果。
图10是根据图9对应实施例示出的对持续集成平台的细节进行描述的框图。该持续集成平台610,如图10所示,可以包括但不限于:源码拉取模块611和安装包编译模块613。
源码拉取模块611,用于分别进行测试源码信息和被测应用源码信息的拉取。
安装包编译模块613,用于通过测试源码信息和被测应用源码信息编译生成应用安装包。
图11是根据图9对应实施例示出的对环境部署模块的细节进行描述的框图。该环境部署模块633,如图11所示,可以包括但不限于:指令接收单元6331和指令执行单元6333。
指令接收单元6331,用于接收持续集成平台下发的应用测试指令。
指令执行单元6333,用于根据应用测试指令阻塞持续集成平台中的流程,并控制自身连接的终端部署测试环境。
图12是根据图9对应实施例示出的对结果返回模块的细节进行描述的框图。该结果返回模块639,如图12所示,可以包括但不限于:平台唤醒单元6391和结果反馈单元6393。
平台唤醒单元6391,用于唤醒持续集成平台。
结果反馈单元6393,用于向唤醒的持续集成平台返回应用在终端的测试结果。
在一个示例性实施例中,持续集成平台610包括命令生成模块。
该命令生成模块用于生成持续集成平台获得应用安装包的远程安装命令,通过远程安装命令执行应用安装包,使相应的应用被安装至部署了测试环境的终端。
可选的,本公开还提供一种客户端,该客户端可以用于图1所示实施环境中,执行图3、图4、图5和图6任一所示的应用的自动化测试方法的全部或者部分步骤。所述客户端包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行:
客户端被持续集成平台触发启动,所述持续集成平台通过集成功能模块的被测应用源码信息和测试源码信息完成应用安装包的编译;
启动的所述客户端向连接的终端部署测试环境;
在所述测试环境启动应用的测试,所述应用集成了功能模块并且已被所述持续集成平台通过所述应用安装包安装至所述客户端连接的终端;
监控所述终端中应用的测试过程,获得所述应用在所述终端的测试结果;
向所述持续集成平台返回所述应用在所述终端的测试结果。
该实施例中的装置的处理器执行操作的具体方式已经在有关该应用的自动化测试方法的实施例中执行了详细描述,此处将不做详细阐述说明。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围执行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种应用的自动化测试方法,其特征在于,所述方法包括:
客户端被持续集成平台触发启动,所述持续集成平台通过集成功能模块的被测应用源码信息和测试源码信息完成应用安装包的编译;
启动的所述客户端向连接的终端部署测试环境;
在所述测试环境启动应用的测试,所述应用集成了功能模块并且已被所述持续集成平台通过所述应用安装包安装至所述客户端连接的终端;
监控所述终端中应用的测试过程,获得所述应用在所述终端的测试结果;
向所述持续集成平台返回所述应用在所述终端的测试结果。
2.根据权利要求1所述的方法,其特征在于,所述客户端被持续集成平台触发启动之前,所述方法还包括:
分别进行测试源码信息和被测应用源码信息的拉取;
通过所述测试源码信息和被测应用源码信息编译生成所述应用安装包。
3.根据权利要求1所述的方法,其特征在于,所述启动的所述客户端向连接的终端部署测试环境,包括:
启动的所述客户端接收所述持续集成平台下发的应用测试指令;
根据所述应用测试指令所述客户端阻塞所述持续集成平台中的流程,并控制自身连接的所述终端部署测试环境。
4.根据权利要求3所述的方法,其特征在于,所述向所述持续集成平台返回所述应用在所述终端的测试结果,包括:
唤醒所述持续集成平台;
向唤醒的所述持续集成平台返回所述应用在所述终端的测试结果。
5.根据权利要求1所述的方法,其特征在于,所述在所述终端的测试环境中启动应用的测试之前,所述方法还包括:
生成所述持续集成平台获得应用安装包的远程安装命令,通过所述远程安装命令执行所述应用安装包,使相应的应用被安装至部署了测试环境的终端。
6.一种应用的自动化测试系统,其特征在于,所述系统包括持续集成平台、客户端和终端,所述客户端实现所述持续集成平台和终端之间的交互;
所述客户端包括:
启动模块,用于被所述持续集成平台触发启动所述客户端,所述持续集成平台通过集成功能模块的被测应用源码信息和测试源码信息完成应用安装包的编译;
环境部署模块,用于向连接的终端部署测试环境;
测试启动模块,用于在所述测试环境启动应用的测试,所述应用集成了功能模块并且已被所述持续集成平台通过应用安装包安装至所述客户端连接的终端;
监控模块,用于监控所述终端中应用的测试过程,获得所述应用在所述终端的测试结果;
结果返回模块,用于向所述持续集成平台返回所述应用在所述终端的测试结果。
7.根据权利要求6所述的系统,其特征在于,所述系统中所述持续集成平台包括:
源码拉取模块,用于分别进行测试源码信息和被测应用源码信息的拉取;
安装包编译模块,用于通过所述测试源码信息和被测应用源码信息编译生成所述应用安装包。
8.根据权利要求6所述的系统,其特征在于,所述环境部署模块包括:
指令接收单元,用于接收所述持续集成平台下发的应用测试指令;
指令执行单元,用于根据所述应用测试指令阻塞所述持续集成平台中的流程,并控制自身连接的终端部署测试环境。
9.根据权利要求8所述的系统,其特征在于,所述结果返回模块包括:
平台唤醒单元,用于唤醒所述持续集成平台;
结果反馈单元,用于向唤醒的所述持续集成平台返回所述应用在所述终端的测试结果。
10.根据权利要求6所述的系统,其特征在于,所述持续集成平台包括:
命令生成模块,用于生成所述持续集成平台获得应用安装包的远程安装命令,通过所述远程安装命令执行所述应用安装包,使相应的应用被安装至部署了测试环境的终端。
CN201710173463.1A 2017-03-22 2017-03-22 应用的自动化测试方法和系统 Active CN108628735B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710173463.1A CN108628735B (zh) 2017-03-22 2017-03-22 应用的自动化测试方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710173463.1A CN108628735B (zh) 2017-03-22 2017-03-22 应用的自动化测试方法和系统

Publications (2)

Publication Number Publication Date
CN108628735A true CN108628735A (zh) 2018-10-09
CN108628735B CN108628735B (zh) 2020-12-18

Family

ID=63706609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710173463.1A Active CN108628735B (zh) 2017-03-22 2017-03-22 应用的自动化测试方法和系统

Country Status (1)

Country Link
CN (1) CN108628735B (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766258A (zh) * 2018-11-30 2019-05-17 北京奇艺世纪科技有限公司 一种性能测试方法、装置及计算机可读存储介质
CN109976773A (zh) * 2019-04-04 2019-07-05 网易(杭州)网络有限公司 游戏测试环境的部署方法和装置
CN110377504A (zh) * 2019-06-20 2019-10-25 平安普惠企业管理有限公司 应用程序流畅度的测试方法、装置、设备及存储介质
CN111858364A (zh) * 2020-07-24 2020-10-30 中国建设银行股份有限公司 测试终端的参数配置方法、装置及系统
CN112015661A (zh) * 2020-09-08 2020-12-01 江苏云柜网络技术有限公司 一种软件测试方法及装置
CN113608744A (zh) * 2021-08-04 2021-11-05 上海易景信息科技有限公司 一种用于执行分布式编译的环境构建单元的建立方法及分布式编译系统
CN113704081A (zh) * 2020-10-15 2021-11-26 天翼智慧家庭科技有限公司 一种应用程序兼容性自动化测试方法和系统
CN113760691A (zh) * 2020-06-10 2021-12-07 北京沃东天骏信息技术有限公司 持续集成测试方法、装置及存储介质
CN116244194A (zh) * 2023-02-09 2023-06-09 湖南快乐阳光互动娱乐传媒有限公司 应用程序的页面测试方法及装置、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461897A (zh) * 2014-12-18 2015-03-25 网易(杭州)网络有限公司 一种应用程序测试的方法和设备
CN105302716A (zh) * 2014-07-30 2016-02-03 腾讯科技(深圳)有限公司 合流开发模式下的测试方法、装置
US20160034258A1 (en) * 2014-07-31 2016-02-04 Lexmark International Technology S.A. System and Methods of Generating Build Dependencies Radiator
CN105446878A (zh) * 2015-11-09 2016-03-30 上海爱数信息技术股份有限公司 一种持续的程序自动化测试方法
CN105550001A (zh) * 2015-12-24 2016-05-04 厦门市美亚柏科信息股份有限公司 分布式自动构建方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105302716A (zh) * 2014-07-30 2016-02-03 腾讯科技(深圳)有限公司 合流开发模式下的测试方法、装置
US20160034258A1 (en) * 2014-07-31 2016-02-04 Lexmark International Technology S.A. System and Methods of Generating Build Dependencies Radiator
CN104461897A (zh) * 2014-12-18 2015-03-25 网易(杭州)网络有限公司 一种应用程序测试的方法和设备
CN105446878A (zh) * 2015-11-09 2016-03-30 上海爱数信息技术股份有限公司 一种持续的程序自动化测试方法
CN105550001A (zh) * 2015-12-24 2016-05-04 厦门市美亚柏科信息股份有限公司 分布式自动构建方法及系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109766258A (zh) * 2018-11-30 2019-05-17 北京奇艺世纪科技有限公司 一种性能测试方法、装置及计算机可读存储介质
CN109976773A (zh) * 2019-04-04 2019-07-05 网易(杭州)网络有限公司 游戏测试环境的部署方法和装置
CN110377504A (zh) * 2019-06-20 2019-10-25 平安普惠企业管理有限公司 应用程序流畅度的测试方法、装置、设备及存储介质
CN113760691A (zh) * 2020-06-10 2021-12-07 北京沃东天骏信息技术有限公司 持续集成测试方法、装置及存储介质
CN111858364A (zh) * 2020-07-24 2020-10-30 中国建设银行股份有限公司 测试终端的参数配置方法、装置及系统
CN112015661A (zh) * 2020-09-08 2020-12-01 江苏云柜网络技术有限公司 一种软件测试方法及装置
CN112015661B (zh) * 2020-09-08 2023-10-03 南京云柜网络科技有限公司 一种软件测试方法及装置
CN113704081A (zh) * 2020-10-15 2021-11-26 天翼智慧家庭科技有限公司 一种应用程序兼容性自动化测试方法和系统
CN113608744A (zh) * 2021-08-04 2021-11-05 上海易景信息科技有限公司 一种用于执行分布式编译的环境构建单元的建立方法及分布式编译系统
CN113608744B (zh) * 2021-08-04 2024-02-23 上海易景信息科技有限公司 一种用于执行分布式编译的环境构建单元的建立方法及分布式编译系统
CN116244194A (zh) * 2023-02-09 2023-06-09 湖南快乐阳光互动娱乐传媒有限公司 应用程序的页面测试方法及装置、存储介质及电子设备

Also Published As

Publication number Publication date
CN108628735B (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
CN108628735A (zh) 应用的自动化测试方法和系统
CN109344065B (zh) 远程调试方法、调试服务器及目标机
US20150227449A1 (en) Method and device for developing, compiling and debugging
Einarsson et al. SmarthomeML: Towards a domain-specific modeling language for creating smart home applications
CN101478449A (zh) 一种协议自动测试方法及其系统
CN103336705A (zh) 脚本处理和工作流系统间的自动转码和语义自适应
JP2007510979A (ja) 無線モバイル機器のための迅速なソフトウエアアプリケーション開発の方法
CN105718251A (zh) 多语言sdk自动化实现方法及系统
CN103544100A (zh) 便携数据处理设备应用程序的测试方法、系统和客户端
CN104539487A (zh) 一种基于云平台的系统测试及可靠性评估方法
WO2010148812A1 (zh) 一种软件集成方法、安装方法及软件集成装置、安装装置
CN112162753A (zh) 软件部署方法、装置、计算机设备和存储介质
CN104246702A (zh) 工作流编译
CN110300082A (zh) 一种接口生成方法、装置及存储介质
CN111309291B (zh) 一种模块化嵌入式软件架构及其定制方法、定制系统
CN104239114A (zh) 应用程序的编译处理方法及装置
CN104125504A (zh) 一种基于持续集成的部署方法、装置及系统
Liu et al. A General Framework to Identify Software Components from Execution Data.
Elsts et al. SEAL: a domain-specific language for novice wireless sensor network programmers
CN107122307B (zh) 一种物联网执行系统
Jeanjean et al. IDE as code: Reifying language protocols as first-class citizens
CN109614081B (zh) 浏览器实现方法、装置及移动终端
Gao Testing component-based software
Goyal Savant Guide
CN113590124A (zh) 目标对象处理方法及装置

Legal Events

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