一种移动应用的自动化测试系统及测试方法与流程

文档序号:14676874发布日期:2018-06-12 21:37阅读:586来源:国知局
一种移动应用的自动化测试系统及测试方法与流程

本发明属于自动化测试领域,涉及一种移动应用智能化测试系统及方法。



背景技术:

众所周知,现在移动端的设备种类有很多,一款新的应用在发布之前需要进行各种类型的测试,比如兼容性测试,测试在不同设备上应用的基本运行状况;性能测试,测试在不同设备上应用的性能状况;稳定性测试,测试不同设备在长时间运行过程中是否能持续保持健壮性和稳定性;功能性测试,针对于指定情况下应用可能会出现的问题进行集中大批量的测试复现。比如Android(安卓)平台,Android平台的碎片化问题尤其严重,不同的机型可达到上千款,如何快速,高效地在不同设备上对应用进行上述四种类型的测试并且对测试的结果进行详细的分析,这就成为了一个待解决的问题。

目前兼容性测试一般的做法就是测试人员通过USB Hub(集线器)将多台设备和计算机进行连接,在计算机上将应用包手动或利用脚本批量安装到各个移动设备上,然后手动启动运行应用,实时观察测试的相关情况,最后测试人员自己进行测试总结。性能测试是通过对单一设备手动或自动进行测试,用工具采集性能数据。稳定性和功能测试几乎没有自动化测试。

这种测试方法在测试过程中,不可避免的存在以下几个问题:一,最大的问题就是无法对测试的结果进行完整的分析和整理,对出现的问题进行归类;二,在测试过程中,出现问题测试人员不能及时的暂停操作并截图;三,测试的效率不高,测试人员需要实时的观察应用的相关情况;四,在整个测试过程中,人为判断缺乏科学依据,采集的信息也会有延迟和偏差,而且不同的测试人员在一些标准上会有所不同。



技术实现要素:

鉴于上述的问题,本发明的目的是提供一种移动应用的自动化测试系统及测试方法,方便测试人员对测试过程进行掌控,方便开发人员对测试过程中的问题进行及时的定位和解决,以进一步提高应用的质量。与此同时,该系统也大大降低了公司的成本开销。

为实现上述发明目的,本发明具体采用如下技术方案:

一种移动应用自动化测试系统,其特征在于包括三个模块:

自动化测试服务端、自动化测试调度器端和自动化测试设备端;

自动化测试服务端主要用于对应用测试前进行部署,部署完毕后选择指定的测试类型,开启测试,将测试指令发送给自动化测试调度器端;

自动化测试调度器端主要用于测试指令的处理以及分发,包括总调度器和若干子调度器,总调度器接收到自动化测试服务端的测试指令之后,按照指定的数据格式将测试指令分发给各子调度器,各子调度器收到测试指令后,对测试指令进行分析,并继续分发到指定的自动化测试设备端;

自动化测试设备端主要用于根据测试指令对应用进行测试,在测试的过程中实时采集数据并且上传到自动化测试服务端。

本发明的测试方法包括如下步骤:

步骤S1,利用测试工具对指定应用录制脚本,上传到自动化测试服务端;

步骤S2,自动化测试服务端进行测试的相关部署,选择指定的测试类型,开启测试,将测试指令发送给自动化测试调度器端;

步骤S3,总调度器收到测试指令后,按照指定的数据格式分发给各子调度器;各子调度器收到测试指令后,对指令进行分析,并继续分发到指定的自动化测试设备端;

步骤S4,自动化测试设备端进行测试,将测试过程中采集的数据上传到自动化测试服务端;

步骤S5,自动化测试服务端生成测试结果报告。

本发明移动应用自动化测试系统针对移动设备的特点,通过设置自动化测试服务端实现测试部署、发送测试指令,设置自动化测试调度器端实现测试指令的分发,使测试指令从自动化测试服务端下达移动设备,进行指定测试,并将测试数据上传自动化测试服务端,由自动化测试服务端进行数据分析,生成测试结果报告。整个过程实现了移动应用测试的自动化、标准化,使测试人员能够快速、高效地对大批量移动设备进行不同类型的测试,在测试完成之后可以简单直观的看到测试的生成结果,测试结果更有效更客观。与此同时,该系统从人力和时间方面能大大降低公司的成本开销。以表格1所示为例,首先从人力方面来看,传统测试中的员工远远大于自动化测试中的员工,这在人力上从100到1是一个质的变化;从时间方面来看,相对于传统测试过程中的不稳定性,自动化测试更加的统一规范,每台设备测试的时长实际会小于每个人工测试的时长,测试完成后的结果整理时间也大大的进行了缩短,提高了整体的效率。

表格1

附图说明

