一种对应用程序进行测试的方法、装置和介质与流程

文档序号:11250796阅读:405来源:国知局
一种对应用程序进行测试的方法、装置和介质与流程

本发明的实施方式涉及应用程序测试领域,更具体地,本发明的实施方式涉及一种对应用程序进行测试的方法、装置和介质。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

随着计算机应用越来越广泛,需要通过不断开发新的应用程序,来满足人们不同的需求,而在应用程序开发完成后,发布之前,为了保证应用程序的可用性,通常会进行相关测试,其中,应用程序的稳定性测试是其中一项较为普遍且重要的测试。稳定性测试,是指在正常或者暴力使用情况(如在较快的操作频率下进行点击、界面切换等操作)下,通过测试应用程序是否发生“程序没有响应”,甚至“闪退”的严重故障,来判断应用程序是否可以稳定运行。

目前,主要人工的方式来测试,这种方法由于需要测试员来操作,而测试员所模拟的操作速度和操作次数都是有限的,因此测试的强度可能不够,进而存在测试结果不准确的缺陷。



技术实现要素:

现有的测试方法存在测试结果不准确的缺陷,这是非常令人烦恼的过程。

为此,非常需要一种改进的对应用程序进行测试的方法,以使解决现有技术中存在的测试结果不准确的缺陷。

在本上下文中,本发明的实施方式期望提供一种新的对应用程序进行测试的方法和装置。

在本发明实施方式的第一方面中,提供了一种对应用程序进行测试的方法,包括:

当所述应用程序窗口启动时,获取所述应用程序窗口的句柄信息以及位置信息;

根据预先设置的测试规则,在所述应用程序窗口中执行测试操作。

在一个实施方式中,根据本发明的上述实施方式所述的方法,所述测试规则包括如下中的至少一项:

测试间隔时间、测试点击次数、预设随机数、性能指标和特定事件。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,根据预先设置的测试规则,在所述应用程序窗口中执行测试操作,包括:

采用所述测试间隔时间在所述应用程序窗口中执行不超过所述测试点击次数的点击;

其中,第n-1次点击操作的时间点和第n次点击操作的时间点之间的时长为所述测试间隔时间,所述n为大于1且小于或者等于所述测试点击次数的整数,所述测试间隔时间为固定值或者为与所述n相关的函数值。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,根据预先设置的测试规则,在所述应用程序窗口中执行测试操作,包括:

确定所述应用程序窗口内的m个目标点,针对所述m个目标点执行测试操作;

其中,所述m小于或者等于所述测试点击次数。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,确定所述应用程序窗口内的m个目标点,包括:

根据所述测试点击次数、所述预设随机数和所述位置信息,生成m个点击坐标;

将生成的m个点击坐标对应的点作为所述目标点。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,根据预先设置的测试规则,在所述应用程序窗口中执行测试操作,包括:

在所述应用程序窗口内执行完所述测试点击次数的点击、未检测到所述特定事件时,完成对所述应用程序的测试;和/或

在所述应用程序窗口内执行完所述测试点击次数的点击、检测到所述性能指标符合预设条件时,完成对所述应用程序的测试。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,根据预先设置的测试规则,在所述应用程序窗口中执行测试操作,包括:

在所述应用程序窗口内未执行完所述测试点击次数的点击、检测到所述特定事件时,完成对所述应用程序的测试;或者

在所述应用程序窗口内未执行完所述测试点击次数的点击、检测到所述性能指标不符合预设条件时,完成对所述应用程序的测试。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,所述特定事件包括窗口闪退事件和/或点击操作无响应事件。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,所述方法还包括:

截取窗口闪退后所述应用程序所安装的设备的屏幕的界面;和/或

截取点击操作无响应时所述应用程序窗口的界面。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,根据预先设置的测试规则,在所述应用程序窗口中执行测试操作,包括:

在所述应用程序窗口中执行测试操作的过程中,检测到弹出第一子窗口时,暂停在所述应用程序窗口中执行测试操作,根据所述预先设置的测试规则,在所述第一子窗口中执行测试操作;

当在所述第一子窗口中完成测试操作时,继续在所述应用程序窗口中执行测试操作。

在一些实施方式中,根据本发明的上述任一实施方式所述的方法,所述方法还包括:

