自动化测试中的性能监控方法及装置与流程

文档序号:11949971阅读:375来源:国知局
自动化测试中的性能监控方法及装置与流程

本发明涉及自动化测试技术领域,尤指一种自动化测试中的性能监控方法及装置。



背景技术:

在产品开发过程中,自动化测试是必不可少的环节,比如,在终端设备上进行真实环境的模拟测试,其中,包括检测应用程序在终端设备上运行时终端设备的各项性能。

目前常用的自动化测试实现方案,一般是采用在被测设备上搭建两套框架,一套是自动化测试框架,另一套是性能监控框架。两条框架组合使用,实现对终端设备的自动化测试和性能监控。这种方式存在以下不足之处:两套框架耦合性低,框架之间交互复杂,造成系统兼容性差,系统不稳定;无法实现多个被测设备同时进行自动化性能采集;该方式需要人工参与,自动化程度低,测试效率也比较低。

目前常用的自动化测试实现方案还有自动化测试+性能日志的实现方案,也是两套框架,一部分是自动化测试框架,另一部分是性能日志分析处理模块,通过在自动化测试框架中加入性能日志功能。对被测试设备进行性能采集并记录日志,将日志以文件的形式保存在被测试设备上。待自动化测试完成后对日志进行分析处理,以获取性能信息。这种方式也需要两套框架耦合,框架之间交互复杂,造成系统兼容性差,系统不稳定;且日志的处理分析繁琐复杂,性能信息展示不直观,无法实时展示设备的性能信息。



技术实现要素:

本发明实施例提供一种自动化测试中的性能监控方法及装置,用以解决现有技术中存在的两套框架交互复杂,兼容性差,影响系统稳定性,且分析复杂,自动化程度差,测试效率低等问题。

一方面,本发明实施例提供了一种自动化测试中的性能监控装置,包括:

性能测试控制模块、测试用例执行模块、性能信息采集模块、网络服务模块和性能信息展示模块;

性能测试控制模块,用于启动对被测设备的自动化性能测试,从测试用例库中获取所需要的测试用例;

测试用例执行模块,用于根据获取的测试用例建立测试任务,自动化执行所述测试用例;

性能信息采集模块,用于通过Java反射技术和Java单元测试调用应用程序接口实现采集测试用例执行过程中被测设备的性能状态信息;

网络服务模块,用于采集到的性能状态信息进行可视化展现处理,并输出给性能信息展示模块;

性能信息展示模块,用于实时展示被测设备的性能状态信息给用户。

在一些可选的实施例中,所述测试用例库中存储的测试用例包括下列测试用例中的至少一个:屏幕点击测试用例,物理按键点按测试用例,屏幕滑动测试用例,手机系统状态设置测试用例,构造初始测试状态测试用例,重置测试状态测试用例;

相应的,所述测试用例执行模块,具体用于:

自动化执行从测试用例库中获取的测试用例脚本,实现模拟用户操作下列操作中的至少一个:屏幕点击,物理按键点按,屏幕滑动,手机系统状态设置,构造初始测试状态,重置测试状态。

在一些可选的实施例中,所述性能测试控制模块,具体用于:

通过网页管理界面实现允许用户执行下列操作中的至少一项:开始、暂停、停止、重新开始对被测设备的自动化性能测试。

在一些可选的实施例中,上述装置,还包括:

测试用例管理模块,用于管理测试用例库中已编写好的测试用例,对测试用例进行编辑、修改、删除或更新操作。

在一些可选的实施例中,所述测试用例管理模块,还用于:

当测试用例库中不存在所需要的测试用例时,向用户反馈未找到所需要的测试用例并提示用户选择调用测试用例编写模块编写所需要的测试用例;将编写好的测试用例存储到测试用例库中。

本发明实施例还提供了一种自动化测试中的性能监控方法,包括:

启动对被测设备的自动化性能测试,从测试用例库中获取所需要的测试用例;

根据获取的测试用例建立测试任务,自动化执行所述测试用例;

通过Java反射技术和Java单元测试调用应用程序接口实现采集测试用例执行过程中被测设备的性能状态信息;

采集到的性能状态信息进行可视化展现处理,并实时展示被测设备的性能状态信息给用户。

