本发明涉及一种测试工具,尤其涉及一种智能设备的性能压力测试方法及系统。
背景技术:
为了评估手机、平板设备等智能设备的性能压力测试,一般是针对wifi模块,蓝牙模块,g-sensor功能模块三方面进行压力测试,现有技术的测试工具是采用python压力测试脚本、java压力测试脚本、shell压力测试脚本进行测试,python压力测试脚本需要在机器中安装运行环境,只有在python编译器中才能运行,java压力测试脚本也需要前期的环境配置,只有在java编译器中运行,而shell压力测试脚本则需要使用adb工具才能运行。因此三者都需要配置相应的运行环境,都非常依赖前期专门的准备条件,具有较大的局限性,给测试人员带来困扰。
此外,现有技术采用监听事件的方法进行开关的反复调用,四个线程采用同步锁机制分别按照顺序执行,此种方法虽然能够一定程度上测量其压力性能,但是,因为是实现具有逻辑顺序,与实际使用场景不符,所以无法很好的评估产品性能。
技术实现要素:
为解决现有技术中的问题,本发明提供一种智能设备的性能压力测试方法及系统。
本发明测试方法包括如下步骤:
s1:开始;
s2:获取需要测试的压力测试选项,所述压力测试选项包括wifi压力测试、蓝牙压力测试、g-sensor功能压力测试和顺序压力测试;
s3:根据选择的压力测试选项,创建相应的独立线程,分别用于执行不同的压力测试;
s4:编写用于调用系统模块中的线程的控制方法,控制系统模块中的线程进行相应的状态切换;
s5:将控制方法写入独立线程的永真循环,然后执行独立线程进行压力测试。
本发明作进一步改进,还包括步骤s6:测试完成,输出测试结果。
本发明作进一步改进,步骤s2中,需要测试的压力测试选项为1-4项。
本发明作进一步改进,步骤s3中,当进行的为wifi压力测试时,其测试方法为:
(1)所述wifi压力测试独立线程调用wifi模块的wifi_service服务子模块;
(2)使用enable()和disable()方法,控制wifi_service服务子模块中wifi开关线程的开关状态切换;
(3)将enable()和disable()方法都写入wifi压力测试独立线程的永真循环,用于一直循环执行开关状态切换;
(4)执行wifi压力测试独立线程。
当进行的为蓝牙压力测试时,其测试方法为:
(1)所述蓝牙压力测试独立线程调用蓝牙模块的bluetoothadaper子模块;
(2)使用enable()和disable()方法,控制bluetoothadaper子模块中蓝牙开关线程的开关状态切换;
(3)将enable()和disable()方法都写入蓝牙压力测试独立线程的永真循环,用于一直循环执行开关状态切换;
(4)执行蓝牙压力测试独立线程。
当进行的为g-sensor功能压力测试时,其测试方法为:
(1)所述g-sensor功能压力测试独立线程获取当前屏幕横竖屏信息;
(2)使用g-sensor功能方法,控制智能设备的g-sensor功能;
(3)将g-sensor功能方法写入g-sensor功能压力测试独立线程的永真循环,用于一直循环执行g-sensor功能;
(4)执行g-sensor功能压力测试独立线程。
当进行的为顺序压力测试时,其测试方法为:
(1)按照设定顺序调用对应的控制方法,使用sleep方法控制调用的间隔时间;
(2)将所有的控制方法都写入顺序压力测试独立线程的永真循环,用于一直按照顺序循环执行压力测试;
(3)执行顺序压力测试测试独立线程。
本发明还提供一种包括所述测试方法的系统,包括:
获取模块:用于获取需要测试的压力测试选项,所述压力测试选项包括wifi压力测试、蓝牙压力测试、g-sensor功能压力测试和顺序压力测试;
独立线程创建模块:用于根据选择的压力测试选项,创建相应的独立线程,分别用于执行不同的压力测试;
控制方法编写模块:用于编写用于调用系统模块中的线程的控制方法,控制系统模块中的线程进行相应的状态切换;
写模块:用于将控制方法写入独立线程的永真循环,然后执行独立线程进行压力测试。
与现有技术相比,本发明的有益效果是:无需进行任何前期任何环境的配置,即装即用,具有一定的便捷性;可以单独模块和多模块进行压测,具有一定的选择性;每个模块都是独立的线程,运行起来具有随机性,可以更好的测试系统的稳定性。
附图说明
图1为本发明方法流程图;
图2为wifi压力测试方法流程图;
图3为蓝牙压力测试方法流程图;
图4为横竖屏切换压力测试方法流程图;
图5为顺序压力测试方法流程图;
图6为测试报告界面示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步详细说明。
如图1所示,本发明用于android系统中对系统的稳定性进行压力测试,测试工具为基于java语言编写的安卓应用程序,专门用于平板产品的性能压力测试,针对的是wifi模块,蓝牙模块,g-sensor(加速度传感器)功能模块进行压力测试,而g-sensor功能体现到手机、平板等智能设备上,则其中一个表现为屏幕的横竖屏切换,因此,本apk一共有四个功能测试按键,分别是“wifi压力测试”,功能是无限循环进行wifi开启和关闭操作,“蓝牙压力测试”功能是无限循环进行蓝牙开启和关闭操作,“横竖屏切换压力测试”功能是无限循环进行g-sensor功能操作,“顺序压力测试”功能是顺序的无限循环进行wifi-->蓝牙-->g-sensor功能和开启、关闭操作。本例四个功能按键分别由各自独立的线程进行运行。
本发明无需进行任何前期任何环境的配置,即装即用,具有一定的便捷性。可以单独模块和多模块进行压测,具有一定的选择性。每个模块都是独立的线程,运行起来具有随机性,与产品实际使用场景相同,可以更好的测试系统的稳定性。
如图2所示,当进行的为wifi压力测试时,其测试方法为:
(1)所述wifi压力测试独立线程调用wifi模块的wifi_service服务子模块;
(2)使用enable()和disable()方法,控制wifi_service服务子模块中wifi开关线程的开关状态切换;
(3)将enable()和disable()方法都写入wifi压力测试独立线程的永真循环,用于一直循环执行开关状态切换;
(4)在oncreate()函数中执行wifi压力测试独立线程。
如图3所示,当进行的为蓝牙压力测试时,其测试方法为:
(1)所述蓝牙压力测试独立线程调用蓝牙模块的bluetoothadaper子模块;
(2)使用enable()和disable()方法,控制bluetoothadaper子模块中蓝牙开关线程的开关状态切换;
(3)将enable()和disable()方法都写入蓝牙压力测试独立线程的永真循环,用于一直循环执行开关状态切换;
(4)在oncreate()函数中执行蓝牙压力测试独立线程。
如图4所示,当进行的为g-sensor功能压力测试时,其测试方法为:
(1)所述g-sensor功能压力测试独立线程获取当前屏幕横竖屏信息;
(2)使用setrequestedorientation方法,控制智能设备的g-sensor功能;
(3)将g-sensor功能方法写入g-sensor功能压力测试独立线程的永真循环,用于一直循环执行g-sensor功能;
(4)在oncreate()函数中执行g-sensor功能压力测试独立线程。
如图5所示,当进行的为顺序压力测试时,其测试方法为:
(1)按照设定顺序wifi--蓝牙--g-sensor功能的顺序分别调用上述对应的控制方法,使用sleep方法控制调用的间隔时间;
(2)将所有的控制方法都写入顺序压力测试独立线程的永真循环,用于一直按照顺序循环执行压力测试;
(3)执行顺序压力测试测试独立线程。
本发明采用创建并且调用线程的方式去反复执行开关的操作,在线程中写入永真循环。每个功能按键都是一个独立的线程,在这里我并没有采用同步锁将他们进行有序的操作,而是依次按下每个功能按键后都是单独执行一个线程,这几个独立线程具有非常强的随机性去运行,在线程的队列里谁抢占到第一位谁就开始先运行,也可能会碰到两个或者三个线程时间在极短的间隔时间内几乎像是同时运行,这种操作有点反人类,但这种随机性使得测试深究bug的工作更加完善。
如图6所示,本测试工具的操作方法为:
1.将android系统设置成永不休眠模式;
2.打开测试工具pressuretestapk;
3.选择想要的压测选项后,在该程序界面挂置即可;
4.测试完成,可以自动输出测试结果供测试人员查看。
以上所述之具体实施方式为本发明的较佳实施方式,并非以此限定本发明的具体实施范围,本发明的范围包括并不限于本具体实施方式,凡依照本发明所作的等效变化均在本发明的保护范围内。