在所述第一子窗口中执行测试操作的过程中,检测到弹出第二子窗口时,暂停在所述第一子窗口中执行测试操作,根据所述预先设置的测试规则,在所述第二子窗口中执行测试操作;当在所述第二子窗口中完成测试操作时,继续在所述第一子窗口中执行测试操作。

在本发明实施方式的第二方面中,提供了一种对应用程序进行测试的装置,包括:

获取单元,用于当所述应用程序窗口启动时,获取所述应用程序窗口的句柄信息以及位置信息;

测试单元,用于根据预先设置的测试规则,在所述应用程序窗口中执行测试操作。

在一个实施方式中,根据本发明的上述实施方式所述的装置,所述测试规则包括如下中的至少一项:

测试间隔时间、测试点击次数、预设随机数、性能指标和特定事件。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述测试单元在根据预先设置的测试规则,在所述应用程序窗口中执行测试操时,具体为:

采用所述测试间隔时间在所述应用程序窗口中执行不超过所述测试点击次数的点击;

其中,第n-1次点击操作的时间点和第n次点击操作的时间点之间的时长为所述测试间隔时间,所述n为大于1且小于或者等于所述测试点击次数的整数,所述测试间隔时间为固定值或者为与所述n相关的函数值。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述测试单元包括确定单元和点击单元,其中:

所述确定单元,用于确定所述应用程序窗口内的m个目标点,所述m小于或者等于所述测试点击次数;

所述点击单元,用于针对所述m个目标点执行测试操作。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述确定单元确定所述应用程序窗口内的m个目标点时,具体为:

根据所述测试点击次数、所述预设随机数和所述位置信息,生成m个点击坐标;

将生成的m个点击坐标对应的点作为所述目标点。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述测试单元包括点击单元和检测单元,其中:

所述检测单元,用于在所述点击单元在所述应用程序窗口内执行完所述测试点击次数的点击时未检测到所述特定事件时,完成对所述应用程序的测试;和/或

所述检测单元,用于在所述点击单元在所述应用程序窗口内执行完所述测试点击次数的点击时检测到所述性能指标符合预设条件时,完成对所述应用程序的测试。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述测试单元包括点击单元和检测单元,其中:

所述检测单元,用于在所述点击单元在所述应用程序窗口内未执行完所述测试点击次数的点击时检测到所述特定事件时,完成对所述应用程序的测试;或者

所述检测单元,用于在所述点击单元在所述应用程序窗口内未执行完所述测试点击次数的点击时检测到所述性能指标不符合预设条件时,完成对所述应用程序的测试。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述特定事件包括窗口闪退事件和/或点击操作无响应事件。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述装置还包括截取单元,用于截取窗口闪退后所述应用程序所安装的设备的屏幕的界面;和/或,截取点击操作无响应时所述应用程序窗口的界面。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述测试单元包括暂停测试单元和继续测试单元,其中:

所述暂停测试单元,用于在所述应用程序窗口中执行测试操作的过程中,检测到弹出第一子窗口时,暂停在所述应用程序窗口中执行测试操作,根据所述预先设置的测试规则,在所述第一子窗口中执行测试操作;

所述继续测试单元,用于当在所述第一子窗口中完成测试操作时,继续在所述应用程序窗口中执行测试操作。

在一些实施方式中,根据本发明的上述任一实施方式所述的装置,所述暂停测试单元还用于,在所述第一子窗口中执行测试操作的过程中,检测到弹出第二子窗口时,暂停在所述第一子窗口中执行测试操作,根据所述预先设置的测试规则,在所述第二子窗口中执行测试操作;

所述继续测试单元还用于,当在所述第二子窗口中完成测试操作时,继续在所述第一子窗口中执行测试操作。

在本发明实施方式的第三方面中,提供了一种对应用程序进行测试的装置,包括:

一个或者多个处理器;

存储器,存储有程序,当所述程序被所述一个或者多个处理器执行时,所述程序使对应用程序进行测试的装置执行如第一方面或者第一方面的任意一种实施方式所述的方法。

在本发明实施方式的第四方面中,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当程序被处理器执行时,使得所述处理器执行如第一方面或者第一方面的任意一种实施方式所述的方法。