在一些可选的实施例中,所述测试用例库中存储的测试用例包括下列测试用例中的至少一个:屏幕点击测试用例,物理按键点按测试用例,屏幕滑动测试用例,手机系统状态设置测试用例,构造初始测试状态测试用例,重置测试状态测试用例;

相应的,所述自动化执行所述测试用例,具体包括:

自动化执行从测试用例库中获取的测试用例脚本,实现模拟用户操作下列操作中的至少一个:屏幕点击,物理按键点按,屏幕滑动,手机系统状态设置,构造初始测试状态,重置测试状态。

在一些可选的实施例中,通过网页管理界面实现允许用户执行下列操作中的至少一项:开始、暂停、停止、重新开始对被测设备的自动化性能测试。

在一些可选的实施例中,上述方法还包括:

管理测试用例库中已编写好的测试用例,对测试用例进行编辑、修改、删除或更新操作。

在一些可选的实施例中,上述方法还包括:

当测试用例库中不存在所需要的测试用例时,向用户反馈未找到所需要的测试用例并提示用户选择调用测试用例编写模块编写所需要的测试用例;

将编写好的测试用例存储到测试用例库中。

上述技术方案具有如下有益效果:通过搭建一个自动化测试中的性能监控装置,实现对自动化测试中的性能监控,通过Java反射技术和Java单元测试调用应用程序接口实现采集测试用例执行过程中被测设备的性能状态信息,不需要搭建两套框架,避免了框架之间的交互,使性能监控的实现过程更简单方便,提高了系统兼容性和稳定性,提高了测试过程中性能监控的自动化程度和测试效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例中自动化测试中的性能监控装置的结构示意图;

图2是本发明实施例中自动化测试中的性能监控装置的一种具体结构示意图;

图3是本发明实施例一中自动化测试中的性能监控方法的流程图;

图4是本发明实施例二中自动化测试中的性能监控方法的原理示意图;

图5是本发明实施例二中自动化测试中的性能监控方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了解决现有技术中存在的两套框架交互复杂,兼容性差,影响系统稳定性,且分析复杂,自动化程度差,测试效率低等若干问题,本发明实施例提供一种自动化测试中的性能监控装置和方法,能够使用一套框架实现自动化测试中的性能监控,减少了复杂的交互流程,提高了兼容性和稳定性。

本发明实施例提供一种自动化测试中的性能监控装置,其结构如图1所示,包括:性能测试控制模块101、测试用例执行模块102、性能信息采集模块103、网络服务模块104和性能信息展示模块105。

性能测试控制模块101,用于启动对被测设备的自动化性能测试,从测试用例库中获取所需要的测试用例。

测试用例执行模块102,用于根据获取的测试用例建立测试任务,自动化执行所述测试用例。

性能信息采集模块103,用于通过Java反射技术和Java单元测试调用应用程序接口实现采集测试用例执行过程中被测设备的性能状态信息。

网络服务模块104,用于采集到的性能状态信息进行可视化展现处理,并输出给性能信息展示模块。

性能信息展示模块105,用于实时展示被测设备的性能状态信息给用户。

优选的,上述测试用例库中存储的测试用例包括下列测试用例中的至少一个:屏幕点击测试用例,物理按键点按测试用例,屏幕滑动测试用例,手机系统状态设置测试用例,构造初始测试状态测试用例,重置测试状态测试用例。

相应的,上述测试用例执行模块102,具体用于自动化执行从测试用例库中获取的测试用例脚本,实现模拟用户操作下列操作中的至少一个:屏幕点击,物理按键点按,屏幕滑动,手机系统状态设置,构造初始测试状态,重置测试状态。

优选的,上述性能测试控制模块101,具体用于通过网页管理界面实现允许用户执行下列操作中的至少一项:开始、暂停、停止、重新开始对被测设备的自动化性能测试。

优选的,上述自动化测试中的性能监控装置还包括:

测试用例管理模块106,用于管理测试用例库中已编写好的测试用例,对测试用例进行编辑、修改、删除或更新操作。

优选的,上述测试用例管理模块106,还用于当测试用例库中不存在所需要的测试用例时,向用户反馈未找到所需要的测试用例并提示用户选择调用测试用例编写模块编写所需要的测试用例;将编写好的测试用例存储到测试用例库中。

