一种测试应用程序的方法及系统与流程

文档序号:11458550阅读:246来源:国知局
一种测试应用程序的方法及系统与流程

本发明实施例涉及应用程序测试技术领域,尤其涉及一种测试应用程序的方法及系统。



背景技术:

随着互联网技术的发展,应用程序产品的种类和数量也在飞速增长,如各类app。在当前的市场环境中,同一行业下的应用程序产品也是五花八门、各具特色。各应用程序厂商在推出应用程序产品之前,为了保障应用程序产品的质量以及完善应用程序产品的功能,通常会对应用程序产品进行测评。

目前,对应用程序产品的测评主要采用人工测评的方式,具体的,测试人员将待测试应用程序安装在手机、电脑等终端上,通过多次反复操作应用程序获得应用程序产品的数据,并且为了与其它应用程序产品的性能进行比较,测试人员需要手动记录操作应用程序后产品的数据。例如:测试人员为了测试外卖应用程序产品的性能,将外卖应用程序安装在手机上,之后通过手动输入送餐地址搜索外卖商户,测试人员记录外卖应用程序在当前输入的送餐地址下能够搜索到的外卖商户的个数、商家响应时间等参数,输入不同的送餐地址,获得在不同送餐地址下的测试参数。当测试人员需要横向比较多个应用程序性能时,重复对该多个应用程序进行上述的操作。

发明人发现,依赖于人工对应用程序测试,测试的效率比较低。



技术实现要素:

本发明实施例提供了一种测试应用程序的方法及系统,以提高测试应用程序的效率。

第一方面,本发明实施例提供了一种测试应用程序的方法,包括:

根据自动测试脚本,向安装有待测应用程序的目标终端发送模拟操作命令;

接收目标终端在待测应用程序中执行所述模拟操作命令后发出的服务请求消息;

接收应用程序服务器根据所述服务请求消息反馈的服务响应消息;

根据所述服务请求消息和所述服务响应消息,生成所述待测应用程序的测评结果。

第二方面,本发明实施例提供了一种测试应用程序的系统,包括:测试触发终端和测评终端;

所述测试触发终端,被配置为根据自动测试脚本,向安装有待测应用程序的目标终端发送模拟操作命令;

所述测评终端,被配置为接收目标终端在待测应用程序中执行所述模拟操作命令后发出的服务请求消息;接收应用程序服务器根据所述服务请求消息反馈的服务响应消息;根据所述服务请求消息和所述服务响应消息,生成所述待测应用程序的测评结果。

在本发明实施例方案中,测试系统根据自动测试脚本向安装有待测应用程序的目标终端发送用于模拟用户操作行为的命令,目标终端接收到模拟操作命令后,在待测应用程序环境中执行该命名并且根据命令的执行结果发送服务请求消息。在本发明实施例方案中,目标终端并非直接将服务请求消息发送给应用程序服务器,而是经过本发明实施例设计的测评终端将服务请求消息发送给应用程序服务器,同样的,应用程序服务器发送给目标终端的服务响应消息也是经过测评终端的转发到达目标终端,可见测评终端可以获取待测应用程序与应用程序服务器之间的交互数据,测评终端通过对待测应用程序与应用程序服务器之间交互数据的汇总,得到待测应用程序的测评结果。

可见,本发明实施例方案,通过运行自动测试脚本实现了对待测应用程序的自动模拟操作,通过测评终端自动记录待测应用程序与应用程序服务器之间的交互数据,利用该方案实现了对待测应用程序的自动测评,提高测试应用程序的效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明实施例。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明实施例的原理。

图1是本发明实施例一测试应用程序的系统结构示意图;

图2是本发明实施例一测试应用程序的方法流程图;

图3是本发明实施例二测试应用程序的方法流程图;

图4是本发明实施例二测试应用程序的系统结构示意图;

图5是本发明实施例三测试应用程序的系统结构示意图;

图6是app1、app2及app3搜索到的商户个数示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明实施例的一些方面相一致的装置和方法的例子。

为了解决当前采用人工方式测试应用程序带来的测试效率比较低的问题,本发明实施例提供了一种可以自动测试应用程序的方案。

图1是本发明实施例一测试应用程序的系统结构示意图。如图1所示,本发明实施例提供的用于测试应用程序的系统100包括:测试触发终端101和测评终端102。为了支持对待测应用程序的自动测试,上述系统中的测试触发终端101在测试应用程序时与安装有待测应用程序的目标终端103连接,安装有待测应用程序的目标终端103与测评终端102连接,测评终端102还与应用程序服务器104连接。