本发明实施例中,提出一种对应用程序进行测试的方法,包括:当所述应用程序窗口启动时,获取所述应用程序窗口的句柄信息以及位置信息;根据预先设置的测试规则,在所述应用程序窗口中执行测试操作;在该方案中,启动了要测试的应用程序的窗口后,就自动根据预先设置的测试规则在应用程序窗口中执行测试操作,即对应用程序进行开启后,可以在应用程序窗口内自动进行测试,不需要测试员在应用程序窗口中人工进行测试操作,实现了无人值守的测试,因此,可以提高测试结果的准确度。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1a示意性地示出了根据本发明实施方式的对应用程序进行测试的流程图;

图1b示意性地示出了根据本发明实施方式的子窗口的示意图;

图1c示意性地示出了根据本发明实施方式的对应用程序进行测试的示意图;

图2示意性地示出了根据本发明实施方式的对应用程序进行测试的装置的示意图;

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种对应用程序进行测试的方法、装置和介质。

在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

发明概述

本发明人发现,可以采用无人值守的方法对应用程序进行测试,如预先设置包括测试间隔时间、测试点击次数、预设随机数、性能指标和特定事件等测试规则,在应用程序窗口启动时,可以在应用程序窗口内采用测试间隔时间进行点击操作,可以在实际执行的点击次数达到预设的测试点击次数时停止测试,或者在实际执行的点击次数虽然未达到测试点击次数但是检测到性能不符合预设条件了,或者检测到特定事件了也可以停止测试,因此,对应用程序进行开启后,可以在应用程序窗口内自动进行测试,不需要测试员在应用程序窗口中人工进行测试操作,实现了无人值守的测试,因此,可以提高测试结果的准确度。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

应用场景总览

例如,欲对应用程序a进行测试,预先设置了测试间隔为3s,测试点击次数为5000次,特定事件为点击无响应和闪退,打开应用程序a后,在应用程序a的窗口内进行点击操作,一次点击完之后间隔3s之后再进行下一次点击,如果点击次数未达到5000次时检测到点击无响应或者闪退的事件,完成测试,即停止点击,如果点击次数达到5000次了,此时也符合完成测试的条件,停止点击。不需要测试员在应用程序窗口中人工进行测试操作,实现了无人值守的测试,因此,可以提高测试结果的准确度。

示例性方法

下面结合上面的应用场景,参考图1a来描述根据本发明示例性实施方式的用于对应用程序进行测试的方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。

参阅图1a所示,本发明实施例,提出一种对应用程序进行测试的方法10,包括:

步骤100:当所述应用程序窗口启动时,获取所述应用程序窗口的句柄信息以及位置信息;

步骤110:根据预先设置的测试规则,在所述应用程序窗口中执行测试操作。

本发明实施例中,所述测试规则包括如下中的至少一项:

测试间隔时间、测试点击次数、预设随机数、性能指标和特定事件。

其中,测试点击次数是指测试过程当中最多可以点击的次数,是一个阈值,并不是在测试过程中一定要达到的点击次数。

当然,测试规则还可以包括其他信息,在此不做具体限定。

本发明实施例中,根据预先设置的测试规则,在所述应用程序窗口中执行测试操作时,可选地,可以采用如下方式:

采用所述测试间隔时间在所述应用程序窗口中执行不超过所述测试点击次数的点击;

其中,第n-1次点击操作的时间点和第n次点击操作的时间点之间的时长为所述测试间隔时间,所述n为大于1且小于或者等于所述测试点击次数的整数。

其中,所述测试间隔时间可以为固定值,如果为固定值的话,任意相邻的两次点击所间隔的时间都是相同的,例如3s,第1次点击和第2次点击之间的测试间隔时间为3s,第2次和第3次点击之间的测试间隔时间也为3s,第3次点击和第4次点击之间的测试间隔时间也为3s,以此类推。

当然,测试间隔时间也可以是一个变化的值,如可以为与所述n相关的函数值,随着n的变化而变化,如测试间隔时间为(n+2)s,第1次和第2次点击之间的测试间隔时间为3s,第2次和第3次点击之间的测试间隔时间为4s,第3次和第4次点击之间的测试间隔时间为5s,以此类推,当然,测试间隔时间为(n+2)s只是一个具体示例,在此不做具体限定。

在应用程序窗口中进行测试时,并不是随意在应用程序窗口中进行点击操作,而是要先确定要点击的目标点,再对要点击的目标点进行点击,因此,本发明实施例中,根据预先设置的测试规则,在所述应用程序窗口中执行测试操作时,可以采用如下方式:

确定所述应用程序窗口内的m个目标点,针对所述m个目标点执行测试操作;