图1是移动应用自动化测试系统的流程图;

图2是移动应用自动化测试系统的模块图;

图3是uifat录制工具的界面;

图4是自动化测试服务端测试信息配置流程图;

图5是测试过程状态图。

具体实施方式

图2是移动应用自动化测试系统的模块图,整个系统主要分为三个模块,分别是自动化测试服务端,自动化测试调度器端和自动化测试设备端。

自动化测试服务端的主要功能是对应用测试前进行部署,这里的部署主要就是将需要测试的应用和对应需要的Lua测试脚本上传至服务器。部署完毕后自动化测试服务端选择指定的测试类型进行测试,并将测试指令发送给自动化测试调度器端,这里测试的类型主要包括兼容性测试,性能测试,稳定性测试和自定义功能性测试。测试过程中,自动化测试服务端对测试的设备进行实时跟踪和数据采集,测试结束后对测试的整体过程生成对应的测试结果报告。测试结果报告中会详细展示测试中出现的问题,测试人员可以根据具体的测试场景对应用进行精准的评估。

自动化测试调度器端主要功能是进行测试指令的处理以及分发。包括总调度器端和若干子调度器端。总调度器端接收到自动化测试服务端的测试指令之后,按照指定的数据格式将指令分别发给各子调度器端,各子调度器端收到指令后,对指令进行分析,对选中的自动化测试设备端进行测试指令的发送;

自动化测试设备端主要功能是根据测试指令对应用进行测试,在测试的过程中实时采集数据并且上传。这里的采集数据主要是针对于应用实时的状态进行监听,将数据进行整理,然后发送到自动化测试服务端。

本发明移动应用自动化测试系统环境的布置,硬件方面的配置要求不是很高,软件方面,需要Android SDK(安卓SDK)、Java SDK和Lua的jar包,因为本发明使用的脚本是用Lua进行编写的。图1是移动应用自动化测试系统的流程图,测试人员将录制好的脚本以及需要测试的应用在自动化测试服务端进行部署,部署完成之后,测试的指令会一层一层的传递到需要测试的设备,设备在测试的过程中会将测试的内容进行记录并且做好数据的采集,最后测试人员可以通过测试的报告对测试的过程进行数据化的分析。

为使本发明技术方案及其有益效果能够更加明显易懂,下面结合附图和具体实施例对测试流程作进一步详细的说明。

实施例一

因为手游应用比一般的手机应用要复杂,而且手游应用的测试项目也要比一般的手机应用要多样化,所以本实施例用手游来做测试的案例,更加能够突出这套自动化测试体系的测试深度性和测试丰富性。以自动化性能测试来举例,测试人员需要按照下面的步骤来执行:

步骤S1,测试人员需要在自动化测试服务端配置测试的相关信息,具体流程如图4所示。因为我们的脚本是用Lua语言编写的,所以,首先需要在计算机设备上使用脚本录制工具uifat事先录制好相关的脚本,脚本录制工具uifat的界面如图3所示。脚本录制工具uifat是一个基于Android SDK(安卓SDK)中的ddmlib类库结合java swing类库进行自行开发的实时显示手机应用当前界面并且可以进行相关操作的录制工具。这里我们用手游魔龙世界来作为测试应用,测试人员可以根据指定的坐标来模拟实际事件的点击。脚本运行方面,使用自动化测试框架bootsnail,可以根据脚本的内容来对移动设备进行指定的操作。自动化测试框架bootsnail是基于Appium自行研发的根据脚本来模拟用户操作的工具,主要是根据脚本信息的内容,对设备进行指定的操作,从而达到模拟真人操作的过程,Appium是一个开源的,支持原生,混合和移动web apps的开源的跨平台测试框架工具。脚本录制完成之后,如图4的第二步骤,将录制好的脚本和应用进行上传,上传完毕之后,在自动化测试服务端的应用测试前进行部署,选择指定的测试类型之后,开始进行测试;

步骤S2,测试开始之后,自动化测试服务端首先将定制的测试整理成测试指令。测试指令主要包含了需要测试的设备信息,测试的类型以及测试需要用到的脚本地址。通过Socket数据传输,将测试指令数据传递给自动化测试调度器端的总调度器,总调度器需要安装在PC上进行指令的接收,在总调度器接受到指令之后,再将指令进行处理,分发到各个测试指令中的子调度器,这里同样是用了Socket数据传输;