本发明实施例提供的自动化测试中的性能监控装置,其一种具体的结构如图2所示,包括:自动化测试模块组200,其中设置性能测试控制模块201、测试用例管理模块202、测试用例执行模块203、性能信息采集模块204、web服务器模块210和性能信息展示模块220和数据服务器230。

其中,Web服务器模块210主要负责通讯以及连接自动化性能测试模块组200、性能信息展示模块220和数据服务器230,控制测试用例的执行以及查看性能测试报告等。

性能测试控制模块201负责控制功能性能测试的启动停止等业务逻辑以及功能性能测试过程之间的通讯等逻辑。待启动测试后,选择好测试用例即可提交到测试用例执行模块203。

测试用例管理模块202负责管理测试用例库中已经编写好的测试管理,进行编辑删除更新等操作以便维护测试用例库。

测试用例执行模块203负责按照脚本对测试用例进行执行,以达到模拟人工的自动化操作。测试用例执行模块203接收到用户选择执行的测试用例之后,建立测试任务,并进行自动化的操作,及向性能信息采集模块204发送测试用例执行通知。

性能信息采集模块204主要负责采集系统的CPU,物理内存,虚拟内存,磁盘,网络,应用启动时间,电池电量等信息进行采集。性能信息采集模块204接收到测试用例执行通知时,开始采集性能状态信息,并实时向web服务器发送当前设备性能状态以便展示给测试用户。

自动化测试模块组200将性能信息采集模块204中获取的系统信息和web服务器模块210中的API接口信息传输到Web服务器的性能信息展示模块220中用于实时可视化展现;测试中的实时性能信息通过性能信息展示模块220展示给用户,最终的测试结果保存到数据服务器230上。

在测试用例执行结束后,由测试用例执行模块203向性能测试控制模块201发送通知,告知测试完成,由性能测试控制模块201向性能信息采集模块204发送结束性能采集通知,性能信息采集模块204结束性能采集并将测试结果保存在数据服务器230上,同时展示给用户,用户同样可以与其他测试设备进行数据保存,对比导出等操作,简化监控测试流程,提高性能测试的效率和准确率。

实施例一

本发明实施例一提供的自动化测试中的性能监控方法,其流程如图3所示,包括如下步骤:

步骤S101:启动对被测设备的自动化性能测试。

在终端设备应用测试中,可以通过个人计算机等用户设备搭建自动化测试框架和测试脚本,对应用进行自动化测试。可以通过性能测试控制模块实现管理测试用例的执行循序以及创建管理测试计划等,不同的测试用例之间会有依赖等,这些都是由性能测试控制模块负责管理的。

步骤S102:从测试用例库中获取所需要的测试用例。

测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。通过模拟一些人为的点击滑动等操作,以达到代替人工进行自动化测试的目的。编写好的测试用例可以存放在测试用例库中,测试用例是一系列操作的集合脚本,这个集合包括了屏幕点击,物理按键点按,屏幕滑动,手机系统状态设置,构造初始测试状态,重置测试状态等操作,通过这一系列的操作集合的不同组合来模拟一些用户操作以达到自动化测试的目的。

也就是说,测试用例库中存储的测试用例包括下列测试用例中的至少一个:屏幕点击测试用例,物理按键点按测试用例,屏幕滑动测试用例,手机系统状态设置测试用例,构造初始测试状态测试用例,重置测试状态测试用例。

步骤S103:根据获取的测试用例建立测试任务,自动化执行获取的测试用例。

执行已经编写好的测试用例,将测试用例操作脚本与终端设备底层的基本操作相转化,以达到自动化测试的目的。

自动化执行所测试用例时,自动化执行从测试用例库中获取的测试用例脚本,实现模拟用户操作下列操作中的至少一个:屏幕点击,物理按键点按,屏幕滑动,手机系统状态设置,构造初始测试状态,重置测试状态。

步骤S104:通过Java反射技术和Java单元测试调用应用程序接口实现采集测试用例执行过程中被测设备的性能状态信息。

性能监控可以实现对终端设备的中央处理单元(CPU)、内存、网络等性能进行采集和监控。采集到的性能状态信息数据可以交给数据服务器加以保存以便测试报告的生成以及后期的查看回放等。

步骤S105:采集到的性能状态信息进行可视化展现处理,并输出。