其中,所述m可以小于所述测试点击次数,此时,针对有些目标点可能要被点击一次以上,如测试点击次数为5000次,但是确定出的m个目标点为4000个,此时,有一些点要被点击一次以上;或者所述m也可以等于所述测试点击次数,此时,每一个目标点都是被点击一次。

本发明实施例中,确定所述应用程序窗口内的m个目标点时,可选地,可以采用如下方式:

根据所述测试点击次数、所述预设随机数和所述位置信息,生成m个点击坐标;

将生成的m个点击坐标对应的点作为所述目标点。

本发明实施例中,由于采用预设随机数生成的m个点击坐标具有如下特点,因此,采用随机数来生成点击坐标,而不是采用非随机数来生成点击坐标:

首先,由于m个点击坐标在生成时要用到预设随机数,而随机数具有不确定性,因此采用随机数生成的点击坐标点也是随机的,能更好地模拟用户的真实环境。其次,所有的随机数都是伪随机,这就意味着每个点击坐标在一定情况下又是可以重复生成的,因此,采用随机数生成的点击坐标点是能够重复的。

本发明实施例中,完成测试的方式有多种,例如,实际点击的次数达到预先设置的测试点击次数,或者虽然实际点击的次数未达到预先设置的测试点击次数,但是满足其它条件时也可能完成测试,因此,本发明实施例中,根据预先设置的测试规则,在所述应用程序窗口中执行测试操作时,可选地,可以采用如下方式:

在所述应用程序窗口内执行完所述测试点击次数的点击、未检测到所述特定事件时,完成对所述应用程序的测试;和/或

在所述应用程序窗口内执行完所述测试点击次数的点击、检测到所述性能指标符合预设条件时,完成对所述应用程序的测试。

例如,预先设置的测试点击次数为5000次,特定事件为闪退,性能指标为耗电量,如果在应用程序窗口内执行5000次点击,并且未检测到闪退时,完成测试;或者,如果在应用程序窗口内执行5000次点击,并且检测到耗电量符合预设条件时,完成测试。

上面描述的是测试过程中点击次数达到了测试点击次数,当然也可能在点击次数未达到测试点击次数的时候完成测试,如下面所述方式:

根据预先设置的测试规则,在所述应用程序窗口中执行测试操作,可选地,可以采用如下方式:

在所述应用程序窗口内未执行完所述测试点击次数的点击、检测到所述特定事件时,完成对所述应用程序的测试;或者

在所述应用程序窗口内未执行完所述测试点击次数的点击、检测到所述性能指标不符合预设条件时,完成对所述应用程序的测试。

例如,预先设置的测试点击次数为5000次,特定事件为闪退,性能指标为耗电量,如果在应用程序窗口内点击4000次的时候,检测到闪退时,可以完成测试;或者,如果在应用程序窗口内点击4000次的时候,检测到耗电量不符合预设条件时,也可以完成测试。

本发明实施例中,可选地,所述特定事件包括窗口闪退事件和/或点击操作无响应事件,当然,也可以是其它事件,在此不做具体限定。

本发明实施例中,进一步的,所述方法还包括:

截取窗口闪退后所述应用程序所安装的设备的屏幕的界面;和/或

截取点击操作无响应时所述应用程序窗口的界面;这样,可以根据界面中的信息来进行分析,避免再次测试的时候发生闪退或者点击无响应的事件。

本发明实施例中,如果由于特定事件或者性能指标不符合预设条件而停止测试时,进一步的,还可以将测试过程中运行的其它应用程序的信息进行反馈,便于根据反馈的信息确定发生特定事件或者性能不符合预设条件的原因,避免后续测试的时候再次发生特定事件或者性能指标不符合预设条件的情况。

本发明实施例中,在应用程序窗口中执行测试操作的过程中,可能弹出新的窗口,此时,可以在弹出的新的窗口中执行测试操作,当在新的窗口中执行的测试操作完成后,才继续在应用程序窗口中执行测试操作。

因此,本发明实施例中,根据预先设置的测试规则,在所述应用程序窗口中执行测试操作时,可选地,可以采用如下方式:

在所述应用程序窗口中执行测试操作的过程中,检测到弹出第一子窗口时,暂停在所述应用程序窗口中执行测试操作,根据所述预先设置的测试规则,在所述第一子窗口中执行测试操作;

当在所述第一子窗口中完成测试操作时,继续在所述应用程序窗口中执行测试操作。