上述测试应用程序的系统中,测试触发终端101和测评终端102终端是从所要实现的功能角度出发划分的终端,在实际的系统部署中,测试触发终端101和测评终端102可以集成在一个物理终端中,测试触发终端101和测评终端102分别为该物理终端中的两个功能单元,当然测试触发终端101和测评终端102也可以分别通过至少一个物理终端来实现。

基于图1所示的测试应用程序的系统,本发明实施例还提供了一种测试应用程序的方法。图2是本发明实施例一测试应用程序的方法流程图,如图2所示,该方法可以包括如下步骤:

步骤s201:测试触发终端根据自动测试脚本,向安装有待测应用程序的目标终端发送模拟操作命令。

测试触发终端中配置有用于对待测应用程序进行测试的自动测试脚本,其中,该自动测试脚本是用于模拟用户操作行为的脚本。

测试终端运行自动测试脚本,并且根据自动测试脚本测试的结果向目标终端发送模拟操作命令。此处的目标终端是指安装有待测应用程序的终端设备。目标终端接收到模拟操作命令后,在待测应用程序环境中执行相应的命令。目标终端在待测应用程序环境中执行模拟操作命令的过程中,若需要与应用程序服务器进行交互,则目标终端向应用程序发送相关的服务请求消息,具体的,目标终端通过图1中所示的测评终端向应用程序服务器发送服务请求消息,同理应用程序服务器反馈的应用程序服务响应消息也通过测评终端发送给目标终端。

例如:待测应用程序为外卖应用程序,在测试触发终端中存储有用于对该外卖应用程序进行模拟操作的自动测试脚本。测试触发终端运行自动测试脚本,在自动测试脚本运行的过程中测试触发终端向目标终端发送操作指令,其中,测试触发终端向目标终端发送的操作指令可以为搜索某个区域范围内的商家、获取商家评价信息、外卖下单等模拟用户操作行为的指令。目标终端接收到测试触发终端发送的操作指令后,在外卖应用程序环境中执行相应的指令,目标终端在执行操作指令的过程中,如果需要与应用程序服务器进行交互,目标终端向应用程序服务器发送应用程序服务请求消息服务请求消息。在图1所示的应用程序测试系统中,目标终端发送的应用程序服务请求消息服务请求消息首先发送到测评终端中,由测评终端将应用程序服务请求消息服务请求消息发送给应用程序服务器,同理应用程序服务器反馈的应用程序服务响应消息也经测评终端转发给目标终端。目标终端通过测评终端与应用程序服务器交互的步骤参见步骤s202以及步骤s203。

步骤s202:测评终端接收目标终端在待测应用程序中执行所述模拟操作命令后发出的服务请求消息。

步骤s203:测评终端接收应用程序服务器根据所述服务请求消息反馈的服务响应消息。

步骤s204:测评终端根据服务请求消息和服务响应消息,生成待测应用程序的测评结果。

在本发明实施例中,测试触发终端通过运行自动测试脚本自动向安装有待测应用程序的目标终端发送模拟操作命令,目标终端在待测应用程序环境中执行模拟操作命令,其中模拟操作命令是模拟用户操作应用程序行为的命令,目标终端在执行模拟操作命令的过程中若需要与应用程序服务器交互,则通过测试终端向应用程序服务器发送服务请求消息,并且通过目标终端接收应用程序服务器反馈的应用程序服务响应消息,可见测试终端能够获取待测应用程序与应用程序服务器的交互过程数据,因此测试终端通过对待测应用程序与应用程序服务器之间的交互数据的汇总、分类或者其它分析步骤,生成待测应用程序的测评结果,该测试过程自动执行,能够提高测试应用程序的效率,并且该测试过程减少了人工参与步骤,节省人工成本。

图3是本发明实施例二测试应用程序的方法流程图,该方法仍然基于图1所示的测试应用程序的系统执行,本发明中的应用程序可以为任意格式的程序,本实施例中以app为例对本发明的测试方法进行说明,图3所示方法可以包括如下步骤:

步骤s301:在测试触发终端中配置并且启动待测app模拟环境。

测试触发终端的待测app模拟环境中部署有与待测app中的各操作控件相对应的模拟操作控件。例如,在待测app中有输入控件、搜索控件、商家信息查看控件,对应的在测试触发终端的待测app模拟环境中也部署有相同的输入控件、搜索控件、商家信息查看控件。

步骤s302:测试触发终端在待测app模拟环境中运行配置文件,具体的,在该配置文件中包括自动测试脚本、配置信息和目标终端信息。

