一种实时测试方法及系统与流程

文档序号:30385862发布日期:2022-06-11 09:50阅读:143来源:国知局
一种实时测试方法及系统与流程

1.本发明涉及性能测试领域,尤其涉及一种实时测试方法及系统。


背景技术:

2.monkey是android(安卓)中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。现有技术中,应用软件(app)在研发过程中,或者在发布之前,都会进行monkey测试,也有人叫做搞怪测试,就是用一些稀奇古怪的操作方式去测试待测试系统,以测试系统的稳定性。软件应用在开发完成后可能存在内存泄漏、死循环、cpu消耗过高等问题,而车载终端跟行车安全息息相关,为保证软件应用在任意场景稳定运行,需要对软件应用进行稳定性测试。
3.目前行业内基于android系统来做的性能测试,是采用monkey工具进行长时间、高频率的运行,通过top命令来采集设备的性能指标数据,最后通过分析采集的数据来判断应用的运行性能。目前的测试方法在执行monkey过程中随机操作会跳出应用甚至是crash,导致后续测试不是在待测应用界面操作,获取的数据不够准确。


技术实现要素:

4.本发明的目的是为了克服上述现有技术存在的缺陷,提供一种实时测试方法及系统,应用于安卓系统,通过在待测终端设置守护进程,并将守护进程中的无效数据剔除,确保获取的性能数据准确率。
5.为了实现上述目的,本发明提出的一种实时测试方法及系统,应用于安卓系统,其中,一种实时测试方法,应用于安卓系统,包括步骤:
6.步骤s1、于一待测终端内,对一待测应用进行测试;
7.步骤s2、在测试过程中,启动一守护进程,定期获取所述待测终端上处于活动状态的应用界面;
8.步骤s3、所述守护进程判断当前处于活动状态的应用界面是否为对应于所述待测应用中的多个预设的应用界面之一:
9.若是,则继续进行测试,以获取所述待测应用在所述待测终端运行时的性能数据;
10.若否,所述守护进程则强制启动所述待测应用,并重新对所述待测应用进行测试;
11.在对所述待测应用的单次测试过程中,重复执行所述步骤s2-s3,以完成测试并输出获取的所述性能数据。
12.进一步的,所述步骤s1中,运行monkey测试工具,以对所述待测应用进行测试。
13.进一步的,所述步骤s2中,定期获取所述应用界面的时间周期为1秒。
14.进一步的,所述步骤s1中,运行top命令,以采集测试过程中产生的所述性能数据;
15.所述步骤s3中,若当前处于活动状态的应用界面是否为对应于所述待测应用中的
多个预设的应用界面之一,则获取经由top命令采集得到的所述性能数据,并将所述性能数据进行代码化处理后采用csv文件格式保存。
16.进一步的,所述步骤s3中,所述守护进程通过匹配当前处于活动状态的应用界面的界面id和所述待测应用中的所有预设的应用界面的界面id的方式,判断当前处于活动状态的应用界面是否为对应于所述待测应用中的多个预设的应用界面之一。
17.进一步的,所述步骤s3中,若当前处于活动状态的应用界面不为对应于所述待测应用中的任何一个预设的应用界面,则将采用csv文件格式保存对应的判断结果,并将以当前时刻为中心点的一预设时间段内采用top命令采集到的所述性能数据删除。
18.进一步的,所述预设时间段为以所述当前时刻之前一次的所述守护进程获取所述应用界面并进行判断的时刻为起始时刻,以所述当前时刻之后一次的所述守护进程获取所述应用界面并进行判断的时刻为终止时刻所形成的时间段。
19.进一步的,所述预设时间段为以所述当前时刻为中心点,时长为3秒的时间段。
20.其中,一种实时测试系统,应用于安卓系统;其特征在于,所述实时测试系统设置于一测试终端内,并包括:
21.一守护模块,用于在对所述测试终端内的待测应用进行测试的过程中启动一守护进程,并采用所述守护进程定期获取所述测试终端上处于活动状态的应用界面;
22.一判断模块,连接所述守护模块,用于判断获取的当前处于活动状态的应用界面是否为对应于所述待测应用中的多个预设的应用界面之一,并输出判断结果;
23.一强制切换模块,分别连接所述判断模块和所述守护模块,用于根据所述判断结果,在当前处于活动状态的应用界面与对应于所述待测应用中的所有预设的应用界面均不匹配时,采用所述守护进程强制启动所述待测应用,并重新对所述待测应用进行测试;
24.一测试模块,连接所述判断模块和所述强制切换模块,用于在当前处于活动状态的应用界面匹配于所述待测应用中的任意一个预设的应用界面时,获取所述测试过程中采集到的性能数据。
25.与现有技术相比,本发明的有益效果主要体现在:在待测终端设置守护进程,该进程间定期获取所述待测终端上正在活动的应用界面,使待测终端在随机点击的时候即使跳出待测应用,也会因为守护进程的存在而回到待测应用,并重新对所述待测应用进行测试,保证了测试严谨性和数据的准确性。
附图说明
26.图1为本发明的一较佳的实施例中实时测试方法的流程图;
27.图2为本发明的另一较佳的实施例中实时测试系统的结构框图。
具体实施方式
28.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
30.本发明的一较佳的实施例中涉及一种实时测试方法,应用于安卓系统,具体如图1所示,包括步骤:
31.步骤s1、于一待测终端内,对一待测应用进行测试;
32.步骤s2、在测试过程中,启动一守护进程,定期获取待测终端上处于活动状态的应用界面;
33.步骤s3、守护进程判断当前处于活动状态的应用界面是否为对应于待测应用中的多个预设的应用界面之一:
34.若是,则继续进行测试,以获取待测应用在待测终端运行时的性能数据;
35.若否,守护进程则强制启动待测应用,并重新对待测应用进行测试;
36.在对待测应用的单次测试过程中,重复执行步骤s2-s3,以完成测试并输出获取的性能数据。
37.具体的,在本实施例,步骤s1中,首先打开待测终端应用,使用工具将待测应用上传至待测终端内,待测终端运行monkey测试工具,以对待测应用进行测试。
38.在本实施例中,monkey是一个命令行工具,它可以运行在模拟器或者安卓设备上。它通过发送伪随机事件如点击、滑动等到终端设备上,来模拟相应的操作。所以我们可以通过monkey发送事件的频率以及时长来对应用做压力测试。
39.在本实施例,步骤s1中,待测终端运行top命令,以采集测试过程中产生的性能数据;
40.在本实施例中,top是一个获取当前设备性能指标的一个命令行工具,在通过monkey做压力测试的过程中,通过top命令可以获取任意时刻设备的性能指标。
41.在本实施例,步骤s2中,守护进程定期获取应用界面的时间周期为1秒。
42.在本实施例,步骤s3中,守护进程通过匹配当前处于活动状态的应用界面的界面id和待测应用中的所有预设的应用界面的界面id的方式,判断当前处于活动状态的应用界面是否为对应于待测应用中的多个预设的应用界面之一。
43.在本实施例,步骤s3中,若当前处于活动状态的应用界面为对应于待测应用中的多个预设的应用界面之一,则获取经由top命令采集得到的性能数据,并将性能数据进行代码化处理后采用csv文件格式保存。
44.在本实施例,步骤s3中,若当前处于活动状态的应用界面不为对应于待测应用中的任何一个预设的应用界面,则将采用csv文件格式保存对应的判断结果,并将以当前时刻为中心点的一预设时间段内采用top命令采集到的性能数据删除。
45.在本实施例,预设时间段为以当前时刻之前一次的守护进程获取应用界面并进行判断的时刻为起始时刻,以当前时刻之后一次的守护进程获取应用界面并进行判断的时刻为终止时刻所形成的时间段。
46.在本实施例,预设时间段为以当前时刻为中心点,守护进程定期获取的时间周期为1秒,当前时刻为1秒,前后各1秒,所以加起来是将时长为3秒的时间段中top采集到的数据清除。
47.最后monkey采集测试守护进程处理后的数据,并输出性能测试结果。
48.在本实施例中,使得待测终端在随机点击的时候即使跳出待测应用,也会因为守护进程的存在而回到待测应用,同时会剔除top命令前后采集的数据。这样将不会再采集到
无效的性能数据,保证了测试严谨性和数据的准确性。
49.在本实施例中,本发明提出的实时测试方法,应用于安卓系统,在执行monkey命令时根据待测应用设置守护进程,该进程每隔1s(可设置)获取测试终端正在活动的activity(应用界面),监控待测应用是否跳出或者crash,当检测到当前测试终端正在活动的activity已不再待测应用的activity列表中时,守护进程将强制启动(当应用被monkey操作跳出切换到后台运行时为热启动,当应用crash后为冷启动)待测应用,使得所有操作重新回到待测应用中,并将守护进程两次间隔时间内的无效数据剔除,确保获取的性能数据准确率。
50.在本实施例的另一较佳实施例中,如图2所示,提出了一种实时测试系统,应用于安卓系统;其特征在于,实时测试系统设置于一测试终端内,并包括:
51.一守护模块1,用于在对测试终端内的待测应用进行测试的过程中启动一守护进程,并采用守护进程定期获取测试终端上处于活动状态的应用界面;
52.一判断模块2,连接守护模块1,用于判断获取的当前处于活动状态的应用界面是否为对应于待测应用中的多个预设的应用界面之一,并输出判断结果;
53.一强制切换模块3,分别连接判断模块2和守护模块1,用于根据判断结果,在当前处于活动状态的应用界面与对应于待测应用中的所有预设的应用界面均不匹配时,采用守护进程强制启动待测应用,并重新对待测应用进行测试;
54.一测试模块4,连接判断模块2和所述强制切换模块3,用于在当前处于活动状态的应用界面匹配于待测应用中的任意一个预设的应用界面时,获取测试过程中采集到的性能数据。
55.具体的,在本实施例中,本发明提出的实时测试系统,应用于安卓系统,在守护模块1通过设置守护进程来定期获取测试终端上处于活动状态的应用界面,该守护进程每隔1s(可设置)获取测试终端正在活动的activity,监控待测应用是否跳出或者crash,并通过判断模块2检测到当前测试终端正在活动的activity是否在待测应用的activity列表中,当在当前处于活动状态的应用界面与对应于待测应用中的所有预设的应用界面均不匹配时,强制切换模块3采用守护进程强制所有操作重新回到待测应用中,并且守护模块1还会将守护进程两次间隔时间内的无效数据剔除,确保获取的性能数据准确率。
56.以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1