采集到的性能状态信息可以通过性能信息展示模块展示给用户或说测试人员,使其可以实时的可视化的查看手机的性能信息。

步骤S106:实时展示被测设备的性能状态信息给用户。

上述方法中,可选的,自动化测试时,可以通过网页管理界面实现允许用户执行下列操作中的至少一项:开始、暂停、停止、重新开始对被测设备的自动化性能测试。

实施例二

本发明实施例二提供上述自动化测试中的性能监控方法,其原理如图4所示,其实现流程如图5所示,包括如下步骤:

步骤S201:启动对被测设备的自动化性能测试。

由用户或说测试人员启动终端涉笔的自动化测试流程。

步骤S202:查找测试用例库中是否存在所需要的测试用例。

若是,执行步骤S205,若否执行步骤S203。

确定需要哪个或哪几个测试用例后,去测试用例库中查找所需要的测试用例,根据查询结果执行后续操作。如图4所示的,选择现有的测试用例或者编写新的测试用例。

步骤S203:向用户反馈未找到所需要的测试用例并提示用户选择调用测试用例编写模块编写所需要的测试用例。

当测试用例库中不存在所需要的测试用例时,向用户反馈未找到所需要的测试用例并提示用户选择调用测试用例编写模块编写所需要的测试用例;即若测试用例库中不存在所需要的特定的测试用例,则用户可通过测试用例编写模块编写新的测试用例并保存到测试用例库中。

步骤S204:将编写好的测试用例存储到测试用例库中。

可选的,还可以管理测试用例库中已编写好的测试用例,对测试用例进行编辑、修改、删除或更新操作。

步骤S205:从测试用例库中获取所需要的测试用例。

步骤S206:根据获取的测试用例建立测试任务,自动化执行获取的测试用例。

如图4中所示的执行测试用例。

步骤S207:通过Java反射技术和Java单元测试调用应用程序接口实现采集测试用例执行过程中被测设备的性能状态信息。

步骤S208:采集到的性能状态信息进行可视化展现处理,并输出。

如图4中所示的实时展示,此外还可以对采集到的性能状态信息进行数据保存以及生成测试报告。

步骤S209:实时展示被测设备的性能状态信息给用户。

用户可以通过Web管理界面进行暂停,停止,重新开始监控等操作。

上述方法在开始自动化测试的同时启动监控线程,获取系统性能信息,推送到web页面进行实时展示,测试结束后进行报告展示与保存数据。采集到的数据以基于名称/值对的数据交换格式(JSON格式)通过网络套接字(WebSocket)发给展现端。测试结束后将性能信息上传到服务器上。

本发明实施例的上述方法及装置可以基于安卓(Android)自动化测试框架(Robotium)实现对Android平台的应用进行黑盒自动化测试,通过模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的应用程序编程接口(Application Programming Interface,API)能够对各种控件进行操作,达到对应用程序进行自动化的测试的目的。

上述方法及装置,在自动化测试框架中集成性能测试模块,在自动化测试框架中通过iava反射技术以及安卓的Java单元测试(Android JUnit Test)调用安卓应用程序接口(Android API)以获取性能信息,在执行自动化测试用例的同时,对被测设备进行性能采集以便实时性能监控和性能评测报告的展现,自动化测试与性能采集高度整合,无缝的实现了性能测试的自动化进行。

上述方法及装置,部署安装简单,由于将性能测试集成到了自动化测试框架,仅有一套测试框架,在执行自动化测试用例时自动实时进行性能采集,无需进行额外的设置;功能测试与性能监控耦合度高,可以进行自动化的实时的性能监控,测试完成后即可生成完整的性能测试报告,实时性强;测试周期短,可实现自动化,定制化的性能测试,提高了性能测试的效率与准确率;该方案可以实现实时展示监控结果,通过一个网络服务模块将系统监控状态展示到网页或浏览器窗口中,无论在被测试设备上还是其他个人计算机上,只要通过浏览器访问网页即可实时展示系统信息;该方案可以对系统的CPU,物理内存,虚拟内存,磁盘,网络,应用启动时间,API接口数据量,电量等信息进行采集展示,采集到丰富测试数据以便更利于性能分析;该方案不仅可以对整个系统的CPU内存等信息的监控,同样可以对特定的被测应用程序所使用的CPU内存等信息进程采集。

本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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