可选的,上述自动测试脚本是对待测app环境中的模拟操作控件进行模拟用户行为的脚本,例如,通过运行自动测试脚本可以实现对上述示例中的输入控件、搜索控件、商家信息查看控件的触发。

上述的配置信息是自动测试脚本运行过程中模拟用户输入的信息,例如,当自动测试脚本模拟的用户动作为触发搜索控件的动作时,该配置信息为需要搜索的目标信息,在运行与该搜索动作相应的脚本时,直接从配置信息中获取相关的搜索目标信息,以完成搜索动作。

上述的目标终端信息是配置文件所对应目标终端的标识信息,具体的,该目标终端信息指示的是安装有待测app的标识信息。

步骤s303:测试触发终端通过运行配置文件,自动运行配置文件中的自动测试脚本,根据自动测试脚本的运行结果,生成模拟操作命令;当该模拟操作命令需要配合相关的输入信息运行时,测试触发终端进一步从配置文件中确定运行所述模拟操作命令需要的配置信息;测试触发终端根据配置文件中的目标终端信息,确定模拟操作命令对应的目标终端;测试触发终端向根据目标终端信息确定出的目标终端,发送所述模拟操作命令和运行所述模拟操作命令需要的配置信息。

目标终端接收到测试触发终端发送的模拟操作命令,如目标终端接收到的命令为搜索命令和并且还接收到与搜索命令配合的搜索目标信息时,目标终端执行搜索命令,具体的,目标终端在搜索控件的输入框中输入搜索目标信息并且触发搜索控件,搜索控件被触发后,目标终端向app服务器发送app服务请求消息,从而以获取与输入的搜索目标相关的信息。

在本发明实施例中,目标终端发送的app服务请求消息首先发送到测评终端。

步骤s304:测评终端接收来自目标终端的app服务请求消息,其中,app服务请求消息是目标终端在待测app环境中执行模拟操作命令后发出的消息。测评终端接收到app服务请求消息之后,将app服务请求消息转发至app服务器。

app服务器接收到app服务请求消息后,向安装有待测app的目标终端反馈app服务响应消息,具体的,app服务器反馈的app服务响应消息首先发送至测评终端。

步骤s305:测评终端接收来自app服务器的app服务响应消息,其中,app服务响应消息是app服务器根据app服务请求消息反馈的消息。

步骤s306:测评终端根据app服务请求消息和app服务响应消息,生成待测app的测评结果。

本发明实施例中,将自动测试脚本、配置信息以及目标终端信息设置在配置文件中,通过运行配置文件可以一键对app进行测评,更为具体的,在配置信息中可以对同一个模拟操作命令设置多个输入信息,如对应搜索命令,设置多个搜索目标信息,目标终端在执行搜索命令时,分别搜索该多个搜索目标的信息,另外,也可以通过修改配置信息更改搜索目标。可见,本发明实施例方案通过配置或者修改配置文件中的配置信息,可以实现对不同信息点的测试,扩展了app测试的深度与广度,并且该测试过程一键运行,能够降低测试app的难度。

图4是本发明实施例二测试应用程序的系统结构示意图。本发明中的应用程序可以为任意格式的程序,本实施例中以app为例对本发明的测试方法进行说明。如图4所示,测试应用程序的系统100包括:测试触发终端101和测评终端102,其中,测评终端102包括代理服务器1021和日志分析终端1022。

如图4中所示,测试触发终端101与安装有待测app的目标终端103连接,目标终端103与代理服务器1021连接,代理服务器1021还分别与app服务器104和日志分析终端1022连接。

图4中,测试触发终端101用于配置自动测试脚本,可选的,自动测试脚本包含于配置文件中,在该配置文件中还包含配置信息和目标终端信息,配置信息是自动测试脚本运行过程中模拟用户输入的信息,目标终端信息是配置文件所对应目标终端103的标识信息,更为具体的,目标终端信息是用于指示安装有待测app的目标终端103的标识信息。

上述的自动测试脚本可以是采用appium移动端自动化测试框架生成的自动测试脚本,其中,利用appium移动端自动化测试框架生成自动测试脚本的过程包括:

基于appium移动端自动化测试框架在测试触发终端101中配置待测app模拟环境,待测app模拟环境中部署有与待测app中的各操作控件相对应的模拟操作控件,其中,各模拟操作控件具有与待测app相同的部署与识别信息。用户在待测app环境中编写对各模拟操作控件进行模拟操作的脚本,当编写的该脚本在待测app环境中运行时,可以通过appium移动端自动化测试框架服务器向目标终端103发送模拟操作指令。

