测试应用程序性能的方法及装置与流程

文档序号:11774364阅读:213来源:国知局
测试应用程序性能的方法及装置与流程
本发明涉及计算机应用
技术领域
,更为具体而言,涉及测试应用程序性能的方法及装置。
背景技术
:随着外卖领域的不断发展,送餐骑士的人数突飞猛进,越来越多的优秀骑士加入送餐大军。同时,外卖平台对于送餐骑士提出了严格的要求,也就是,送餐时间不能超过规定时间,平均准时送达率达到规定标准以上。而物流app(计算机应用程序)在使用过程中是否足够稳定,是直接影响到骑士效率的关键因素。因此,物流app的稳定性测试(又称可靠性测试,给计算机应用程序加载一定的业务压力,让计算机应用程序持续运行一段时间,检测计算机应用程序是否能够稳定运行)至关重要。随着计算机软件技术的发展,android(安卓)应用的开发工具中已经自带了一些稳定性测试的工具,这些工具可以为我们的稳定性测试提供服务。具体而言,只需设定运行时间,这些工具就可以模拟人在app中的点击、滑动等各种操作,从而能够在人力不干预的情况下,测试应用程序会不会在长时间的使用过程中发生崩溃、无响应等系统错误、是否能够长时间稳定地为用户提供服务。然而,在现有技术中,并不是依据用户的实际使用习惯来进行稳定性测试的,通常采用随机操作的方式,即使用测试工具在应用程序的界面上随机执行点击、滑动、下拉、上滑等操作。即使进行相对精确的稳定性测试,也仅限于测试人员基于其自身经验来估计各操作方式的概率。但是,不同app用户的使用习惯是有很大差别的,因此,仅凭测试人员的经验和估计是很难准确地模拟出用户的实际使用场景,从而导致稳定测试的结果不准确。技术实现要素:本发明实施方式提供了测试应用程序性能的方法及装置,用以解决现有技术中由于未依据用户的实际使用习惯来进行稳定性测试,而导致的稳定性测试不准确的问题。第一方面,本发明实施方式提供了一种测试应用程序性能的方法。具体地,所述方法包括:获取用户操作应用程序的操作数据;基于所述操作数据生成测试文件;通过所述测试文件测试所述应用程序的稳定性。由于在本发明中,基于用户操作应用程序的操作数据,生成用以测试应用程序稳定性的测试文件,因此,实现了依据用户的实际使用习惯进行稳定性测试,从而使得稳定性测试的结果更为准确。结合第一方面,在本发明的一些实现方式中,基于所述操作数据生成测试文件包括:通过所述操作数据确定所述应用程序的测试数据集,其中,所述测试数据集的划分包括:以所述应用程序的交互区域为粒度的划分;依据所述测试数据集生成测试文件。由于在不同app之间交互区域的划分存在很大差异,因此,需要结合app本身的交互特点来设计稳定性测试以得到更为准确的测试结果。对此,在本发明中,所述测试数据集的一个或多个划分中包括以所述应用程序的交互区域为粒度的划分,因此,可以分交互区域地确定测试数据,从而结合app自身的交互特点来设计稳定性测试。结合第一方面,在本发明的一些实现方式中,通过所述操作数据确定所述应用程序的测试数据集包括:通过所述操作数据确定所述测试数据集中的第一测试数据;指定所述测试数据集中的第二测试数据;基于所述第一测试数据和所述第二测试数据,确定所述测试数据集中的第三测试数据;其中,所述第一测试数据对应所述应用程序的第一交互区域;所述第二测试数据对应所述应用程序的第二交互区域;所述第三测试数据对应所述应用程序的第三交互区域。在本发明中,可以通过指定应用程序中部分交互区域(例如,能够导致app跳出运行的交互区域)的测试数据,来控制这部分交互区域在稳定性测试过程中的操作,以进一步提高稳定性测试的准确率。结合第一方面,在本发明的一些实现方式中,通过所述操作数据确定所述测试数据集中的第一测试数据包括:依据所述操作数据计算所述应用程序的页面概率分布、跳转概率分布和后台运行概率;利用所述页面概率分布、跳转概率分布和后台运行概率确定所述第一测试数据。结合第一方面,在本发明的一些实现方式中,所述方法还包括:监测所述应用程序是否跳出运行;若所述应用程序跳出运行,则启动所述应用程序并返回执行下述处理:通过所述测试文件测试所述应用程序的稳定性。在稳定性测试中,app经常会跳出运行而导致测试阶段存在无效测试。对此,本发明增加了监控机制(即监测app当前是否跳出运行,一旦监测到app跳出运行则再次启动该app),以减少测试阶段中的无效测试。第二方面,本发明实施方式提供了一种测试应用程序性能的装置。具体地,所述装置包括:获取模块,用于获取用户操作应用程序的操作数据;生成模块,用于基于所述操作数据生成测试文件;测试模块,用于通过所述测试文件测试所述应用程序的稳定性。由于在本发明中,基于用户操作应用程序的操作数据,生成用以测试应用程序稳定性的测试文件,因此,实现了依据用户的实际使用习惯进行稳定性测试,从而使得稳定性测试的结果更为准确。结合第二方面,在本发明的一些实现方式中,所述生成模块包括:测试数据集确定单元,用于通过所述操作数据确定所述应用程序的测试数据集,其中,所述测试数据集的划分包括:以所述应用程序的交互区域为粒度的划分;生成单元,用于依据所述测试数据集生成测试文件。由于在不同app之间交互区域的划分存在很大差异,因此,需要结合app本身的交互特点来设计稳定性测试以得到更为准确的测试结果。对此,在本发明中,所述测试数据集的一个或多个划分中包括以所述应用程序的交互区域为粒度的划分,因此,可以分交互区域地确定测试数据,从而结合app自身的交互特点来设计稳定性测试。结合第二方面,在本发明的一些实现方式中,所述测试数据集确定单元包括:第一测试数据确定子单元,用于通过所述操作数据确定所述测试数据集中的第一测试数据;第二测试数据指定子单元,用于指定所述测试数据集中的第二测试数据;第三测试数据确定子单元,用于基于所述第一测试数据和所述第二测试数据,确定所述测试数据集中的第三测试数据;其中,所述第一测试数据对应所述应用程序的第一交互区域;所述第二测试数据对应所述应用程序的第二交互区域;所述第三测试数据对应所述应用程序的第三交互区域。在本发明中,可以通过指定应用程序中部分交互区域(例如,能够导致app跳出运行的交互区域)的测试数据,来控制这部分交互区域在稳定性测试过程中的操作,以进一步提高稳定性测试的准确率。结合第二方面,在本发明的一些实现方式中,所述第一测试数据确定子单元包括:计算组件,用于依据所述操作数据计算所述应用程序的页面概率分布、跳转概率分布和后台运行概率;确定组件,用于利用所述页面概率分布、跳转概率分布和后台运行概率确定所述第一测试数据。结合第二方面,在本发明的一些实现方式中,所述装置还包括:监测模块,用于监测所述应用程序是否跳出运行;启动及调用模块,用于在所述应用程序跳出运行的情形下,启动所述应用程序并调用所述测试模块通过所述测试文件测试所述应用程序的稳定性。在稳定性测试中,app经常会跳出运行而导致测试阶段存在无效测试。对此,本发明增加了监控机制(即监测app当前是否跳出运行,一旦监测到app跳出运行则再次启动该app),以减少测试阶段中的无效测试。本发明的这些方面或其他方面在以下具体实施方式的描述中会更加简明易懂。附图说明为了更清楚地说明本发明实施方式的技术方案,下面将对实施方式描述中所需要使用的附图作一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本发明方法实施方式1的测试应用程序性能的方法的流程图;图2是根据本发明方法实施方式2的测试应用程序性能的方法的流程图;图3是根据本发明方法实施方式3的测试应用程序性能的方法的流程图;图4示出了图3所示的处理s32的一种实施方式;图5示出了图4所示的处理s321的一种实施方式;图6是根据本发明方法实施方式6的测试应用程序性能的方法的流程图;图7是根据本发明装置实施方式1的测试应用程序性能的装置的结构示意图;图8示出了图7所示的生成模块2的一种实施方式;图9示出了图8所示的测试数据集确定单元21的一种实施方式;图10示出了图9所示的第一测试数据确定子单元211的一种实施方式;图11示出了图10所示的确定组件2112的一种实施方式。具体实施方式以下结合附图和具体实施方式对本发明的各个方面进行详细阐述。其中,在本发明的各个具体实施方式中,众所周知的操作过程、程序模块、单元及其相互之间的连接、链接、通信或操作没有示出或未作详细说明。并且,所描述的特征、架构或功能可在一个或一个以上实施例中以任何方式组合。此外,本领域技术人员应当理解,下述的各种实施方式只用于举例说明,而非用于限制本发明的保护范围。本领域的技术人员还可以容易理解,本文所述和附图所示的各实施方式中的程序模块、单元或步骤可以按多种不同配置进行组合和设计。对于未在本说明书中进行具体说明的技术术语,除非另有特定说明,都应以本领域最宽泛的意思进行解释。在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。下面将结合附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明的一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有付出创造性劳动的前提下所获得的所有其他实施方式,都属于本发明保护的范围。【方法实施方式1】图1是根据本发明方法实施方式1的测试应用程序性能的方法的流程图。参见图1,在本实施方式中,所述方法包括:s11:获取用户操作应用程序的操作数据。s12:基于所述操作数据生成测试文件。s13:通过所述测试文件测试所述应用程序的稳定性。例如,可以通过百度移动统计平台获取真实的用户操作数据,并从中提取出稳定性测试所需要的关键要素,具体包括:(1)访问页面:被用户访问的页面。(2)访问次数占比:用户访问一个页面的次数/全部页面的总访问次数。(3)访问路径:用户在访问过程中进行的页面跳转。例如,页面a—页面b,指用户访问页面a之后跳转到页面b。通过分析从页面a到页面b的跳转按钮的位置以及操作方式,可以进一步分析出用户与应用程序进行交互的区域以及执行的行为。举例说明,用户访问物流app的订单列表页(物流app的主页,以将订单卡片排成一列的形式展示所有订单)之后访问订单详情页(订单的具体信息页,包含订单的内容、价格、收货地址和导航、送货地址和导航、订单类型等),由此可以分析出该用户点击了订单列表页的主体交互区域。(4)用户访问深度:访问路径的长度。该要素用于分析用户是更有可能通过按返回键返回到上一级页面,还是进入子页面,还是直接按home键(起始键)使应用程序进入后台。由于在本发明中,基于用户操作应用程序的操作数据,生成用以测试应用程序稳定性的测试文件,因此,实现了依据用户的实际使用习惯进行稳定性测试,从而使得稳定性测试的结果更为准确。【方法实施方式2】图2是根据本发明方法实施方式2的测试应用程序性能的方法的流程图。如图2所示,在本实施方式中,所述方法包括:s21:获取用户操作应用程序的操作数据。s22:通过所述操作数据确定所述应用程序的测试数据集。s23:依据所述测试数据集生成测试文件。s24:通过所述测试文件测试所述应用程序的稳定性。其中,所述测试数据集的划分包括:以所述应用程序的交互区域为粒度的划分。其中,划分的定义如下:若集合a的幂集p(a)的一个子集π={a1,a2,...,ak}满足:(1)π中没有空集;(2)a1,a2,……,ak两两不相交;(3)所有集合的并集a1∪a2∪...∪ak=a。则称π是集合a的一个划分。以应用程序的交互区域为粒度的划分π1满足:(1)π1中的每个元素分别对应一个交互区域;(2)π1的元素数量等于应用程序中交互区域的数量。由于在不同app之间交互区域的划分存在很大差异,因此,需要结合app本身的交互特点来设计稳定性测试以得到更为准确的测试结果。对此,在本发明中,所述测试数据集的一个或多个划分中包括以所述应用程序的交互区域为粒度的划分,因此,可以分交互区域地确定测试数据,从而结合app自身的交互特点来设计稳定性测试。【方法实施方式3】图3是根据本发明方法实施方式3的测试应用程序性能的方法的流程图。如图3所示,在本实施方式中,所述方法包括:s31:获取用户操作应用程序的操作数据。s32:通过所述操作数据确定所述应用程序的测试数据集中的第一测试数据。所述第一测试数据对应所述应用程序的第一交互区域。s33:指定所述测试数据集中的第二测试数据。所述第二测试数据对应所述应用程序的第二交互区域。s34:基于所述第一测试数据和所述第二测试数据,确定所述测试数据集中剩余的第三测试数据。所述第三测试数据对应所述应用程序的第三交互区域。s35:依据所述测试数据集生成测试文件。s36:通过所述测试文件测试所述应用程序的稳定性。在本发明中,可以通过指定应用程序中部分交互区域(例如,能够导致app跳出运行的交互区域)的测试数据,来控制这部分交互区域在稳定性测试过程中的操作,以进一步提高稳定性测试的准确率。【方法实施方式4】本实施方式所提供的方法包含了方法实施方式3中的全部内容,在此不再赘述。如图4所示,在本实施方式中,通过以下方式实现处理s32:s321:依据所述操作数据计算所述应用程序的页面概率分布、跳转概率分布和后台运行概率。s322:利用所述页面概率分布、跳转概率分布和后台运行概率确定所述第一测试数据。应用程序的页面概率分布包括:该应用程序中各页面的访问概率。例如,若应用程序w中包括三个页面i1、i2和i3,则应用程序w的页面概率分布包括:p(i1)、p(i2)和p(i3)。应用程序的后台运行概率指:后台运行该应用程序的概率。应用程序的跳转概率分布包括:该应用程序中各页面间跳转的概率。例如,若应用程序v中包括两个页面i1和i2,则应用程序v的跳转概率分布包括:p(i1|i1)、p(i2|i1)、p(i1|i2)和p(i2|i2)。【方法实施方式5】本实施方式所提供的方法包含了方法实施方式4中的全部内容,在此不再赘述。在本实施方式中,测试数据集中的各测试数据分别包括:交互区域的交互概率和交互区域的行为概率分布。相应地,如图5所示,通过以下方式实现处理s321:s3211:根据所述页面概率分布和跳转概率分布,确定所述第一测试数据中交互区域的交互概率。s3212:根据所述页面概率分布、跳转概率分布和后台运行概率,确定所述第一测试数据中交互区域的行为概率分布。交互区域的交互概率指:与该交互区域进行交互的概率。交互区域的行为概率分布包括:在该交互区域中各操作行为的概率。例如,应用程序m中的操作行为包括:o1(点击)、o2(按键)、o3(下拉)、o4(上滑)、o5(水平滑动)和o6(长按)。该应用程序m中的交互区域a1的行为概率分布包括:p(o1|a1)、p(o2|a1)、p(o3|a1)、p(o4|a1)、p(o5|a1)和p(o6|a1)。【方法实施方式6】图6是根据本发明方法实施方式6的测试应用程序性能的方法的流程图。如图6所示,在本实施方式中,所述方法包括:s61:获取用户操作应用程序的操作数据。s62:基于所述操作数据生成测试文件。s63:通过所述测试文件测试所述应用程序的稳定性。s64:监测所述应用程序是否跳出运行,若是,则执行s65,若否,则返回执行s64。s65:启动所述应用程序并返回执行s63。在稳定性测试中,app经常会跳出运行而导致测试阶段存在无效测试。对此,本发明增加了监控机制(即监测app当前是否跳出运行,一旦监测到app跳出运行则再次启动该app),以减少测试阶段中的无效测试。在本实施方式中,处理s64具体可以通过以下方式实现:按照设定的间隔时间(例如1分钟)定时监测所述应用程序是否跳出运行。当然本领域的技术人员也可以根据实际需要对该间隔时间进行其他合理设置。【方法实施方式7】下面以物流app为例,对本实施方式所提供的测试应用程序性能的方法进行描述。所述方法包括:处理1:获取用户操作应用程序的操作数据。例如,可以通过百度移动统计平台获取真实的用户操作数据,并从中提取出稳定性测试所需要的关键要素,具体包括:(1)访问页面:被用户访问的页面。(2)访问次数占比:用户访问一个页面的次数/全部页面的总访问次数。(3)访问路径:用户在访问过程中进行的页面跳转。例如,页面a—页面b,指用户访问页面a之后跳转到页面b。通过分析从页面a到页面b的跳转按钮的位置以及操作方式,可以进一步分析出用户与应用程序进行交互的区域以及执行的行为。举例说明,用户访问物流app的订单列表页(物流app的主页,以将订单卡片排成一列的形式展示所有订单)之后访问订单详情页(订单的具体信息页,包含订单的内容、价格、收货地址和导航、送货地址和导航、订单类型等),由此可以分析出该用户点击了订单列表页的主体交互区域。(4)用户访问深度:访问路径的长度。该要素用于分析用户是更有可能通过按返回键返回到上一级页面,还是进入子页面,还是直接按home键(起始键)使应用程序进入后台。处理2:分析用户的操作数据。对以上4个要素进行分析以得到以下内容:(1)物流app的页面概率分布:包括物流app中各页面的访问概率。其中,物流app中的页面例如包括:订单列表页(i1)、订单详情页(i2)、历史订单页(i3)、骑士导航页(i4)、其他页面(i5)。相应地,物流app的页面概率分布包括:u(i1)、u(i2)、u(i3)、u(i4)和u(i5)。(2)跳转概率分布包括:该应用程序中各页面间跳转的概率。以订单列表页i1为例:i、有约为26%的概率跳转到订单详情页i2;ii、有约为22%的概率停留在订单列表页i1;iii、有约为3%的概率跳转到历史订单页i3;iv、有约为38%的概率跳转到骑士导航页i4;v、有约为11%的概率跳转到其他页面i5。(3)后台运行概率p后台指:后台运行该应用程序的概率。一般物流app用户最常用的操作,不是对手机屏幕进行操作,而是按home键将应用程序退到后台。因此,本实施方式将这种场景加入稳定性测试。处理3:通过分析出的页面概率分布、跳转概率分布和后台运行概率,确定物流app的测试数据集。所述测试数据集中的各测试数据分别包括:物流app中交互区域的交互概率(测试概率)和行为概率分布。即测试数据与物流app中的交互区域是一一对应的关系。当然本发明不限于此,本领域的技术人员也可以将测试数据与交互区域的对应关系进行其他合理设定,例如,测试数据与交互区域采用多对一的对应关系。交互区域的交互概率指:与该交互区域进行交互的概率。在本实施方式中,将物流app的界面划分为六个交互区域,分别是:a1:顶部通知区域;a2:左上角的返回按钮所在区域;a3:上中部的列表/地图切换区域;a4:右上角的通知/备注按钮所在区域;a5:页面中部的主体交互区域;a6:底部的操作按钮区域。交互区域的行为概率分布包括:在该交互区域中各操作行为的概率。物流app用户的操作行为包括:o1(点击)、o2(按键)、o3(下拉)、o4(上滑)、o5(水平滑动)和o6(长按)。由于对顶部通知区域a1进行操作很容易导致物流app跳出执行,因此,为减少稳定性测试中的无效测试,本实施方式将顶部通知区域a1的交互概率p(a1)设定为0,即p(a1)=0,并且,将顶部通知区域a1中的各操作行为概率也设定为0,即p(o1|a1)=0,p(o2|a1)=0,p(o3|a1)=0,p(o4|a1)=0,p(o5|a1)=0和p(o6|a1)=0。将app用户在页面ii中对交互区域aj访问的概率p(aj|ii)记为d(aj),则该用户在整个操作过程中对交互区域aj访问的总概率p(aj)应该为:在各个页面中对该交互区域aj访问的概率之和,即通过下述公式计算p(aj):并且,根据页面间跳转的概率可以得到在某个页面中用户对某个交互区域进行某个操作的概率,例如,由跳转概率分布可知:在订单列表页i1中,用户有26%的概率进入订单详情页i2,由此可以确定在订单列表页i1中,用户有26%的概率点击主体交互区域a5。在本实施方式中,以ri<a,o>来表示在页面i中用户对交互区域a进行操作o的概率。并且,建立一个表格来对ri<a,o>的全集进行记录,具体如下:ri<a,o>区域a操作or1<5,1>=25.42%51r1<5,3>=15.14%53r1<2,1>=6.28%21r1<5,5>=4.89%55r1<3,2>=2.58%32………………表1在本实施方式中,通过下述公式计算公式(1)中的d(aj),即p(aj|ii):通过下述公式计算在交互区域aj中进行操作om的概率p(om|aj):利用公式(1)、公式(2)和公式(3)计算交互区域a2、a3、a4和a6的交互概率以及行为概率分布。交互区域a5的交互概率以及行为概率分布,可以根据其他交互区域(a1、a2、a3、a4和a6)的交互概率和行为概率分布加以确定。例如,交互区域a5的交互概率p(a5)=1-p(a1)-p(a2)-p(a3)-p(a4)-p(a6)。p(om|a5)=[p(om)-p(om|a1)*p(a1)-p(om|a2)*p(a2)-p(om|a3)*p(a3)-p(om|a4)*p(a4)-p(om|a6)*p(a6)]/p(a5)。其中,处理4:将确定出的测试数据集写成测试文件。以下给出测试文件的示例:其中,"top_notification"表示顶部通知区域,"top_left"表示左上角的返回按钮所在区域,"top_right"表示右上角的通知/备注按钮所在区域,"title"表示上中部的列表/地图切换区域,"dialog"表示页面中部的主体交互区域,"bottom_bar"表示底部的操作按钮区域。"touch"表示点击操作,"keytype"表示按键操作,"pulldown"表示下拉操作,"pullup"表示上滑操作,"pullhorizontal"表示水平滑动操作,"longpress"表示长按操作。处理5:通过所述测试文件测试所述应用程序的稳定性。处理6:按照设定时间定时监测所述应用程序是否跳出运行,若是,则执行处理7,若否,则经过所述设定时间返回执行处理6。处理7:启动所述应用程序并返回执行处理5。最终,产出稳定性测试的测试报告。【装置实施方式1】图7是根据本发明装置实施方式1的测试应用程序性能的装置的结构示意图。参见图7,在本实施方式中,装置10包括:获取模块1、生成模块2和测试模块3,具体地:获取模块1用于获取用户操作应用程序的操作数据。生成模块2用于基于获取模块1获取的操作数据生成测试文件。测试模块3用于通过生成模块2生成的测试文件测试所述应用程序的稳定性。例如,可以通过百度移动统计平台获取真实的用户操作数据,并从中提取出稳定性测试所需要的关键要素,具体包括:(1)访问页面:被用户访问的页面。(2)访问次数占比:用户访问一个页面的次数/全部页面的总访问次数。(3)访问路径:用户在访问过程中进行的页面跳转。例如,页面a—页面b,指用户访问页面a之后跳转到页面b。通过分析从页面a到页面b的跳转按钮的位置以及操作方式,可以进一步分析出用户与应用程序进行交互的区域以及执行的行为。举例说明,用户访问物流app的订单列表页(物流app的主页,以将订单卡片排成一列的形式展示所有订单)之后访问订单详情页(订单的具体信息页,包含订单的内容、价格、收货地址和导航、送货地址和导航、订单类型等),由此可以分析出该用户点击了订单列表页的主体交互区域。(4)用户访问深度:访问路径的长度。该要素用于分析用户是更有可能通过按返回键返回到上一级页面,还是进入子页面,还是直接按home键(起始键)使应用程序进入后台。由于在本发明中,基于用户操作应用程序的操作数据,生成用以测试应用程序稳定性的测试文件,因此,实现了依据用户的实际使用习惯进行稳定性测试,从而使得稳定性测试的结果更为准确。【装置实施方式2】本实施方式所提供的装置包括了装置实施方式1中的全部内容,在此不再赘述。在本实施方式中,如图8所示,生成模块2包括:测试数据集确定单元21和生成单元22,具体地:测试数据集确定单元21用于通过所述操作数据确定所述应用程序的测试数据集。生成单元22用于依据测试数据集确定单元21确定的测试数据集生成测试文件。其中,所述测试数据集的划分包括:以所述应用程序的交互区域为粒度的划分。其中,划分的定义如下:若集合a的幂集p(a)的一个子集π={a1,a2,...,ak}满足:(1)π中没有空集;(2)a1,a2,……,ak两两不相交;(3)所有集合的并集a1∪a2∪...∪ak=a。则称π是集合a的一个划分。以应用程序的交互区域为粒度的划分π1满足:(3)π1中的每个元素分别对应一个交互区域;(4)π1的元素数量等于应用程序中交互区域的数量。由于在不同app之间交互区域的划分存在很大差异,因此,需要结合app本身的交互特点来设计稳定性测试以得到更为准确的测试结果。对此,在本发明中,所述测试数据集的一个或多个划分中包括以所述应用程序的交互区域为粒度的划分,因此,可以分交互区域地确定测试数据,从而结合app自身的交互特点来设计稳定性测试。【装置实施方式3】本实施方式所提供的装置包括了装置实施方式2中的全部内容,在此不再赘述。在本实施方式中,如图9所示,测试数据集确定单元21包括:第一测试数据确定子单元211、第二测试数据指定子单元212和第三测试数据确定子单元213,具体地:第一测试数据确定子单元211用于通过所述操作数据确定所述测试数据集中的第一测试数据。所述第一测试数据对应所述应用程序的第一交互区域。第二测试数据指定子单元212用于指定所述测试数据集中的第二测试数据。所述第二测试数据对应所述应用程序的第二交互区域。第三测试数据确定子单元213用于基于第一测试数据确定子单元211确定的第一测试数据和第二测试数据指定子单元212指定的第二测试数据,确定所述测试数据集中剩余的第三测试数据。所述第三测试数据对应所述应用程序的第三交互区域。在本发明中,可以通过指定应用程序中部分交互区域(例如,能够导致app跳出运行的交互区域)的测试数据,来控制这部分交互区域在稳定性测试过程中的操作,以进一步提高稳定性测试的准确率。【装置实施方式4】本实施方式所提供的装置包括了装置实施方式3中的全部内容,在此不再赘述。在本实施方式中,如图10所示,第一测试数据确定子单元211包括:计算组件2111和确定组件2112,具体地:计算组件2111用于依据所述操作数据计算所述应用程序的页面概率分布、跳转概率分布和后台运行概率。确定组件2112用于利用计算组件2111计算出的页面概率分布、跳转概率分布和后台运行概率确定所述第一测试数据。应用程序的页面概率分布包括:该应用程序中各页面的访问概率。例如,若应用程序w中包括三个页面i1、i2和i3,则应用程序w的页面概率分布包括:p(i1)、p(i2)和p(i3)。应用程序的后台运行概率指:后台运行该应用程序的概率。应用程序的跳转概率分布包括:该应用程序中各页面间跳转的概率。例如,若应用程序v中包括两个页面i1和i2,则应用程序v的跳转概率分布包括:p(i1|i1)、p(i2|i1)、p(i1|i2)和p(i2|i2)。【装置实施方式5】本实施方式所提供的装置包括了装置实施方式4中的全部内容,在此不再赘述。在本实施方式中,测试数据集中的各测试数据分别包括:交互区域的交互概率和交互区域的行为概率分布。相应地,如图11所示,确定组件2112包括:交互概率确定子组件21121和行为概率分布确定子组件21122,具体地:交互概率确定子组件21121用于根据所述页面概率分布和跳转概率分布,确定所述第一测试数据中交互区域的交互概率。行为概率分布确定子组件21122用于根据所述页面概率分布、跳转概率分布和后台运行概率,确定所述第一测试数据中交互区域的行为概率分布。交互区域的交互概率指:与该交互区域进行交互的概率。交互区域的行为概率分布包括:在该交互区域中各操作行为的概率。例如,应用程序m中的操作行为包括:o1(点击)、o2(按键)、o3(下拉)、o4(上滑)、o5(水平滑动)和o6(长按)。该应用程序m中的交互区域a1的行为概率分布包括:p(o1|a1)、p(o2|a1)、p(o3|a1)、p(o4|a1)、p(o5|a1)和p(o6|a1)。【装置实施方式6】本实施方式所提供的装置包括了装置实施方式1至装置实施方式5中任一项的全部内容,在此不再赘述。在本实施方式中,装置10还包括:监测模块和启动及调用模块,具体地:监测模块用于监测所述应用程序是否跳出运行。启动及调用模块用于在监测模块监测到应用程序跳出运行的情形下,启动所述应用程序并调用测试模块3执行下述处理:通过所述测试文件测试所述应用程序的稳定性。在稳定性测试中,app经常会跳出运行而导致测试阶段存在无效测试。对此,本发明增加了监控机制(即监测app当前是否跳出运行,一旦监测到app跳出运行则再次启动该app),以减少测试阶段中的无效测试。在本实施方式中,监测模块可以按照设定的间隔时间(例如1分钟)定时监测所述应用程序是否跳出运行。当然本领域的技术人员也可以根据实际需要对该间隔时间进行其他合理设置。本发明的实施方式还提供了一种终端设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时能够实现如方法实施方式1至方法实施方7中任意一项所述的方法。此外,本发明的实施方式还提供一种计算机存储介质,所述计算机存储介质用于存储有一条或多条计算机指令,其中,当所述一条或多条计算机指令被执行时能够实现方法实施方式1至方法实施方式7中任意一项所述的方法。本领域的技术人员可以清楚地了解到本发明可全部通过软件实现,也可借助软件结合硬件平台的方式来实现。基于这样的理解,本发明的技术方案对
背景技术
做出贡献的全部或者部分可以以软件产品的形式体现出来,所述计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,智能手机或者网络设备等)执行本发明各个实施方式或者实施方式的某些部分所述的方法。本文中所使用的“软件”等词均指一般意义上的任意类型的计算机编码或者计算机可执行指令集,可以运行所述编码或者指令集来使计算机或其他处理器程序化以执行如上所述的本发明的技术方案的各个方面。此外,需要说明的是,根据实施方式的一个方面,在执行时实施本发明的技术方案的方法的一个或多个计算机程序不必须要在一台计算机或处理器上,而是可以分布于多个计算机或者处理器中的模块中,以执行本发明的技术方案的各个方面。计算机可执行指令可以有许多形式,如程序模块,可以由一台或多台计算机或是其他设备执行。一般地,程序模块包括例程、程序、对象、组件以及数据结构等等,执行特定的任务或是实施特定的抽象数据类型。特别地,在各种实施方式中,程序模块进行的操作可以根据各个不同实施方式的需要进行结合或者拆分。并且,本发明的技术方案可以体现为一种方法,并且已经提供了所述方法的至少一个示例。可以通过任何一种合适的顺序执行动作,所述动作表现为所述方法中的一部分。因此,实施方式可以构造成可以按照与所示出的执行顺序不同的顺序执行动作,其中,可以包括同时地执行一些动作(尽管在示出的实施方式中,这些动作是连续的)。本文所给出的和使用的定义,应当对照字典、通过引用而并入的文档中的定义、和/或其通常意思进行理解。在权利要求书中以及上述的说明书中,所有的过度短语,例如“包括”、“具有”、“包含”、“承载”、“具有”、“涉及”、“主要由…组成”以及类似词语是应理解为是开放式的,即,包含但不限于。本发明说明书中使用的术语和措辞仅仅为了举例说明,并不意味构成限定。本领域技术人员应当理解,在不脱离所公开的实施方式的基本原理的前提下,对上述实施方式中的各细节可进行各种变化。因此,本发明的范围只由权利要求确定,在权利要求中,除非另有说明,所有的术语应按最宽泛合理的意思进行理解。本发明公开了a1、一种测试应用程序性能的方法,包括:获取用户操作应用程序的操作数据;基于所述操作数据生成测试文件;通过所述测试文件测试所述应用程序的稳定性。a2、如a1所述的方法中,基于所述操作数据生成测试文件包括:通过所述操作数据确定所述应用程序的测试数据集,其中,所述测试数据集的划分包括:以所述应用程序的交互区域为粒度的划分;依据所述测试数据集生成测试文件。a3、如a2所述的方法中,通过所述操作数据确定所述应用程序的测试数据集包括:通过所述操作数据确定所述测试数据集中的第一测试数据;指定所述测试数据集中的第二测试数据;基于所述第一测试数据和所述第二测试数据,确定所述测试数据集中的第三测试数据;其中,所述第一测试数据对应所述应用程序的第一交互区域;所述第二测试数据对应所述应用程序的第二交互区域;所述第三测试数据对应所述应用程序的第三交互区域。a4、如a3所述的方法中,通过所述操作数据确定所述测试数据集中的第一测试数据包括:依据所述操作数据计算所述应用程序的页面概率分布、跳转概率分布和后台运行概率;利用所述页面概率分布、跳转概率分布和后台运行概率确定所述第一测试数据。a5、如a4所述的方法中,利用所述页面概率分布、跳转概率分布和后台运行概率确定所述第一测试数据包括:根据所述页面概率分布和跳转概率分布,确定所述第一测试数据中交互区域的交互概率;根据所述页面概率分布、跳转概率分布和后台运行概率,确定所述第一测试数据中交互区域的行为概率分布。a6、如a1至a5中任一项所述的方法中,所述方法还包括:监测所述应用程序是否跳出运行;若所述应用程序跳出运行,则启动所述应用程序并返回执行下述处理:通过所述测试文件测试所述应用程序的稳定性。本发明还公开了b7、一种测试应用程序性能的装置,包括:获取模块,用于获取用户操作应用程序的操作数据;生成模块,用于基于所述操作数据生成测试文件;测试模块,用于通过所述测试文件测试所述应用程序的稳定性。b8、如b7所述的装置中,所述生成模块包括:测试数据集确定单元,用于通过所述操作数据确定所述应用程序的测试数据集,其中,所述测试数据集的划分包括:以所述应用程序的交互区域为粒度的划分;生成单元,用于依据所述测试数据集生成测试文件。b9、如b8所述的装置中,所述测试数据集确定单元包括:第一测试数据确定子单元,用于通过所述操作数据确定所述测试数据集中的第一测试数据;第二测试数据指定子单元,用于指定所述测试数据集中的第二测试数据;第三测试数据确定子单元,用于基于所述第一测试数据和所述第二测试数据,确定所述测试数据集中的第三测试数据;其中,所述第一测试数据对应所述应用程序的第一交互区域;所述第二测试数据对应所述应用程序的第二交互区域;所述第三测试数据对应所述应用程序的第三交互区域。b10、如b9所述的装置中,所述第一测试数据确定子单元包括:计算组件,用于依据所述操作数据计算所述应用程序的页面概率分布、跳转概率分布和后台运行概率;确定组件,用于利用所述页面概率分布、跳转概率分布和后台运行概率确定所述第一测试数据。b11、如b10所述的装置中,所述确定组件包括:交互概率确定子组件,用于根据所述页面概率分布和跳转概率分布,确定所述第一测试数据中交互区域的交互概率;行为概率分布确定子组件,用于根据所述页面概率分布、跳转概率分布和后台运行概率,确定所述第一测试数据中交互区域的行为概率分布。b12、如b7至b11中任一项所述的装置中,所述装置还包括:监测模块,用于监测所述应用程序是否跳出运行;启动及调用模块,用于在所述应用程序跳出运行的情形下,启动所述应用程序并调用所述测试模块通过所述测试文件测试所述应用程序的稳定性。本发明还公开了c13、一种终端设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时能够实现如a1至a6中任意一项所述的方法。本发明还公开了d14、一种计算机存储介质,用于存储一条或多条计算机指令,其中,当所述一条或多条计算机指令被执行时能够实现如a1至a6中任意一项所述的方法。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1