步骤S3,子调度器是安装在PC端的工具,接收到总调度器的指令之后,子调度器对指令中的本机设备进行整理并且根据不同的测试类型(测试的类型是兼容性测试,性能测试,稳定性测试还是自定义功能性测试)进行初始化设置,获取指令中需要测试的设备列表,下载需要测试的应用和脚本,启动子调度器上的bootsnail工具对设备进行监控,根据指令中的设备列表对指定的移动设备进行脚本信息的分发,通过adb命令将测试应用移动到指定的设备上进行操作,测试应用主要分为四个状态,如图5所示,分别是:安装、启动、运行以及卸载。在运行的过程中,监控bootsnail工具可以获取对应的坐标点设置,对设备进行模拟人工点击操作,并且根据脚本中设置的获取性能指令去实时获取移动设备当前测试应用性能的相关数据,进行上传,以便于测试人员能够实时的了解测试当前具体的状态以及判断数据是否异常,是否需要终止测试;

步骤S4,移动设备测试完成之后,子调度器会将测试过程中的步骤结果进行整理,然后通过Http的数据传输形式发送给自动化测试服务端;

步骤S5,整体测试完成之后,测试人员可以通过自动化测试服务端自动生成的测试报告进行测试评估。测试报告中包含了移动设备整体测试过程中的性能数据、各个测试状态的信息(因为在测试过程中可能会出现中断的情况)、测试过程中出现的错误原因日志以及对测试的移动设备进行大数据分析整理(比如电量耗时前三十、内存消耗前二十等等)。

本实施例主要描述性能测试的流程,应用自动化测试系统的数据分析和展示相当全面,不仅仅有直观的图表,还有设备运行中的设备日志,开发人员和测试人员都可以根据测试情况对应用的性能进行分析和问题的查找。

实施例二

移动应用自动化测试系统还可以进行针对性的自定义功能测试。

在移动应用使用的过程中,经常会遇到特定的场景才能出现的问题,大部分的时候并不能及时的复现场景。使用本发明移动应用自动化系统完美的解决了这个问题,测试人员可以将大概的场景进行脚本的编写,编写完成之后,对大批量的设备进行批量功能测试,具体测试的流程同实施例一。开发人员可以从测试结果中对问题进行定位,因为在测试开始前会对移动设备进行清空日志的操作,在整个运行过程中的系统日志都会记录在指定文件中,测试完成之后,设备会将该文件上传到服务端,开发人员可以根据日志对具体的问题进行定位和修复。

再比如,在移动游戏应用的测试过程,在国际化问题上经常会遇到文字超过游戏控件框的问题。关于这个问题,自动化测试系统采用带有控件识别功能的游戏监听SDK。游戏监听SDK主要是基于移动游戏开发的相关引擎,由游戏开发人员进行开发,对游戏的控件进行识别,在游戏的测试版本中嵌入,对游戏的相关控件进行定位和识别,在识别游戏的控件同时,可以在游戏底层通过对控件的内容进行分析,判断是否超过控件长度,再将结果反馈给自动测试服务端。测试人员可以通过自动测试服务端的结果来判断当前版本的游戏是否有文字超过控件的情况发生,并且在问题归总内精准定位到有问题的界面。

功能性的测试步骤和实施例一中的性能测试流程一致,不再赘述。

实施例三

移动应用自动化测试系统可以对设备进行兼容性测试。

在移动应用上线的过程中,出版本的时候需要在不同种类的设备上进行测试。因为移动设备碎片化的严重性,导致了需要检测上线的应用在很多设备上的兼容情况。测试人员可以将简单的场景进行脚本的编写,编写完成之后,对大批量的设备进行兼容性测试。开发人员可以从测试结果中对问题进行分析,如果报告出现问题,将测试报告发给相关研发人员,进一步的解决出现的问题。

比如,由于移动设备碎片化的问题,应用在不同分辨率设备上的显示会不同。而移动应用自动化测试系统的截图可以很有效的解决这个问题。测试完成之后,测试人员可以观察指定分辨率下的设备截图来判断应用的兼容性是否符合上线标准。

兼容性测试的测试步骤和实施例一中的性能测试流程一致,不再赘述。

实施例四

移动应用自动化测试系统可以对设备进行稳定性测试。

在移动应用的使用中,有很多问题在移动应用刚刚使用时并没有发现,而后随着使用时间的变长会出现问题。测试人员可以通过录制长时间的脚本,让需要测试的移动应用长时间去进行多消耗的操作。待测试完成之后,测试人员可以通过测试报告来查看测试过程是否符合标准。

举个例子,在使用移动应用的过程中,不可避免的会遇到耗时的操作,耗时操作的内容重复操作可能会导致移动应用的崩溃,测试人员可以设置一个几个小时的脚本来进行测试。待测试完毕之后,观察测试报告结果,看看测试过程中的数据是否在一个可接受的标准之中,如果不在,可以告之在哪些操作中会导致移动应用的崩溃问题。

稳定性测试的测试步骤和实施例一中的性能测试流程一致,不再赘述。

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