在本实施例中,测试触发终端101运行配置文件,具体为:测试触发终端101运行配置文件中的自动测试脚本,并从配置信息中调取自动测试脚本所对应的模拟动作需要输入的信息。

appium移动端自动化测试框架服务器识别测试触发终端101运行的脚本,并根据识别的结果向目标终端103发送模拟操作命令,当该模拟操作命令需要配合相关配置信息运行时,appium移动端自动化测试框架服务器还将相关配置信息发送给目标终端103。

目标终端103在待测app环境中执行模拟操作命令,并根据模拟操作命令的执行结果向代理服务器1021发送app服务请求消息,代理服务器1021将app服务请求消息转发至app服务器104,代理服务器1021还进一步接收app服务器104反馈的app服务响应消息。

代理服务器1021在接收到app服务请求消息后,判断接收到的app服务请求消息是否是预设业务类型的消息,如果是,则代理服务器1021以日志形式记录接收到的app服务请求消息;同理,当代理服务器1021接收到app服务响应消息后,判断接收到的app服务响应消息是否是预设业务类型的消息,如果是,同样以日志形式记录接收到的app服务响应消息。

当自动测试脚本运行完毕后,日志分析终端1022从代理服务器1021中获取日志数据,日志分析终端1022根据日志数据,生成app的测评结果。

进一步,日志分析终端1022还可以将得到的测评结果以邮件形式发送给相关人员。

图5是本发明实施例三测试应用程序的系统结构示意图。本实施例中的应用程序为app,图5示出了测试app的一个具体场景示意图,如图5所示,在该测试场景中包括:多台pc、与pc一一对应的多部手机,每部手机中均安装有待测app,并且多台手机间安装的app并不相同。

如图5中示出了第一pc401、第二pc402、第三pc403三台pc作为示例,第一手机404、第二手机405及第三手机406分别与第一pc401、第二pc402及第三pc403一一对应连接,并且在第一手机404上安装有app1,在第二手机405上安装有app2,在第三手机406上安装有app3。第一手机404、第二手机405及第三手机406的网络分别与代理服务器407连接,代理服务器407还分别与app1服务器408、app2服务器409、app3服务器410以及日志分析终端408连接。

当需要对app1、app2及app3测试时,在第一pc401中部署app1模拟环境并且将app1自动测试脚本上传至第一pc401中,在第二pc402中部署app2模拟环境并且将app2自动测试脚本上传至第二pc402中,在第三pc403中部署app3模拟环境并且将app3自动测试脚本上传至第一pc401中。

在第一pc401的app1模拟环境运行app1自动测试脚本,第一pc401根据app1自动测试脚本的运行结果向第一手机404发送第一模拟操作命令;第一手机404在app1环境中执行第一模拟操作命令,并根据第一模拟操作命令的执行结果向代理服务器407发送第一服务请求消息,代理服务器407记录第一服务请求消息后转发至app1服务器408,代理服务器407还接收app1服务器408发送的第一服务响应消息,代理服务器407记录第一服务响应消息后转发至第一手机404。

在第二pc402的app2模拟环境中运行app2自动测试脚本,第二pc402根据app2自动测试脚本的运行结果向第二手机405发送第二模拟操作命令;第二手机405在app2环境中执行第二模拟操作命令,并根据第二模拟操作命令的执行结果向代理服务器407发送第二服务请求消息,代理服务器407记录第二服务请求消息后转发至app2服务器409,代理服务器407还接收app2服务器409发送的第二服务响应消息,代理服务器407记录第二服务响应消息后转发至第二手机405。

在第三pc403的app3模拟环境中运行app3自动测试脚本,第三pc403根据app3自动测试脚本的运行结果向第三手机406发送第三模拟操作命令;第三手机406在app3环境中执行第三模拟操作命令,并根据第三模拟操作命令的执行结果向代理服务器407发送第三服务请求消息,代理服务器407记录第三服务请求消息后转发至app3服务器410,代理服务器407还接收app3服务器410发送的第三服务响应消息,代理服务器407记录第三服务响应消息后转发至第三手机406。

日志分析终端408从代理服务器407中获取关于app1、app2以及app3的日志数据,并对app1、app2以及app3的日志数据进行汇总分析,并根据分析的结果生成app1、app2以及app3的测评结果,可选的,app1、app2以及app3的测评结果可以采用表格或者图标格式表示。

日志分析终端408将app1、app2以及app3的测评结果发送给相关测试终端,如以邮件方式发送给预先设置好的邮箱等。