同理,在第一子窗口中执行测试的过程中,还可能继续弹出新的窗口,因此,进一步的,所述方法还包括:

在所述第一子窗口中执行测试操作的过程中,检测到弹出第二子窗口时,暂停在所述第一子窗口中执行测试操作,根据所述预先设置的测试规则,在所述第二子窗口中执行测试操作;当在所述第二子窗口中完成测试操作时,继续在所述第一子窗口中执行测试操作。

如图1b所示,在应用程序窗口执行点击操作时,如点击到查找按钮时,可以弹出查找窗口,即第一子窗口,此时,暂停在应用程序窗口内执行点击操作,开始在第一子窗口内执行点击操作,在第一子窗口中点击时,又弹出第二子窗口的话,此时,暂停在第一子窗口内执行点击操作,开始在第二子窗口中执行点击操作,在第二子窗口中执行完测试后,继续在第一子窗口内执行点击操作,当在第一子窗口中执行完点击操作后,才继续在应用程序窗口中执行点击操作。

前面描述的是在应用程序窗口中弹出第一子窗口,在第一子窗口中又弹出第二子窗口的情况,在实际应用中,第二子窗口中还可能弹出新的子窗口,在新的子窗口中又弹出新的子窗口,以此类推,但是,在各个子窗口中执行测试操作的过程与第一子窗口和第二子窗口的过程类似,在此不再进行详述。

需要说明的是,在应用程序窗口中执行测试操作时,可能弹出第一子窗口,在第一子窗口中完成测试后继续在应用程序窗口中执行测试操作时,可能又弹出第三子窗口,此时,仍然暂停在应用程序窗口中执行点击操作,在第三子窗口中执行点击操作,在第三子窗口中完成测试后再继续在应用程序窗口中执行测试操作。也就是说,在应用程序窗口中可能多次弹出新的子窗口,但是每次弹出新的子窗口时都要暂停在应用程序窗口中执行测试操作,开始在新弹出的子窗口中执行测试操作,在子窗口中完成测试操作后,继续在应用程序窗口中执行测试操作。

例如,预先设置的测试点击操作为5000次,在点击到第3000次的时候,弹出第一子窗口,此时,暂停在应用程序窗口中执行点击操作,开始在第一子窗口中执行点击操作,在第一子窗口中完成测试之后,再继续在应用程序窗口中执行点击操作,即开始执行第3001次点击操作,当点击到4000次的时候,又弹出第三子窗口,此时,在第三子窗口中执行点击操作,在第三子窗口中完成测试后,继续在应用程序窗口中执行点击操作,即开始执行第4001次点击操作,当然,在执行4000次以后的点击操作的过程中,还可能继续弹出新的子窗口,针对新的子窗口,与第一子窗口和第三子窗口的测试过程类似,在此不再进行详述。

需要说明的是,预先设置的测试规则不仅针对应用程序窗口,也针对在对应用程序窗口进行测试操作过程中弹出来的子窗口,例如第一子窗口、第二子窗口等等。例如,在应用程序窗口中进行测试的测试间隔时间与在第一子窗口中进行测试的测试间隔时间是相同的,与在第二子窗口中进行测试的测试间隔时间也是相同的。又例如,在应用程序窗口中检测到点击无响应的事件时要完成测试,如果在第一子窗口中或者第二子窗口中检测到点击无响应的事件时也完成测试。测试规则中的其它元素也类似,在此不再进行详述。

对本发明实施例中所提出的对应用程序进行测试的方法进行举例描述,参阅图1c所示。

预先设置测试规则,测试规则包括随机数、测试点击次数、测试间隔时间、特定事件(包括点击无响应事件和闪退事件)、性能指标(包括耗电量)。在需要进行测试的时候,启动应用程序,呈现应用程序窗口,获取应用程序窗口的句柄信息和位置信息,然后根据预先设置的随机数和位置信息确定目标点,并针对目标点进行点击操作;获取句柄信息和位置信息、根据随机数和位置信息确定目标点、对目标点进行点击操作是在应用程序窗口下执行的,在应用程序窗口下进行点击操作时,判断在点击过程中是否检测到弹出的新的子窗口,如果没有检测到的话,保持在应用程序窗口下执行点击操作,如果检测到的话,暂停在应用程序窗口下执行点击操作,开始在子窗口中进行测试操作,当在子窗口中完成测试时,继续在应用程序窗口中执行剩余的点击操作。