在更为具体的一个示例中,上述的app1、app2以及app3为三个外卖app,上述的app1自动测试脚本、app2自动测试脚本以及app3自动测试脚本分别包含在第一配置文件、第二配置文件和第三配置文件中,假设当app1自动测试脚本、app2自动测试脚本以及app3自动测试脚本要测试的功能为某送餐地址能够搜索到的商户数时,在第一配置文件中还包括第一送餐地址、第二送餐地址以及第一手机404的识别信息,在第二配置文件中包括第一送餐地址、第二送餐地址和第二手机405的识别信息,在第三配置文件中包括第一送餐地址、第二送餐地址和第三手机406的识别信息。

第一pc401、第二pc402和第三pc403分别运行第一配置文件、第二配置文件和第三配置文件,其中,第一pc401运行第一配置文件中的app1自动测试脚本,并根据第一手机404的识别信息向第一手机404发送搜索第一送餐地址和第二送餐地址附近商户的命令,第一手机404中的app1执行该搜索命令,并通过代理服务器407与app1服务器408进行交互,得到第一送餐地址附近的商户信息以及第二送餐地址附近的商户信息,代理服务器407以日志形式记录app1与app1服务器408交互的信息。

第二pc402运行第二配置文件中的app2自动测试脚本,并根据第二手机405的识别信息向第二手机405发送搜索第一送餐地址和第二送餐地址附近商户的命令,第二手机405中的app2执行该搜索命令,并通过代理服务器407与app2服务器409进行交互,得到第一送餐地址附近的商户信息以及第二送餐地址附近的商户信息,代理服务器407以日志形式记录app2与app2服务器409交互的信息。

第三pc403运行第三配置文件中的app3自动测试脚本,并根据第三手机406的识别信息向第三手机406发送搜索第一送餐地址和第二送餐地址附近商户的命令,第三手机406中的app3执行该搜索命令,并通过代理服务器407与app3服务器410进行交互,得到第一送餐地址附近的商户信息以及第二送餐地址附近的商户信息,代理服务器407以日志形式记录app3与app3服务器410交互的信息。

当app1自动测试脚本、app2自动测试脚本以及app3自动测试脚本均执行完毕后,日志分析终端408从代理服务器407中获取app1、app2以及app3的日志数据,并且日志分析终端408根据app1、app2以及app3的日志数据生成测评结果。

日志分析终端408生成的测评结果可以是文字、表格或者图标。

如表1示出了app1、app2及app3搜索商户数据表。

表1app1、app2及app3搜索商户数据表

如图6示出了app1、app2及app3搜索到的商户个数示意图。

进一步,日志分析终端还可以通过邮件等方式将得到的测评结果发送给相关测试人员。

采用本发明实施例方法可以实现对对app的并行测试。在另外一种可行的实施方式中,在一个pc机上分别部署app1自动测试脚本、app2自动测试脚本及app3自动测试脚本,app1自动测试脚本、app2自动测试脚本及app3自动测试脚本在该pc上并行独立运行,安装有app1的第一手机、安装有app2的第二手机及安装有app3的第三手机分别与该pc连接,具体测试过程与图5测试过程相同,不再赘述,采用此方式可以通过一台pc对多个app并行测试。

另外,由于app版本更新换代比较快,当需要对新版本的app进行测试时,可以比较新版本app与前一版本app的修改之处,并根据修改之处在前一版本自动测试脚本的基础上得到对新的自动测试脚本,在对新版本app进行测试时,可以仅对有修改的地方进行测试或者仅对所关注的能够进行测试,如此在多个版本app迭代的过程中,可以不用重复相同的测评流程,并且还可以根据测评结果可以得出多个版本app业务指标的变化趋势。

综上可以看出,本发明实施例提供的测试应用程序的方案能够达到以下的有益效果:

1、采用自动化框架自动模拟人工操作并且通过网络代理缓存应用程序与应用程序服务器交互的业务数据,解决了以往手动测评应用程序产品效率低、容易出错的问题。

2、采用本发明实施例方案可以对多应用程序平行测试,各应用程序之间互不干扰。

3、代理服务器可以持久保存应用程序每轮测试的业务数据,在多版本迭代测试中可以得到各版本应用程序的业务指标变化趋势。

4、使用参数配置方案,降低应用程序测试的难度。

可以理解的是,本发明实施例可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

本发明实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本领域技术人员在考虑说明书及实践这里公开的发明实施例后,将容易想到本发明实施例的其它实施方案。本申请旨在涵盖本发明实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明实施例的一般性原理并包括本发明实施例未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明实施例的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明实施例的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1