需要说明的是,如果在应用程序窗口中进行测试的过程中,如果检测到点击无响应的事件,或者检测到闪退事件,或者是检测到性能不符合预设条件时即使点击次数未达到测试点击次数,也停止点击,完成测试,同理,在新弹出的子窗口中进行测试的过程中,如果检测到点击无响应的事件,或者检测到闪退事件,或者是检测到性能不符合预设条件时即使点击次数未达到测试点击次数,也停止点击,完成测试。

示例性装置

在介绍了本发明示例性实施方式的方法之后,接下来,参考图2对本发明示例性实施方式的、用于对应用程序进行测试的装置20进行描述,该装置20包括:

获取单元200,用于当所述应用程序窗口启动时,获取所述应用程序窗口的句柄信息以及位置信息;

测试单元210,用于根据预先设置的测试规则,在所述应用程序窗口中执行测试操作。

本发明实施例中,所述测试规则包括如下中的至少一项:

测试间隔时间、测试点击次数、预设随机数、性能指标和特定事件。

其中,测试点击次数是指测试过程当中最多可以点击的次数,是一个阈值,并不是在测试过程中一定要达到的点击次数。

当然,测试规则还可以包括其他信息,在此不做具体限定。

本发明实施例中,所述测试单元210在根据预先设置的测试规则,在所述应用程序窗口中执行测试操时,具体为:

采用所述测试间隔时间在所述应用程序窗口中执行不超过所述测试点击次数的点击;

其中,第n-1次点击操作的时间点和第n次点击操作的时间点之间的时长为所述测试间隔时间,所述n为大于1且小于或者等于所述测试点击次数的整数。

其中,所述测试间隔时间可以为固定值,如果为固定值的话,任意相邻的两次点击所间隔的时间都是相同的,例如3s,第1次点击和第2次点击之间的测试间隔时间为3s,第2次和第3次点击之间的测试间隔时间也为3s,第3次点击和第4次点击之间的测试间隔时间也为3s,以此类推。

当然,测试间隔时间也可以是一个变化的值,如可以为与所述n相关的函数值,随着n的变化而变化,如测试间隔时间为(n+2)s,第1次和第2次点击之间的测试间隔时间为3s,第2次和第3次点击之间的测试间隔时间为4s,第3次和第4次点击之间的测试间隔时间为5s,以此类推,当然,测试间隔时间为(n+2)s只是一个具体示例,在此不做具体限定。

在应用程序窗口中进行测试时,并不是随意在应用程序窗口中进行点击操作,而是要先确定要点击的目标点,再对要点击的目标点进行点击,因此,本发明实施例中,所述测试单元210包括确定单元210a和点击单元210b,其中:

所述确定单元210a,用于确定所述应用程序窗口内的m个目标点;

所述点击单元210b,用于针对所述m个目标点执行测试操作。

其中,所述m可以小于所述测试点击次数,此时,针对有些目标点可能要被点击一次以上,如测试点击次数为5000次,但是确定出的m个目标点为4000个,此时,有一些点要被点击一次以上;或者所述m也可以等于所述测试点击次数,此时,每一个目标点都是被点击一次。

本发明实施例中,所述确定单元210a确定所述应用程序窗口内的m个目标点时,具体为:

根据所述测试点击次数、所述预设随机数和所述位置信息,生成m个点击坐标;

将生成的m个点击坐标对应的点作为所述目标点。

本发明实施例中,由于采用预设随机数生成的m个点击坐标具有如下特点,因此,采用随机数来生成点击坐标,而不是采用非随机数来生成点击坐标:

首先,由于m个点击坐标在生成时要用到预设随机数,而随机数具有不确定性,因此采用随机数生成的点击坐标点也是随机的,能更好地模拟用户的真实环境。其次,所有的随机数都是伪随机,这就意味着每个点击坐标在一定情况下又是可以重复生成的,因此,采用随机数生成的点击坐标点是能够重复的。

本发明实施例中,完成测试的方式有多种,例如,实际点击的次数达到预先设置的测试点击次数,或者虽然实际点击的次数未达到预先设置的测试点击次数,但是满足其它条件时也可能完成测试,因此,本发明实施例中,所述测试单元210包括点击单元210b和检测单元210c,其中:

所述检测单元210c,用于在所述点击单元210b在所述应用程序窗口内执行完所述测试点击次数的点击时未检测到所述特定事件时,完成对所述应用程序的测试;和/或

所述检测单元210c,用于在所述点击单元210b在所述应用程序窗口内执行完所述测试点击次数的点击时检测到所述性能指标符合预设条件时,完成对所述应用程序的测试。

例如,预先设置的测试点击次数为5000次,特定事件为闪退,性能指标为耗电量,如果在应用程序窗口内执行5000次点击,并且未检测到闪退时,完成测试;或者,如果在应用程序窗口内执行5000次点击,并且检测到耗电量符合预设条件时,完成测试。

上面描述的是测试过程中点击次数达到了测试点击次数,当然也可能在点击次数未达到测试点击次数的时候完成测试,因此,所述测试单元210包括点击单元210b和检测单元210c,其中:

所述检测单元210c,用于在所述点击单元210b在所述应用程序窗口内未执行完所述测试点击次数的点击时检测到所述特定事件时,完成对所述应用程序的测试;或者

所述检测单元210c,用于在所述点击单元210b在所述应用程序窗口内未执行完所述测试点击次数的点击时检测到所述性能指标不符合预设条件时,完成对所述应用程序的测试。

例如,预先设置的测试点击次数为5000次,特定事件为闪退,性能指标为耗电量,如果在应用程序窗口内点击4000次的时候,检测到闪退时,可以完成测试;或者,如果在应用程序窗口内点击4000次的时候,检测到耗电量不符合预设条件时,也可以完成测试。

本发明实施例中,可选地,所述特定事件包括窗口闪退事件和/或点击操作无响应事件,当然,也可以是其它事件,在此不做具体限定。

本发明实施例中,进一步的,所述装置还包括截取单元220,用于截取窗口闪退后所述应用程序所安装的设备的屏幕的界面;和/或,截取点击操作无响应时所述应用程序窗口的界面。这样,可以根据界面中的信息来进行分析,避免再次测试的时候发生闪退或者点击无响应的事件。

本发明实施例中,如果由于特定事件或者性能指标不符合预设条件而停止测试时,进一步的,还可以将测试过程中运行的其它应用程序的信息进行反馈,便于根据反馈的信息确定发生特定事件或者性能不符合预设条件的原因,避免后续测试的时候再次发生特定事件或者性能指标不符合预设条件的情况。

本发明实施例中,在应用程序窗口中执行测试操作的过程中,可能弹出新的窗口,此时,可以在弹出的新的窗口中执行测试操作,当在新的窗口中执行的测试操作完成后,才继续在应用程序窗口中执行测试操作。

因此,本发明实施例中,所述测试单元210包括暂停测试单元210d和继续测试单元210e,其中:

所述暂停测试单元210d,用于在所述应用程序窗口中执行测试操作的过程中,检测到弹出第一子窗口时,暂停在所述应用程序窗口中执行测试操作,根据所述预先设置的测试规则,在所述第一子窗口中执行测试操作;

所述继续测试单元210e,用于当在所述第一子窗口中完成测试操作时,继续在所述应用程序窗口中执行测试操作。

同理,在第一子窗口中执行测试的过程中,还可能继续弹出新的窗口,因此,进一步的,所述暂停测试单元210d还用于,在所述第一子窗口中执行测试操作的过程中,检测到弹出第二子窗口时,暂停在所述第一子窗口中执行测试操作,根据所述预先设置的测试规则,在所述第二子窗口中执行测试操作;

所述继续测试单元210e还用于,当在所述第二子窗口中完成测试操作时,继续在所述第一子窗口中执行测试操作。

如图1b所示,在应用程序窗口执行点击操作时,如点击到查找按钮时,可以弹出查找窗口,即第一子窗口,此时,暂停在应用程序窗口内执行点击操作,开始在第一子窗口内执行点击操作,在第一子窗口中点击时,又弹出第二子窗口的话,此时,暂停在第一子窗口内执行点击操作,开始在第二子窗口中执行点击操作,在第二子窗口中执行完测试后,继续在第一子窗口内执行点击操作,当在第一子窗口中执行完点击操作后,才继续在应用程序窗口中执行点击操作。

前面描述的是在应用程序窗口中弹出第一子窗口,在第一子窗口中又弹出第二子窗口的情况,在实际应用中,的第二子窗口中还可能弹出新的子窗口,在新的子窗口中又弹出新的子窗口,以此类推,但是,在各个子窗口中执行测试操作的过程与第一子窗口和第二子窗口的过程类似,在此不再进行详述。

需要说明的是,在应用程序窗口中执行测试操作时,可能弹出第一子窗口,在第一子窗口中完成测试后继续在应用程序窗口中执行测试操作时,可能又弹出第三子窗口,此时,仍然暂停在应用程序窗口中执行点击操作,在第三子窗口中执行点击操作,在第三子窗口中完成测试后再继续在应用程序窗口中执行测试操作。也就是说,在应用程序窗口中可能多次弹出新的子窗口,但是每次弹出新的子窗口时都要暂停在应用程序窗口中执行测试操作,开始在新弹出的子窗口中执行测试操作,在子窗口中完成测试操作后,继续在应用程序窗口中执行测试操作。

例如,预先设置的测试点击操作为5000次,在点击到第3000次的时候,弹出第一子窗口,此时,暂停在应用程序窗口中执行点击操作,开始在第一子窗口中执行点击操作,在第一子窗口中完成测试之后,再继续在应用程序窗口中执行点击操作,即开始执行第3001次点击操作,当点击到4000次的时候,又弹出第三子窗口,此时,在第三子窗口中执行点击操作,在第三子窗口中完成测试后,继续在应用程序窗口中执行点击操作,即开始执行第4001次点击操作,当然,在执行4000次以后的点击操作的过程中,还可能继续弹出新的子窗口,针对新的子窗口,与第一子窗口和第三子窗口的测试过程类似,在此不再进行详述。

需要说明的是,预先设置的测试规则不仅针对应用程序窗口,也针对在对应用程序窗口进行测试操作过程中弹出来的子窗口,例如第一子窗口、第二子窗口等等。例如,在应用程序窗口中进行测试的测试间隔时间与在第一子窗口中进行测试的测试间隔时间是相同的,与在第二子窗口中进行测试的测试间隔时间也是相同的。又例如,在应用程序窗口中检测到点击无响应的事件时要完成测试,如果在第一子窗口中或者第二子窗口中检测到点击无响应的事件时也完成测试。测试规则中的其它元素也类似,在此不再进行详述。

对本发明实施例中所提出的对应用程序进行测试的方法进行举例描述,参阅图1c所示。

预先设置测试规则,测试规则包括随机数、测试点击次数、测试间隔时间、特定事件(包括点击无响应事件和闪退事件)、性能指标(包括耗电量)。在需要进行测试的时候,启动应用程序,呈现应用程序窗口,获取应用程序窗口的句柄信息和位置信息,然后根据预先设置的随机数和位置信息确定目标点,并针对目标点进行点击操作;获取句柄信息和位置信息、根据随机数和位置信息确定目标点、对目标点进行点击操作是在应用程序窗口下执行的,在应用程序窗口下进行点击操作时,判断在点击过程中是否检测到弹出的新的子窗口,如果没有检测到的话,保持在应用程序窗口下执行点击操作,如果检测到的话,暂停在应用程序窗口下执行点击操作,开始在子窗口中进行测试操作,当在子窗口中完成测试时,继续在应用程序窗口中执行剩余的点击操作。

需要说明的是,如果在应用程序窗口中进行测试的过程中,如果检测到点击无响应的事件,或者检测到闪退事件,或者是检测到性能不符合预设条件时即使点击次数未达到测试点击次数,也停止点击,完成测试,同理,在新弹出的子窗口中进行测试的过程中,如果检测到点击无响应的事件,或者检测到闪退事件,或者是检测到性能不符合预设条件时即使点击次数未达到测试点击次数,也停止点击,完成测试。

示例性装置

在介绍了本发明示例性实施方式的方法和设备之后,接下来,介绍根据本发明的另一示例性实施方式的对应用程序进行测试的装置。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

在一些可能的实施方式中,根据本发明实施方式的对应用程序进行测试的装置可以包括至少一个处理单元、以及至少一个存储单元。其中,存储单元存储有程序代码,当程序代码被处理单元执行时,使得处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的对应用程序进行测试的方法中的步骤。例如,处理单元可以执行如图1a中所示的对应用程序进行测试的方法的步骤以及细化方案。

示例性程序产品

在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在设备上运行时,所述程序代码用于使设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的对应用程序进行测试的方法中的步骤,例如,设备可以执行如图1a中所示的对应用程序进行测试的方法的步骤以及细化方案。

程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示意性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

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